5

東京キャビネットのテーブルエンジンを評価しています。100 万レコードに達すると、挿入速度が大幅に低下します。バッチ サイズは 100,000 で、トランザクション内で実行されます。xmsiz を設定しようとしましたが、まだ使用できません。東京内閣でこの問題に直面した人はいますか?

詳細

東京キャビネット - 1.4.3
Perl バインディング - 1.23
OS : Ubuntu 7.10 (Windows XP 上の VMWare Player)

4

3 に答える 3

4

同様に、シャードごとに約 100 万件のレコードというレンガの壁にぶつかりました (クライアント側でのシャーディング、空想は何もありません)。さまざまな ttserver オプションを試しましたが、違いがないように見えたので、カーネル側を調べたところ、

echo 80 > /proc/sys/vm/dirty_ratio

(以前の値は 10 でした) は大幅に改善されました。以下は、1 分ごとに出力されるデータの合計サイズ (8 つのシャードで、それぞれが独自のノードで) です。

合計: 14238792 レコード、27.5881 GB サイズ
合計: 14263546 レコード、27.6415 GB サイズ
合計: 14288997 レコード、27.6824 GB サイズ
合計: 14309739 レコード、27.7144 GB サイズ
合計: 14323563 レコード、27.7438 GB サイズ
(ここでは、すべてのシャードの dirty_ratio 設定を変更しました)
合計: 14394007 レコード、27.8996 GB サイズ
合計: 14486489 レコード、28.0758 GB サイズ
合計: 14571409 レコード、28.2898 GB サイズ
合計: 14663636 レコード、28.4929 GB サイズ
合計: 14802109 レコード、28.7366 GB サイズ

7~8倍程度の改善であることがわかります。その時点でのデータベース サイズはノードあたり約 4.5GB (インデックスを含む) で、ノードには 8GB の RAM があります (つまり、dirty_ratio が 10 の場合、カーネルは約 800MB 未満のダーティーを維持しようとしたことになります)。

次に試みるのは、ext2 (現在: ext3) と noatime であり、すべてを ramdisk に保持します (これはおそらく 2 倍のメモリ量を浪費しますが、それだけの価値があるかもしれません)。

于 2009-12-11T00:27:31.143 に答える
2

キャッシュオプションを設定しただけで、大幅に高速になりました。

于 2009-03-04T06:53:21.727 に答える
1

dbtune関数でbnumパラメーターを変更すると、速度も大幅に向上すると思います。

于 2009-04-29T14:08:35.830 に答える