REDIS INFO [section] コマンド

REDIS INFO [section] コマンド


サーバーの情報

Redisサーバー情報と統計値を照会します。  示す情報は次のようです。
infoコマンドを実行すると、commandstatsを除いた情報を示して、info allすればすべての情報を示します。
使用法:info、info all、info serverなどの上で説明したsectionを入力します。

SERVER

Redisサーバーのバージョン、モード、OS情報、ポット、confファイル位置などを見せてくれます。
  • redis_version:3.0.1
  • redis_git_sha1:00000000   -   Git SHA1  
  • redis_git_dirty:0   -   Git dirty flag  
  • redis_build_id:29f2aee9a9a0937b
  • redis_mode:standalone   -   Redisモード三種類の中standalone/sentinel/clusterの一つが表示されます。  
  • os:Linux 3.10.0-229.el7.x86_64 x86_64   -   Operating system  
  • arch_bits:64   -   Architecture (32 or 64 bits)  
  • multiplexing_api:epoll   -   Redisが使用するevent loop mechanism  
  • gcc_version:4.8.3
  • process_id:45928
  • run_id:b4159b6a3960782f8250fca8e6db62bf31b21cbb   -   RedisサーバーID:クラスターとセンチナルモードで使用
  • tcp_port:5001   -   TCP/IP listen port  
  • uptime_in_seconds:830488   -   始めた後、過ぎた時間(秒)-運営時間 
  • uptime_in_days:9 - 開始した後、過ぎた時間(日)-運営時間 
  • hz:10 - これはtimer interruptです。  この値は1秒に10番を意味します。   値の範囲は1~500です。   意味は各種background作業を呼び出す周期です。  例えば満了されたキーを削除する作業、 RDBのファイル書き出しとAOF rewrite作業を始めるようにする作業、複製再連結などを1秒に10回呼び出すことです。
    次はredis.cにある説明です。
    • Active expired keys collection (it is also performed in a lazy way on lookup).
    • Software watchdog.
    • Update some statistic.
    • Incremental rehashing of the DBs hash tables.
    • Triggering BGSAVE / AOF rewrite, and handling of terminated children.
    • Clients timeout of different kinds.
    • Replication reconnection.
    • Many more..
  • lru_clock:11989733   -   incrementing every minute, for LRU management  
  • config_file:/redis/5001/redis.conf

CLIENTS

クライアント情報を示します。
  • connected_clients:1 - 現在接続しているクライアントの数(スレーブノード接続は除外) 
  • client_longest_output_list:0 - longest output list among current client connections 
  • client_biggest_input_buf:0 - biggest input buffer among current client connections 
  • blocked_clients:0 - BLPOP、BRPOP、BRPOPLPUSHコマンドで待機中のクライアント数  

MEMORY

サーバーメモリ使用情報を示します。
  • used_memory:3348256824 - Bytes 
  • used_memory_human:3.12G - 私たちが読みやすい単位(M/G)で見せてくれます。  
  • used_memory_rss:2186285056 - Resident Set Size.topやpsコマンドで見ることができます。  
  • used_memory_peak:3662772648 - 最大で使用したメモリー(bytes) 
  • used_memory_peak_human:3.41G - 最大で使用したメモリー(M/G) 
  • used_memory_lua:35840 - ・ルアエンジンで使用したメモリー 
  • mem_fragmentation_ratio:0.65 - used_memoryとused_memory_rssの割合 
  • mem_allocator:jemalloc-3.6.0 - コンパイル時に定めたメモリのallocator 

PERSISTENCE

RDBとAOFに対する情報を示します。
  • loading:0 - Redisサーバー起動時、RDBまたはAOFファイルを読み込む間、1です。
    redis.ioにまるでdumpファイルを読み込む間だけ1で表示されるようになっているが、AOFファイルを読み込むときも 1で表示されます。  RDB/AOFファイルをローディングしている間、SETコマンドのようなものを実行すれば "(error)LOADING Redis is loading the dataset in memory"このようなエラーを出すが、infoコマンドは実行されます。   したがって、infoコマンドでローディング中なのか確認することができます。
