1

RAMdisk での Apache HBase の使用について一般的な質問があります。1 つのテーブルには、合計で約 25 GB の大きなデータ コレクションがあります。このデータを使用して、Java プログラムを使用していくつかの基本的な集計を行っています。

十分なRAMが利用できるので、tmpfsを使用してこのデータセットをRAMディスクに入れようとしました:

mount -t tmpfs -o size=40G none /home/user/ramdisk

次に、HBase を停止し、データ フォルダーの内容を RAM ディスクにコピーしました。最後に、古いデータ ディレクトリを新しいデータ ディレクトリにリンクするシンボリック リンクを作成し、HBase を再度起動しました。

動作しますが、集計を処理すると、以前より少し遅くなりました。

HBase がデータを圧縮している場合 (Snappy 圧縮がアクティブになっている場合) など、RAM ディスクを使用することによる影響はそれほど大きくないと想像できます... しかし、高速なメディアがディスクへのアクセスを遅くする理由を推測することはできません。データ。利用可能な RAM が十分に残っているため、これがボトルネックになることはありません。

多分誰かがこれについて一般的な考えや洞察を持っていますか?

4

1 に答える 1

1

A: ディスクを割り当てる前に、本当に 40G 以上の空き RAM がありますか? 私は感銘を受けました & あなたが実際にそれほど多くの空き容量を持っていたのなら、すべてですが、後で RAM が空き状態になったことは、スワップの大きなチャンクを使用しただけではないことを示しているわけではありません。

B: 圧縮 (スナッピーのように速いものでも) はパフォーマンスに悪影響を及ぼします... 特にデータベース エンジンのような、奇抜な最適化がたくさん含まれているものでは。ramdisk はばかばかしいほど高速である必要がありますが、データベースクエリ全体をジャンプする必要があり、圧縮されたイメージ全体をジャンプしてチャンクを解凍する必要があるため、かなり大きなオーバーヘッドが必要です。

于 2013-12-02T04:18:09.043 に答える