0

昨日、Redis 2.4 / CentOS 6.2 キャッシュ サーバーで奇妙なパフォーマンスの低下が発生しました。4分ごとに循環します。

マスター サーバーの New Relic のスクリーンショットは次のとおりです

そして、これは同じ期間のスレーブの 1 つです: https://www.evernote.com/shard/s368/sh/802b01bc-294d-46a5-adaa-f64e2e8c8bd2/6cbe244d4570fae63ee412cd1de5a841

私たちの環境に関するいくつかの情報: - キャッシュ: 8 つの CPU、30GB の RAM、および 600Mbps の内部ネットワーク帯域幅を備えた 4 台の Linux クラウド サーバー - Web: 4 つの CPU と 200Mbps の内部ネットワーク帯域幅を備えた 30 台の Windows クラウド サーバー

Web サーバーはそれほどビジーではないようですが、ディップが発生するとタイムアウトします。これがクライアントの問題である可能性を排除していないため、彼は Web アプリケーションに関する詳細情報を提供しています。

Data Cache および AngieList v???? 用の Redis BookSleeve Client 1.1.0.4 を使用した Microsoft ASP.Net MVC 3 Web アプリケーション (このバージョンの BookSleeve と互換性があるもの) セッション状態。

最初は、Redis への接続の量に問題がありました。私が理解しているように、Redis 2.4 には一定数の接続クライアントがあります。

そのため、セッションとデータ キャッシュを別の Redis インスタンスに分離しました。残念ながら、AngiesList は複数の接続をサポートしていないため、マスター サーバーにのみ接続されます。BookSleeve クライアント接続は、.Net の System.Random を使用してランダム化されます。

readonly Random _randomReadConnection = new Random((int)DateTime.Now.Ticks);

データ キャッシュのクライアント接続数は、すべてのサーバーで約 200 です。セッション キャッシュには、ピーク時に約 4100 の接続がありました。

Redis のログを詳しく調べ、iftop と top を監視して実行しましたが、有用なものは見つかりませんでした。

では、なぜこれらのディップが発生しているのでしょうか。

私は .Net 開発者であり、Linux の専門家ではありません。私たちは Redis/Linux 分野のスペシャリストを持っていません... そのため、誰かが検索を絞り込むのを手伝ってくれることを願っています.

バックアップ計画の一環として、互換性のあるセッション状態パッケージを使用してクライアントを ServiceStack Redis v3 に更新し、念のため Redis 2.8 でサーバーを構成しています。

ありがとう。

4

1 に答える 1

1

高負荷時に問題が発生しました。サーバーを Redis 2.8 にアップグレードすると、問題はなくなりました。

また、Service Stack V3 にアップグレードしたときに、Redis 2.4 でメモリの問題が発生しました (リンク)。

AOF および RDB スナップショットをオフにすると、パフォーマンスが向上し、持続可能な状況になります (リンク)。

于 2014-06-22T22:54:40.630 に答える