无法启动 cassandra:无法锁定 JVM 内存 (ENOMEM)
Unable to start cassandra : Unable to lock JVM memory (ENOMEM)
我正在尝试使用 docker-compose 启动一个 cassandra 容器。我正在从我的 macbook 终端发出以下命令。
docker-compose -f src/main/docker/cassandra.yml up
我的cassandra.yml文件在下面
version: '2'
services:
primecast-cassandra:
image: cassandra:3.9
# volumes:
# - ~/volumes/jhipster/primecast/cassandra/:/var/lib/cassandra/data
ports:
- 7000:7000
- 7001:7001
- 7199:7199
- 9042:9042
- 9160:9160
primecast-cassandra-migration:
extends:
file: cassandra-migration.yml
service: primecast-cassandra-migration
environment:
- CREATE_KEYSPACE_SCRIPT=create-keyspace.cql
然而,当我 运行 docker-compose 命令启动 cassandra 服务时,我在终端上收到一些警告并最终停止。
primecast-cassandra_1 | WARN 14:33:45 Unable to lock JVM memory (ENOMEM).
This can result in part of the JVM being swapped out, especially with mmapped I/O enabled. Increase RLIMIT_MEMLOCK or run Cassandra as root.
如果您能提供帮助,我们将不胜感激
谢谢
本质上,此消息告诉您需要为特定用户的锁定内存上的 Linux 系统资源限制指定 memlock unlimited
。根据 documentation on recommended production settings,解决此问题的正常(非 Docker)方法是调整 /etc/security/limits.conf
文件(或等效文件):
cassandra - memlock unlimited
在上面的例子中,cassandra
是Cassandra在运行下的用户。如果您是 运行 Cassandra 的另一个用户,则需要相应地更改它或只使用星号 (*) 为所有用户强制执行该设置。例如:
* - memlock unlimited
在这种情况下 Docker Compose v2,ulimits
应该是服务配置下的有效条目。将 memlock
设置为 -1
,这样软限制和硬限制都是“无限制”的:
primecast-cassandra:
image: cassandra:3.9
ulimits:
memlock: -1
ports:
我正在尝试使用 docker-compose 启动一个 cassandra 容器。我正在从我的 macbook 终端发出以下命令。
docker-compose -f src/main/docker/cassandra.yml up
我的cassandra.yml文件在下面
version: '2'
services:
primecast-cassandra:
image: cassandra:3.9
# volumes:
# - ~/volumes/jhipster/primecast/cassandra/:/var/lib/cassandra/data
ports:
- 7000:7000
- 7001:7001
- 7199:7199
- 9042:9042
- 9160:9160
primecast-cassandra-migration:
extends:
file: cassandra-migration.yml
service: primecast-cassandra-migration
environment:
- CREATE_KEYSPACE_SCRIPT=create-keyspace.cql
然而,当我 运行 docker-compose 命令启动 cassandra 服务时,我在终端上收到一些警告并最终停止。
primecast-cassandra_1 | WARN 14:33:45 Unable to lock JVM memory (ENOMEM).
This can result in part of the JVM being swapped out, especially with mmapped I/O enabled. Increase RLIMIT_MEMLOCK or run Cassandra as root.
如果您能提供帮助,我们将不胜感激 谢谢
本质上,此消息告诉您需要为特定用户的锁定内存上的 Linux 系统资源限制指定 memlock unlimited
。根据 documentation on recommended production settings,解决此问题的正常(非 Docker)方法是调整 /etc/security/limits.conf
文件(或等效文件):
cassandra - memlock unlimited
在上面的例子中,cassandra
是Cassandra在运行下的用户。如果您是 运行 Cassandra 的另一个用户,则需要相应地更改它或只使用星号 (*) 为所有用户强制执行该设置。例如:
* - memlock unlimited
在这种情况下 Docker Compose v2,ulimits
应该是服务配置下的有效条目。将 memlock
设置为 -1
,这样软限制和硬限制都是“无限制”的:
primecast-cassandra:
image: cassandra:3.9
ulimits:
memlock: -1
ports: