write性能を向上させる方法

  1. commit logとデータディレクトリ(sstables)を異なるディスクに配置して下さい。
  2. 実はStep 2はありません。Writeはcommit logに書き込まれ(高速です)、次に直接メモリにロードされます(大変高速です)。この過程を更に高速化する方法は現実的にありません。

もしwrite中心の負荷で大きな遅延のスパイクが発生しているなら、原因は他の要素です。ピーク性能がまずまずなら、それを更にチューニングするより、本当に性能が悪い部分の改善に注力したほうがいいでしょう。

read性能を向上する方法

まずMemtable Thresholdsのページを確認してください。重要な設定パラメータや、システム設定についていくつか説明されています。

Compactionがシステムに与える影響を抑制する

Compactionのプライオリティを下げる(システム全体に与える影響が減りますが、Compactionにより長い時間がかかります)には、以下のオプションをcassandra.in.shに追加して下さい(0.6.3以降)。

-XX:+UseThreadPriorities \
-XX:ThreadPriorityPolicy=42 \
-Dcassandra.compaction.priority=1 \

有用なJVMオプション

-XX:+UseCompressedOops # Compressed Referenceを有効にし、64bit JVM上でメモリオーバヘッドを減少させます

Sun、IBMのJVMについてはそれぞれ次のURLにおける議論を参照して下さい。 http://wikis.sun.com/display/HotSpotInternals/CompressedOops http://publib.boulder.ibm.com/infocenter/javasdk/v6r0/topic/com.ibm.java.doc.diagnostics.60/diag/understanding/mm_compressed_references.html

Sun JVM 6u19以前のバージョンではCompressed Reference(OOP=Ordinary Object Pointersとして知られています)は安定していません。

システム設定

ToDo: describe how top, iostat -x, and JMX stats can help you see what is making things slow

初心者の方は"Linux Performance Basics for Cassandra"を参照して下さい。

https://c.statcounter.com/9397521/0/fe557aad/1/|stats

  • No labels