web-dev-qa-db-ja.com

Redisのメモリ使用量のプロファイリング

Redisが使用しているメモリ量を調べるために使用できるツールはありますか?

38
Henley Chiu

[〜#〜] info [〜#〜] コマンドを見てみてください。 this Redisのメモリ使用量に関する記事を読むこともお勧めします。この記事では、特定のデータ構造を使用しているメモリ量に関する詳細情報を確認できます。

37
yojimbo87

https://github.com/sripathikrishnan/redis-rdb-tools を参照してください

Rdbツールは、データベース内の各key = valueペアで使用されるメモリを報告します。 Redisダンプファイルを解析し、csvファイルを構築します。このCSVファイルの各行はキーであり、列にはそのキーによって消費されるメモリが含まれています。

キーまたはデータ型で結果をフィルタリングできます。ツールはダンプファイルで実行されるため、Redisサーバーのパフォーマンスには影響しません。

覚えておくべきポイント-報告されるメモリ使用量は概算です。私の実験に基づいて、実際のメモリ使用量は、ツールによって報告されるものよりも約15%高いことがわかりました。

30

loglevelverboseまたはdebugに設定されている場合、Redisは5秒ごとにメモリ使用量を出力します。

たとえば、これはほとんど空のデータベースの出力です。

[49523] 07 Apr 00:38:58 - DB 0: 2 keys (0 volatile) in 4 slots HT.
[49523] 07 Apr 00:38:58 - 1 clients connected (0 slaves), 924416 bytes in use

データベースには2つのキーがあり、1つの接続されたクライアントがあることがわかります。 924416バイトがアクティブに使用されています。合計メモリ使用量(used_memory_rssフィールドはINFOコマンドによって返されます)詳細が少し高いかもしれません(詳細については [〜#〜] info [〜#〜] ドキュメントを参照してください)。

Redisに保存されたデータは明らかにメモリを必要としますが、メモリ使用量の唯一の制御可能な理由ではありません。より多くのデータベースを構成すると、メモリ使用量が増加します(システム上でデータベースごとに約450バイト増加します)。各接続もメモリを使用します(私のシステムでは、接続ごとに約8キロバイト)。

6
Zr40

Redis 統合メモリアナライザーを取得しました バージョン4以降。

"MEMORY USAGE <key> [SAMPLES <count>] - Estimate memory usage of key"
  "MEMORY STATS                         - Show memory usage details"
  "MEMORY PURGE                         - Ask the allocator to release memory"
  "MEMORY MALLOC-STATS                  - Show allocator internal stats"
4
ClojureMostly

https://github.com/gamenet/redis-memory-analyzer を参照してください

RMAは、Redisキースペースをリアルタイムでスキャンし、キーパターンごとにメモリ使用量の統計を集計するコンソールツールです。本番サーバーでは、メンテナンスなしでこのツールを使用できます。

「string」、「hash」、「list」、「set」、「zset」などのすべてまたは選択したRedisタイプでスキャンし、必要に応じて一致するパターンを使用できます。

また、RMAはパターンでキー名を識別しようとします。たとえば、「user:100」や「user:101」などのキーがある場合、出力で一般的なパターン「user:*」を選択するため、ほとんどのメモリ不足データを分析できますインスタンス。

1
misterion

このメモリがキー間でどのように分散されるかに興味がある場合は、 https://github.com/alexdicianu/redis_toolkit を試すことができます。キーがこのパターンA:B、A:B:CまたはA:B:*などに従う場合にのみ機能します。RedisをWordpressまたはDrupal。

これがサンプルです。

$ ./redis-toolkit report -type memory -name NAME
+----------------------------------------+----------+-----------+----------+
|                     KEY                | NR  KEYS | SIZE (MB) | SIZE (%) |
+----------------------------------------+----------+-----------+----------+
| posts:*                                |      500 |      0.56 |     2.79 |
| post_meta:*                            |      440 |     18.48 |    92.78 |
| terms:*                                |      192 |      0.12 |     0.63 |
| options:*                              |      109 |      0.52 |     2.59 |
0
Alex Dicianu