ここからRDBファイル関連情報 ------------------------
  • rdb_changes_since_last_save:3   -   RDBファイルを最後に指定した後に入力されたデータ件数です。  
  • rdb_bgsave_in_progress:0 - RDBファイルbackground saveが進行中の時、1で表示されます。
    redis.confファイルのsaveオプションまたはBGSAVEコマンドを実行して子プロセス(child process)がRDBファイルを保存中であるときです。   SAVEコマンドはRedisプロセスが直接処理するため、infoコマンドもSAVEコマンドが完了すれば表示されます。
  • rdb_last_save_time:1438064972   -   最後の成功的にRDBファイルを保存した時刻  
  • rdb_last_bgsave_status:ok   -   最後のバックグラウンドRDBファイルの保存状態:ok/err 
  • rdb_last_bgsave_time_sec:13 - 最後のバックグラウンドRDBファイルの保存の所要時間(秒)
    -1なら、まだRDBファイルを一度も保存していない状態です。
  • rdb_current_bgsave_time_sec:-1 - 現在バックグラウンドでRDBファイルを保存しているなら、保存開始から現在まで 所要された時間。
     
    完了すれば、この時間が上のパラメータに記録されます。 -1は現在保存中ではないということです。
ここからAOFファイル関連情報 ------------------------
  • aof_enabled:1   -   redis.confにappendonly yesなら1、noなら0です。
    yesの時はRedisサーバーをスタートするときappendonly.aofを読んで、noならdump.rdbファイルを読みます。 どちらか一方がなくて他のファイルを読むことはありません。
  • aof_rewrite_in_progress:0   -   現在AOFファイルをBackgroundに保存中なら1で表示されます。  
  • aof_rewrite_scheduled:0 - AOF rewriteをすることが予定されていれば1.
    RDBファイルを保存中なら、同時にAOFファイルを保存することはできません。 つまり、子プロセス(child process)を一つだけ実行できるようになっています。   したがって、RDBファイルの保存中なら、予定(scheduled:1)しておいて、保存が完了すれば、AOF rewriteをスタートします。
  • aof_last_rewrite_time_sec:13   -   最後のAOF rewriteの所要時間(秒) 
  • aof_current_rewrite_time_sec:-1 - 現在AOF rewriteが進行中なら、スタートから現在まで時間(秒)が表示されます。
    完了すれば、この時間が上Parameterに保存され、ここは-1に変更されます。
  • aof_last_bgrewrite_status:ok   -   最後のAOF background rewrite状態:ok/err 
  • aof_last_write_status:ok - 最後のAOF write状態:ok/err
    AOFファイルを削除してテストしたが、okが出ます。 RedisはAOFファイルが存在するかどうかを確認しないものと考えられています。
loading:1の時に出る情報 ------------------------
  • loading_start_time:1438065655   -   ローディングスタート時間 
  • loading_total_bytes:2872474649 - RDBまたはAOFファイルサイズ(バイト) 
  • loading_loaded_bytes:772905051 - ローディングしたバイト 
  • loading_loaded_perc:26.91 - ローディングパーセント、100まで増加します。  
  • loading_eta_seconds:10 - 残ったローディング時間(予想)、0に減少します。  
