19

Web アプリケーションを実行しており、キャッシングのために memcached から redis (2.4) に切り替えました。現在、redis のパフォーマンスにやや失望しています。Redis は同じサーバー上で実行されており、非常に単純な GET および SET 操作のみを使用します。キャッシュされた値を多用する一部のリクエストでは、redis に対して最大 300 の GET リクエストがありますが、それらのリクエストには最大 150 ミリ秒かかります。約 200,000 のアクティブなキーと、1 秒あたり約 1,000 の redis リクエストがあります。ディスク io、RAM、または CPU に問題はありません。既存のコードのため、redis リクエストを単純にグループ化することはできません。Memcached は約 4 倍速くなりました。redis について私たちが気に入っているのは、キャッシュ ウォーミングが必要なく、将来的にはより高度なデータストア機能を使用できることです。私たちは、redis が memcached と同様に機能することを期待していました。そのため、設定で何かを見逃している可能性があります。

Redis パフォーマンス チューニングのベスト プラクティスを知っていますか?

4

3 に答える 3

1

redis が OS スワップ メモリを使用しているかどうかを確認します。その場合、レイテンシが追加されます。調べるには、ここで「スワッピングによって引き起こされるレイテンシー」を検索してください: http://redis.io/topics/latency

サーバー ハードウェアが NUMA に対応している場合は、numactl を使用して redis-server を起動することをお勧めします。NUMA を使用して redis-server を開始する場合は、sysctl でゾーン再利用モード (vm.zone_reclaim_mode=0) をオフにすることを忘れないでください。

于 2014-05-18T07:56:10.660 に答える
0

Lua スクリプト内で 300 GET リクエストのスクリプトを作成してみてください。クライアント コードが Redis に対してローカルで実行されている場合でも、TCP/IP スタックに触れる時間を節約できるため、より高速に動作するはずです。

于 2015-07-11T07:19:35.017 に答える