gpt4 book ai didi

docker - Cassandra、JNA、Docker 和 CAP_IPC_LOCK

转载 作者:行者123 更新时间:2023-12-04 21:08:07 25 4
gpt4 key购买 nike

我正在尝试优化我的 Cassandra (3.7+) Docker 容器的性能。我找到了 a presentation from 2015提到(在幻灯片 21 上)我应该授予 CAP_IPC_LOCK并设置 ulimit memlock。

经过一番挖掘,似乎有两个选项基本上是为了防止系统交换 JVM,而现代版本的 Cassandra 似乎是通过使用 JNA 来实现的。

设置 --ulimit memlock=-1:-1在我的 Docker 容器上有这样的效果

INFO  12:42:33 JNA mlockall successful

启动时打印,所以我假设我已经准备好了。

我还需要吗--cap-add=CAP_IPC_LOCK如果是这样,我如何检测我是否正确设置?

最佳答案

让我们想想这个。

在 linux 中,进程需要 CAP_IPC_LOCK 调用能力 mlockall .

现在 mlockAll 将调用进程的所有虚拟地址空间锁定到 RAM 中,防止该内存被分页到交换区。因此基本上不让你交换。

安装 JNA 具有相同的效果。

这是来自 Datastax 文档

Installing JNA can improve Cassandra memory usage.When installed and configured, Linux does not swap out the JVM, and thus avoids related performance issues.



http://docs.datastax.com/en/cassandra/1.2/cassandra/install/installJnaDeb.html

此外,如果您在日志中看到以下内容
JNA mlockall successful
这意味着启用了 JNA。

我认为你没问题,不需要添加 CAP_IPC_LOCK。

关于docker - Cassandra、JNA、Docker 和 CAP_IPC_LOCK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40704283/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com