Redisに500万レコード突っ込んで複数クライアントからGETしてみる

Redisの負荷検証(1000万レコード突っ込んだ時の動きをみてみる) | shinodogg.com
↑のエントリで1000万レコード突っ込んだらスワップしちゃって、
イマイチな検証しか出来なかったので、突っ込むのは500万件にしてみました。
 
■ データ投入
5多重で500万件までバンバン入れていきます。
# こうみるとバックグランドでファイルにストアしてるとことか分かり易いですね。

[5390] 08 Dec 16:44:25 * 10000 changes in 60 seconds. Saving...
[5390] 08 Dec 16:44:25 * Background saving started by pid 5449
[5390] 08 Dec 16:44:26 - DB 0: 5000000 keys (0 volatile) in 8388608 slots HT.
[5390] 08 Dec 16:44:26 - 10 clients connected (0 slaves), 574091468 bytes in use
[5390] 08 Dec 16:44:31 - DB 0: 5000000 keys (0 volatile) in 8388608 slots HT.
[5390] 08 Dec 16:44:31 - 10 clients connected (0 slaves), 574091452 bytes in use
[5449] 08 Dec 16:44:31 * DB saved on disk
[5390] 08 Dec 16:44:31 * Background saving terminated with success
[5390] 08 Dec 16:44:36 - DB 0: 5000000 keys (0 volatile) in 8388608 slots HT.
[5390] 08 Dec 16:44:36 - 10 clients connected (0 slaves), 574091516 bytes in use

 
■ データ取得(σ゚ー゚)σ
10多重でGETしてみて10分くらい見てみましたが、
リソースの状況が安定しているので15多重にしてみます。

[5390] 08 Dec 16:54:46 - 15 clients connected (0 slaves), 574093212 bytes in use

 
1プロセスが5秒くらいで1万ループしてるので速度は全く問題なさそうです。

Wed Dec 08 17:01:38 JST 2010
GET Counter : 490000
Wed Dec 08 17:01:43 JST 2010
GET Counter : 500000

 
あんまり落ち着いてても面白くないので、50万件くらいレコード追加してみます。

[5390] 08 Dec 17:03:28 * 1 changes in 900 seconds. Saving...
[5390] 08 Dec 17:03:28 * Background saving started by pid 5495
[5390] 08 Dec 17:03:31 - DB 0: 5005899 keys (0 volatile) in 8388608 slots HT.
[5390] 08 Dec 17:03:31 - 16 clients connected (0 slaves), 574730640 bytes in use
[5495] 08 Dec 17:03:34 * DB saved on disk
[5390] 08 Dec 17:03:34 * Background saving terminated with success
[5390] 08 Dec 17:03:36 - DB 0: 5015395 keys (0 volatile) in 8388608 slots HT.
~略~
[5390] 08 Dec 17:08:06 - DB 0: 5500000 keys (0 volatile) in 8388608 slots HT.

 
裏でデータを投入してる間も、コンスタントに5秒くらいで1万ループしています。

Wed Dec 08 17:07:03 JST 2010
GET Counter : 2280000
Wed Dec 08 17:07:08 JST 2010
GET Counter : 2290000

 
すこぶる安定してるのでクライアントの多重度を20まで上げてみます。

[5390] 08 Dec 17:20:26 - DB 0: 6451099 keys (0 volatile) in 8388608 slots HT.
[5390] 08 Dec 17:20:26 - 20 clients connected (0 slaves), 730813728 bytes in use
[5390] 08 Dec 17:20:31 - DB 0: 6451099 keys (0 volatile) in 8388608 slots HT.
[5390] 08 Dec 17:20:31 - 20 clients connected (0 slaves), 730813696 bytes in use

# 諸事情によりオペミスしてキーの数が650万件くらいになっちゃってますが。。。w
 
最後に40コネクションにしてみましたが、全然大丈夫そうでした。

[5390] 08 Dec 17:37:02 - 40 clients connected (0 slaves), 730820864 bytes in use

 
クライアント側で1万ループに8秒くらいかかるようになっちゃってますが、
多重度あげるてクライアントマシンがヒーヒー言ってるのが原因かも。。

Wed Dec 08 17:41:56 JST 2010
GET Counter : 1760000
Wed Dec 08 17:42:04 JST 2010
GET Counter : 1770000

 
■ ってことで
今回は割りとよさげな結果が取れました。

 
■ そのままずっと動かしてみましたが、、
50多重にして小一時間くらい流しっぱなしにしてみました。

[5390] 08 Dec 18:34:27 - 50 clients connected (0 slaves), 730824432 bytes in use
[5390] 08 Dec 18:34:32 - DB 0: 6451099 keys (0 volatile) in 8388608 slots HT.

↓とても安定した結果が取れましたヽ(´ー`)ノ

 
次はレプリケーションさせてみてみます。

コメント

  1. […] ・Redisの負荷検証(1000万レコード突っ込んだ時の動きをみてみる) ・Redisに500万レコード突っ込んで複数クライアントからGETしてみる ・Redisでレプリケーション(多段スレーブも試してみる) […]

タイトルとURLをコピーしました