loading:0の時に出る情報 ------------------------
  • aof_current_size:2872474649   -   現在AOFファイルサイズ(バイト) 
  • aof_base_size:2872474649 - 始めた時または最後rewriteした時サイズ(バイト)
    auto-aof-rewrite-percentage 100のときcurrent_sizeがbase_sizeより2倍ならrewriteを開始します。
  • aof_pending_rewrite:0   -   RDB ファイルを保存中であるためにAOF rewriteをできなくて待っている場合、1 
  • aof_buffer_length:0 - AOFバッファの長さ 
  • aof_rewrite_buffer_length:0 - rewriteバッファの長さ  
  • aof_pending_bio_fsync:0   -   appendfsyncをeverysecに設定したときディスク作成(fsync)は、別途のthreadが処理します。   I/O負荷がひどくて現在処理できずにI/O queueに待機(pending)中のjobの数を 見せてくれます。  以下の項目と連結されているので、一緒に見てください。
  • aof_delayed_fsync:0   -   appendfsyncをeverysecに設定したときaof bufferを毎秒ごとにディスクに書かなければならないですが、  I/O負荷が激しく、(現在pendingされたjobがあって)2秒以上書かなかった場合、サーバlogに "Asynchronous AOF fsync is taking too long(disk is busy?)。 Writing the AOF buffer without waiting for fsync to complete、 this may slow down Redis."メッセージを残して、この項目を1増加させます。   このときサーバはwriteの遅延によって停止する現象が発生することができます。
    これについての詳しい内容と解決策は AOF fsync is taking too longを見てください。

STATS

総接続数、総処理コマンド数など統計情報を示します。
  • total_connections_received:22658 - サーバースタート後の総接続数 
  • total_commands_processed:553430 - サーバースタート後処理した総コマンド数(保存、照会すべて) 
  • instantaneous_ops_per_sec:1 - 現在毎秒処理したコマンド数、現在の状況を示します。
    この値で、現在、毎秒何件ずつ処理しているかを知ることができます。
  • total_net_input_bytes:2996372500 - サーバースタート後の総入力バイト 
  • total_net_output_bytes:1927242928 - サーバースタート後の総出力バイト 
  • instantaneous_input_kbps:0.05 - 現在入力kbps 
  • instantaneous_output_kbps:0.01 - 現在出力kbps 
  • rejected_connections:0 - maxclientsの制限に拒否された接続数  
  • sync_full:2   -   Masterノードの時slaveノードとfull syncの回数 
  • sync_partial_ok:0 - Masterノードの時slaveノードとpartial sync okの回数 
  • sync_partial_err:0 - Masterノードの時slaveノードとpartial sync errの回数 
  • expired_keys:15 - expireコマンド(そんな種類)で削除されたkey数 
  • evicted_keys:0 - maxmemoryの制限によって退出されたkey数 
  • keyspace_hits:119035 - get keyして値段が出れば、1増加 
  • keyspace_misses:5980 - get keyしてnilが出ると、1増加 
  • pubsub_channels:5 - pub/sub channelに連結されたchannel数 
  • pubsub_patterns:7 - pub/sub patternに連結されたpattern channel数 
  • latest_fork_usec:68721 - 最後のfork()するためにかかった時間(microsecond) 
  • migrate_cached_sockets:0 - クラスターmigrate関連値  

REPLICATION

master/slave複製に対する情報を示します。
  • role:master - master/slaveの一つ、slaveですが他のslaveのmasterの場合slaveで表示されます。  
masterの場合、出てくる情報------------------------
  • connected_slaves:1 - masterの場合、連結されたslave数 
  • slave0:ip=127.0.0.1、port=5002、state=online、offset=1818050955、lag=0 - 連結されたslave情報
    slaveの数ほど、表示されます。
いつも表示される情報------------------------
  • master_repl_offset:1818050955   -    
  • repl_backlog_active:1   -   masterの場合1でslaveは0です。  
  • repl_backlog_size:1048576 - redis.confファイルにrepl-backlog-size設定値です。   見えれる値は1mbの場合です。 1mbがデフォルト値です。 0に設定できません。 0にすれば、Redis開始時にエラーを出して開始ができません。   slaveとの連結が切れたとき入力されるデータをbacklog-bufferに保存し、再び接続された時の全体のデータをもう一度くれて受ける必要なく backlog-bufferのデータをslaveに送って同期化します。 repl_backlog_sizeはbufferサイズです。   これはpartial resynchronizationです。   入力されるデータがBuffer sizeを超過すれば、Full Syncをします。
  • repl_backlog_first_byte_offset:1817002380   -    
  • repl_backlog_histlen:1048576   -    
