なぜカサンドラは、-Xmxヒープオプションにもかかわらず、これだけのメモリを取っていますか?

ロブN:

私は限られたメモリを持っている私のサーバー、上カサンドラ(Javaプロセス)を実行していますよ。I編集カサンドラの設定(config/jvm.options)ヒープサイズを制限するために、Java仮想マシンにこれらの引数を渡します。

-Xms180M -Xmx180M

私はの出力でそれらを見ることができますps ax | grep javaショー:

[...] /usr/lib/jvm/java-8-openjdk-amd64/bin/java [...] 
   -Xms180M -Xmx180M [...] org.apache.cassandra.service.CassandraDaemon

しかし、180メガバイト以上にたくさん使うようだ、と別のサーバプロセスが消えるを保持します。私は、カーネルがあるため、限られたメモリの他のプロセスを強制終了していることを推測しています。

ここでは、画面の一部ですtop

KiB Mem :  1009128 total,    87072 free,   643488 used,   278568 buff/cach
KiB Swap:        0 total,        0 free,        0 used.   222228 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                                                 
20410 cassand+  20   0 2048132 433828   8456 S  0.3 43.0  41:25.22 java          

しないRES 433828カサンドラによって使用されているRAMの433メガバイトがあるよりも、平均値は?私はおそらく180メガバイトにJavaヒープを制限された後、それは、可能なように見えるのか?ヒープが180 MBに制限されている場合は、何が他の433から180 = 253メガバイトを取っていますか?そして、私もそれを制限することができますか?

ジェフJirsa:

カサンドラは、(-Xmxによって制御される)上のヒープ部分とオフヒープ部分を有しています。オフヒープデータ構造の大部分は、典型的には、データサイズを縮小 - パーティションインデックス、ブルームフィルタ、および圧縮チャンクデータのようなものは、直接メモリ領域およびディスク使用量と増加に格納されています。

あなたはこれらの多少のチューニングをすることができますが、彼らはそれほど明白だと性能のトレードオフを持っています。例えば、調達bloom_filter_fp_chanceから0.01にすることは0.1非常に少ないメモリを使用しますが、あなたは読み取りパスに余分なsstablesを読むことができます。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=334833&siteId=1