3

私は Cassandra の専門家ではありません。数か月前、ソーシャル ネットワーク アプリケーション用のデータベースを構築する注文を受けました。ネットワークから参照する多くの理由から、すべてのフィードのメタデータを保存するために Cassandra を選択し、リスト、zset または id (軽量で最も変更されたデータ) を保存するために redis を選択します。私の Cassandra クラスターには、レプリケート ファクターが 2 に設定された 4 つのノードが含まれています。2 つのサーバーに 4 つのノードがあります (各サーバーには 2 つのノードがあります)。Cassandra クラスターをできるだけ速く調整するように cassandra.yaml を構成しました。私のシステムは、システム統計を確認する日まではまったく問題ないようです。信じられない。理由を説明しましょう:

   First: I type "iostat -x 5" to view io stat. The result is as following:

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.35    0.00    0.82    0.08    0.00   98.75

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.00     0.00    0.00    2.80     0.00    22.40     8.00     0.01    4.50   3.93   1.10
sdb               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sdd               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sdc               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00

ここでの CPU は 0.35% で、アクティブなユーザーは 4000 人しかいませんが、IO はまだ私の問題ではありません。問題はここにあります。

PID  USER      PR   NI VIRT  RES  SHR S  %CPU  %MEM  TIME+   COMMAND


4689 root      20   0 13.1g 6.8g 182m S 514.6 21.8  37374:09 java      5029 root      20   0 13.0g 6.7g 174m S  1.7 21.5  10113:45 java

CPU cassandra ノードは非常に多く使用されます。ノードでさえ、CPU の最大 1400% になることができ、その後は 0.5% まで低下します。理由は本当にわかりません。誰が理由を教えてくれますか? また、可能であれば対処法を教えてください。前もって感謝します!

4

1 に答える 1

2

デバッグ ログ情報を確認した後、問題の原因を突き止めたと思います。Cassandra は、GC のために CPU サイクルを大量に消費します。

ここにログトラックがあります:

INFO [ScheduledTasks:1] 2013-05-08 18:20:38,334 GCInspector.java (line 122) GC for ParNew: 269 ms for 1 collections, 3367771984 used; max is 6358564864

GC が実行されるたびに、CPU サイクルが増加します。私の設定では、ヒープメモリを 6GB に設定しました。Cassandra が GC プロセスを実行している間、多くの CPU サイクルが消費されると思います。ただし、値を低く設定すると、パフォーマンスが低下する可能性があります。私がしなければならないことを誰が教えてくれますか??

于 2013-05-08T11:27:28.050 に答える