2017-06-21 30 views
0

我有CentOS 6.8,Cassandra 3.9,32 GB RAM。當我啓動Cassandra並啓動後,它開始消耗內存,並在開始從CQLSH或Apache Spark查詢時添加「緩存」內存值,並且在此過程中,其他處理(如cron執行)所剩餘的內存很少。當Cassandra運行幾乎所有的RAM都被消耗時,爲什麼?

這裏還有一些細節從我的系統

free -m 
     total  used  free  shared buffers  cached 
Mem:   32240  32003  237   0   41  24010 
-/+ buffers/cache:  7950  24290 
Swap:   2047   25  2022 

這裏是頂-M命令的輸出

top - 08:54:39 up 5 days, 16:24, 4 users, load average: 1.22, 1.20, 1.29 
Tasks: 205 total, 2 running, 203 sleeping, 0 stopped, 0 zombie 
Cpu(s): 3.5%us, 1.2%sy, 19.8%ni, 75.3%id, 0.1%wa, 0.1%hi, 0.0%si, 0.0%st 
Mem: 31.485G total, 31.271G used, 219.410M free, 42.289M buffers 
Swap: 2047.996M total, 25.867M used, 2022.129M free, 23.461G cached 

PID USER  PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 
14313 cassandr 20 0 595g 28g 22g S 144.5 91.3 300:56.34 java 

你可以看到只有220 MB的左和23.46緩存。

我的問題是如何配置Cassandra,以便它可以使用'緩存'的內存到一定的值,並留下更多的RAM可用於其他進程。

在此先感謝。

回答

0

在Linux中一般緩存的內存,因爲你的23g是非常好的。這個內存被用作文件系統緩存等等 - 而不是cassandra本身。 Linux系統傾向於使用所有可用內存。

這有助於以多種方式加速系統以防止磁盤讀取。

您仍然可以使用緩存的內存 - 只需啓動進程並使用內存,內核將立即釋放內存。

+0

你好@Jan,在我的情況下,當只剩下220 MB時(如'top'命令所示,我的一些查詢開始失敗,我開始在應用程序中出錯,我的cron開始失敗。發生?因爲如果更多的內存可用,那麼一切正常。 – Shashi

+0

奇怪 - 你可以調整cassandras JVM: http://docs.datastax.com/en/cassandra/3.0/cassandra/operations/opsTuneJVM.html – Mandraenke

相關問題