我已阅读 RabbitMQ 生产检查表,并且我们通过将部署中的内存限制设置为 1.3G 并将 RabbitMQ vm_memory_high_watermark.absolute 设置为 1024MB 来确保 Kubernetes 集群中的 RabbitMQ pod 不会崩溃,但我的问题是准确了解当我们达到警报点及以后会发生什么。文档指出:
在代理达到高水位并阻止发布者之前,它将尝试通过指示队列将其内容分页到磁盘来释放内存。持久消息和临时消息都将被分页
但记忆文件的最开头也写道:
强烈建议启用操作系统交换或页面文件。
我们在 Google (GKE) 上运行 Kubernetes 集群,我们不仅无法控制机器是否配置交换(它们没有),而且我的理解是 Kubernetes 也没有设置为使用交换。我担心的是,如果没有交换,RabbitMQ pod 将消息写入磁盘的方式是否会受到负面影响。有人对此有任何见解吗?