xrs*_*stf 5 jna cassandra docker
我正在尝试优化我的Cassandra(3.7+)Docker容器的性能.我发现2015年的一个演示文稿(在幻灯片21中)提到我应该授予CAP_IPC_LOCK并设置ulimit memlock.
经过一番挖掘后,似乎有两个选项基本上是为了防止系统交换JVM,而现代版本的Cassandra似乎通过使用JNA来实现.
--ulimit memlock=-1:-1我的Docker容器上的设置具有这样的效果
INFO 12:42:33 JNA mlockall successful
Run Code Online (Sandbox Code Playgroud)
在启动时打印,所以我假设我已完成所有设置.
我是否仍然需要--cap-add=CAP_IPC_LOCK,如果是,我如何检测我是否正确设置?
让我们想一想。
在 Linux 中,进程需要CAP_IPC_LOCK功能来调用mlockall。
现在 mlockAll 将所有调用进程的虚拟地址空间锁定到 RAM 中,防止该内存被分页到交换区域。因此基本上不让你交换。
安装JNA也有同样的效果。
这是来自 Datastax 文档
安装JNA可以提高Cassandra内存使用率。安装和配置时,Linux不会换出JVM,从而避免了相关的性能问题。
http://docs.datastax.com/en/cassandra/1.2/cassandra/install/installJnaDeb.html
另外,如果您在日志中看到以下内容
JNA mlockall successful
这意味着 JNA 已启用。
我认为你没问题,不需要添加CAP_IPC_LOCK。
| 归档时间: |
|
| 查看次数: |
380 次 |
| 最近记录: |