Итак, просматривая вашу пастинку, я вижу несколько вещей, которые можно отрегулировать.
Во-первых, я уверен, что это ваша основная проблема:
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.
С Коды ошибок GNU :
Макрос: int ENOMEM
«Невозможно выделить память». Система не может выделить больше виртуальных
память, потому что ее емкость заполнена.
-Xms12G, -Xmx12G, -Xmn3000M,
Сколько оперативной памяти в вашем экземпляре? Из того, что я вижу, ваш узел умирает от OOM (Ошибка нехватки памяти). Я предполагаю, что вы назначаете слишком много оперативной памяти в кучу, а для OS / page-cache недостаточно. На самом деле, я бы не выделил в кучу более 50% -60% оперативной памяти.
Например, я в основном строю экземпляры на 16 ГБ ОЗУ, и я обнаружил, что максимальная куча 10 ГБ примерно настолько высока, насколько вы этого хотите.
-XX:+UseParNewGC, -XX:+UseConcMarkSweepGC
На самом деле, поскольку вы используете CMS GC, я бы не стал использовать более 8 ГБ для максимального размера кучи.
Maximum number of memory map areas per process (vm.max_map_count) 65530 is too low,
recommended value: 1048575, you can change it with sysctl.
Это означает, что вы не настроили limits.conf
или sysctl.conf
. Ознакомьтесь с руководством ( DSE 6.0 - Рекомендуемые производственные настройки ), но, как правило, рекомендуется добавить в эти файлы следующее:
/ и т.д. / limits.conf
* - memlock unlimited
* - nofile 100000
* - nproc 32768
* - as unlimited
/ и т.д. / sysctl.conf
vm.max_map_count = 1048575
Примечание. После настройки файла sysctl.conf вы захотите запустить sudo sysctl -p
или перезагрузиться.
Is swap disabled? : false,
Вы захотите захотеть отключить своп. Если Кассандра начнет выгружать содержимое ОЗУ на диск, все будет очень медленно. Запустите swapoff -a
, затем отредактируйте /etc/fstab
и удалите все записи подкачки.
ТЛ; др; Краткое описание
- Установите начальный и максимальный размеры кучи на 8 ГБ (новый размер кучи подходит).
- Измените ваши
limits.conf
и sysctl.conf
файлы соответствующим образом.
- Отключить своп.
- Это также хорошая идея, чтобы перейти на последнюю версию 3.11 (3.11.4).
Надеюсь, это поможет!