slaveのとき、追加で得る情報 ------------------------
  • master_host:127.0.0.1   -   masterノードIP 
  • master_port:5001 - masterノードポート 
  • master_link_status:up -  masterノードと連結状態が正常up、異常down
    周囲:slaveノードを開始した後AOF/RDBファイルをロードする間、masterとFull Syncしている間、downで表示されます。   Full Syncが完了すると、upで表示されます。
  • master_link_down_since_seconds:2 - リンクがダウンした後、経過時間を(秒)で見せてくれます。   上の項目がdownの時に表示されます。   Redisサーバースタート後masterとの連結が完了する前までは1970年からUnix Timeを見せてくれます。   예) 1438132897
  • master_last_io_seconds_ago:4   -   defaultに10秒に一度ずつping確認するので0~10の間の値です。   masterデータが変更され、当該データを受ければ、0にsettingなります。   この値が10より大きければ、masterと通信しない状態が持続されるものです。   masterサーバーがダウンしたのか、ネットワークが切れたのかなどの状態なのです。   例えば、masterでdebug sleep 20を実行すると、20秒間sleepの状態なので本項目値は20以上増加します。   master_link_status:downなら-1で表示されます。
  • master_sync_in_progress:0   -   masterノードとSync中なら1で表示されます。   Syncしている間、次の2項目が追加で表示されます。
  • master_sync_left_bytes:1276656530 - Syncを完了するまで残っているバイト、Slaveの立場では受けなければならないバイトです。   この値は減って、0になります。
  • master_sync_last_io_seconds_ago:0 - syncしている間、最後までデータを受けた後、時間(秒)、 上の項目であるleft_bytesが0になったらこの値は増加し始めます。   受けたRDBファイルをロードする間、この値が増加します。
  • slave_repl_offset:86090   -    
  • slave_priority:100   -   slaveがmasterに選定される優先順位を示します。 redis.confに設定されます。 デフォルト値が100です。 少ないほど優先順位が高いです。 しかし、masterに選ばれないようにするときは0をsettingします。  
  • slave_read_only:1 - slaveに保存/変更/削除コマンドを実行しないようにします。 照会コマンドは実行可能です。  0なら保存/変更/削除コマンドの実行が可能です。   redis.confファイルにslave-read-only yes/noに設定します。

CPU

CPU使用量統計情報を示します。
  • used_cpu_sys:362.65 - システムモードで使用したCPU時間 
  • used_cpu_user:163.98 - ユーザモードで使用したCPU時間 
  • used_cpu_sys_children:23.06 - RDB/AOFファイル保存するときに子プロセスがシステムモードで使用したCPU時間 
  • used_cpu_user_children:51.17 - RDB/AOFファイル保存するときに子プロセスがユーザモードで使用したCPU時間  

COMMANDSTATS

Redisコマンドの統計情報を示します。
calls:コマンドの実行回数
usec:実行時間(microsecond)
usec_per_call:一回実行するのにかかった平均時間(microsecond)
usec_per_call=usec/calls
  • cmdstat_get:calls=100853、usec=33168、usec_per_call=0.33 - get実行するのに平均0.33 microsecondがかかりました。
  • cmdstat_set:calls=100000、usec=39056、usec_per_call=0.39 - set実行するのに平均0.39 microsecondがかかりました。

CLUSTER

クラスターするかどうかを示します。
  • cluster_enabled:0 - クラスターが活性化されていれば1、でなければ0です。  

KEYSPACE

Key情報を示します。
db0:DB番号
keys=4677733:key数、dbsizeコマンドの結果と同じです。
expires=1:expireされるkey数。 例えば、expire key 10コマンドを実行すると 1増加し、このkeyが終了すれば 1減少します。
avg_ttl=10395:残った時間(millisecond)。この場合、該当keyは10.395秒後に削除されるものです。
  • db0:keys=4677733,expires=1,avg_ttl=10395   

クリックすると、もっと多くの情報を見ることができます。







댓글

이 블로그의 인기 게시물

REDIS CLIENT LIST コマンド

REDIS SETEX command - SETEX命令