不十分なユーザー・リソース制限エラー
不十分なユーザー・リソース制限により、CassandraとOpsCenterでいくつかのエラーが発生する可能性があります。
不十分なユーザー・リソース制限により、CassandraとOpsCenterでいくつかのエラーが発生する可能性があります。
Cassandraのエラー
- 不十分なas(アドレス空間)またはmemlock設定
-
ERROR [SSTableBatchOpen:1 ] 2012-07-25 15:46:02,913 AbstractCassandraDaemon.java (line 139) Fatal exception in thread Thread [SSTableBatchOpen:1,5,main ] java.io.IOError:java.io.IOException:Map failed at ...
- 不十分なmemlock設定
-
WARN [main ] 2011-06-15 09:58:56,861 CLibrary.java (line 118) 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.
推奨設定
ulimit -aコマンドを使用すると、現在の制限値を表示できます。このコマンドを使用して一時的に制限値を設定することもできますが、以下のように変更を永続化することを推奨します。
パッケージ・インストール:/etc/security/limits.d/cassandra.confファイルに以下の設定が含まれていることを確認してください。
<cassandra_user> - memlock unlimited <cassandra_user> - nofile 100000 <cassandra_user> - nproc 32768 <cassandra_user> - as unlimited
tarボール・インストール:/etc/security/limits.confファイルに以下の設定が含まれていることを確認してください。
<cassandra_user> - memlock unlimited <cassandra_user> - nofile 100000 <cassandra_user> - nproc 32768 <cassandra_user> - as unlimited
rootとしてCassandraを実行する場合は、UbuntuなどのLinuxディストリビューションでは、次の設定を使用せずに、rootの制限を明示的に設定する必要があります。
<cassandra_user>:root - memlock unlimited root - nofile 100000 root - nproc 32768 root - as unlimited
CentOS、RHEL、OELシステムの場合は、/etc/security/limits.d/90-nproc.confのnproc制限も以下のように設定してください。
<cassandra_user> - nproc 32768
すべてのインストールで、以下の行を/etc/sysctl.confに追加してください。
vm.max_map_count = 131072
変更内容を有効にするには、サーバーを再起動するか、以下のコマンドを実行します。
sudo sysctl -p
Cassandraプロセスに制限が適用されたかどうかを確認するには、以下のコマンドを実行します。ここで、pidはCassandraを現在実行中のプロセスのIDです。
cat /proc/<pid>/limits
OpsCenterのエラー
「OpsCenter Troubleshooting」のドキュメントを参照してください。