2012-11-19 17 views
5

Redisの遅い作業/応答の理由は何ですか?Redisが遅くなる理由

つまり、私はRedisで大きなファイルやデータを格納すると速度が遅くなることがわかりました。ほかに何かある?

答えて

9

この質問に対する簡単な答えはありません。すべてのNoSQLまたはSQLベースのストレージソリューションでは、ストレージエンジンの遅延や遅延の原因となる可能性のある条件が数多くあります。レディスも例外ではありません。

私は読書で開始することをお勧め:

は、潜在的な理由の非網羅的なリストである:

  • 不十分なハードウェア(ネットワーク、メモリ、CPU)
  • ソフトウェア
  • 十分でないメモリベースの仮想化(例えば、ローエンドのハードウェア上のXen)、生成OSレベルでスワッピング
  • シングルスレッドエンジンで実行
  • 多すぎO(N)操作(KEYSなど)
  • ラージ・オブジェクトは通信バッファの制御されない膨張をもたらすのRedisに格納された同時セッションの
  • 膨大な数(> 30000)接続が永久的であることが想定されている毎秒
  • 多すぎ接続操作(Redisのは、ウェブサーバではありません、一時的ではない)。クライアントアプリケーションによって生成
  • 多すぎ往復(NOパイプラインまたは凝集コマンドの使用)
  • (特にVM上)bgsaveまたはAOF書き換えによって発生する大きなフォーク操作
  • I/Oに関連する待ち時間AOFを
  • 使用されます多くの
  • 蓄積は、ネットワーク帯域幅の消費量が大幅に
  • ときの操作は、クライアントとマスター/スレーブ通信バッファ、または低速のログデータ
  • TCP incast conditionsにメモリの蓄積
  • 同時にトリガー期限が切れますダンプまたはAOFファイル

を格納する分散ストレージ(およびEC2 EBSとして特に曇ったもの)を使用して

  • は、独自のアプリケーションによって生成されたワークロードに関連し、おそらく他の多くの理由があります。

    他の一般的な理由について考える人がいる場合は、このリストに追加できます。

  • +0

    ありがとうございます!私はそれが私がどこから始めるべきかについての素晴らしい答えだと思う。 – shalakhin

    関連する問題