[英]When creating a local Kafka instance for kafka-python, is it a good idea using Kafka 2.8+ that don't need Zookeeper?
[英]Why swapping is not a good idea in zookeeper and kafka?
我已阅读说明书
do not use swap
在zookeeper和kafka都有。 我知道kafka依赖于页面缓存来保持顺序日志的一部分缓存在内存中,即使它们被写入磁盘。
但无法理解如何交换可以伤害zk和kafka。
交换可能会导致性能和稳定性问题; 在您的示例中,您不希望Linux内核“错误/意外地”交换您的Kafka或ZooKeeper进程。
此外, 对于像Kafka和ZooKeeper这样的JVM进程 , 交换可能特别糟糕 ,引用:
[J] JVM通常不会执行完整的GC循环,直到它的允许堆耗尽为止,因此大部分堆可能都是由尚未收集的垃圾占用。 由于这些页面没有被触摸(因为它们是垃圾并因此未被引用),操作系统很乐意将它们交换掉。 当GC最终运行时,你有一个荒谬的交换风暴,拉入所有这些页面,然后发现它们实际上充满了垃圾,应该被丢弃; 这可以轻松使您的GC循环花费很多分钟!
因此建议通过将vm.swappiness
设置为0
来禁用交换,但对于某些操作系统(如RHEL 6.5),这实际上应为1
(因为这些操作系统上的值0
的语义已更改)。 请注意,仍可能发生一些交换。
以下链接可能会进一步阐明您的问题。 他们解释了为什么分别禁用Hadoop和Elasticsearch的交换,这与你应该禁用Kafka和ZooKeeper交换的原因相同:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.