Мы используем Cassandra для сбора данных с доски вещей. Память, с которой он был запущен, составляла 4 ГБ (после выполнения systemctl status для Cassandra), а через 15 часов он достиг 9,3 ГБ. Я хочу знать, почему произошло такое увеличение объема памяти, и есть ли способ его контролировать или ограничить использование фиксированного объема памяти без потери данных.
Вы можете контролировать размер кучи с помощью параметра MAX_HEAP_SIZE в cassandra-env.sh, однако Apache Cassandra также имеет много компонентов, которые используют память вне кучи. В частности, смещения сжатия, фильтры bloomfilters, кеш фрагментов и, возможно, таблицы memtables. Есть способы настроить, сколько памяти они используют, однако они всегда будут использовать некоторую память, и такие вещи, как смещения сжатия и фильтры bloom, будут расти с размером данных. При этом использование памяти не должно расти неограниченно и в какой-то момент выровняется, если вы постоянно не увеличиваете размер данных без добавления дополнительных узлов.