Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 26.8Mb
PDF (A4) - 26.9Mb
HTML Download (TGZ) - 7.1Mb
HTML Download (Zip) - 7.2Mb


16.6.2.8 memcached ログ

-v-vv、または -vvv オプションを使用して冗長モードを有効にすると、memcached が出力する情報に実行中の操作の詳細が追加されます。

冗長オプションを指定しないと、通常は memcached の正常な動作中に出力が生成されません。

  • -v 使用時の出力

    もっとも低い冗長レベルでは、次が表示されます。

    • エラーおよび警告

    • 一時的なエラー

    • プロトコルおよびソケットのエラー (使用可能な接続の使い果たしなど)

    • 登録された個々のクライアント接続 (使用されているソケットディスクリプタ番号とプロトコルを含む)。

      例:

      32: Client using the ascii protocol
      33: Client using the ascii protocol

      ソケットディスクリプタはクライアントが接続されている間だけ有効になります。永続的ではない接続は表示されない場合があります。

    このレベルで出力されるエラーメッセージの例を次に示します。

    <%d send buffer was %d, now %d
    Can't listen for events on fd %d
    Can't read from libevent pipe
    Catastrophic: event fd doesn't match conn fd!
    Couldn't build response
    Couldn't realloc input buffer
    Couldn't update event
    Failed to build UDP headers
    Failed to read, and not due to blocking
    Too many open connections
    Unexpected state %d
  • -vv 使用時の出力

    2 番目の冗長レベルを使用すると、プロトコルの動作、更新されたキー、チャンクとネットワークの動作および詳細に関するより詳しい情報が提供されます。

    この冗長レベルで memcached を起動すると、最初に個々のスラブクラスのサイズ、チャンクサイズ、およびスラブあたりのエントリ数が表示されます。これらは、スラブが割り当てられたことを示すのではなく、データが追加されたときに作成されるスラブを示します。情報を送信するために使用される待機キューおよびバッファーに関する情報も表示されます。デフォルトのメモリーおよび増大係数を含む TCP/IP ベースシステムに関して生成された出力の例を次に示します。

    shell> memcached -vv
    slab class   1: chunk size     80 perslab 13107
    slab class   2: chunk size    104 perslab 10082
    slab class   3: chunk size    136 perslab  7710
    slab class   4: chunk size    176 perslab  5957
    slab class   5: chunk size    224 perslab  4681
    slab class   6: chunk size    280 perslab  3744
    slab class   7: chunk size    352 perslab  2978
    slab class   8: chunk size    440 perslab  2383
    slab class   9: chunk size    552 perslab  1899
    slab class  10: chunk size    696 perslab  1506
    slab class  11: chunk size    872 perslab  1202
    slab class  12: chunk size   1096 perslab   956
    slab class  13: chunk size   1376 perslab   762
    slab class  14: chunk size   1720 perslab   609
    slab class  15: chunk size   2152 perslab   487
    slab class  16: chunk size   2696 perslab   388
    slab class  17: chunk size   3376 perslab   310
    slab class  18: chunk size   4224 perslab   248
    slab class  19: chunk size   5280 perslab   198
    slab class  20: chunk size   6600 perslab   158
    slab class  21: chunk size   8256 perslab   127
    slab class  22: chunk size  10320 perslab   101
    slab class  23: chunk size  12904 perslab    81
    slab class  24: chunk size  16136 perslab    64
    slab class  25: chunk size  20176 perslab    51
    slab class  26: chunk size  25224 perslab    41
    slab class  27: chunk size  31536 perslab    33
    slab class  28: chunk size  39424 perslab    26
    slab class  29: chunk size  49280 perslab    21
    slab class  30: chunk size  61600 perslab    17
    slab class  31: chunk size  77000 perslab    13
    slab class  32: chunk size  96256 perslab    10
    slab class  33: chunk size 120320 perslab     8
    slab class  34: chunk size 150400 perslab     6
    slab class  35: chunk size 188000 perslab     5
    slab class  36: chunk size 235000 perslab     4
    slab class  37: chunk size 293752 perslab     3
    slab class  38: chunk size 367192 perslab     2
    slab class  39: chunk size 458992 perslab     2
    <26 server listening (auto-negotiate)
    <29 server listening (auto-negotiate)
    <30 send buffer was 57344, now 2097152
    <31 send buffer was 57344, now 2097152
    <30 server listening (udp)
    <30 server listening (udp)
    <31 server listening (udp)
    <30 server listening (udp)
    <30 server listening (udp)
    <31 server listening (udp)
    <31 server listening (udp)
    <31 server listening (udp)

    この冗長レベルを使用すると、異なるメモリー割り当てを含むスラブに対して使用される増大係数の効果を効果的にチェックできます。また、その結果を使用して、キャッシュに格納するデータに合わせて増大係数を調整できます。たとえば、増大係数を 4 に設定した (各スラブのサイズが 4 倍になった) 場合:

    shell> memcached -f 4 -m 1g -vv
    slab class   1: chunk size     80 perslab 13107
    slab class   2: chunk size    320 perslab  3276
    slab class   3: chunk size   1280 perslab   819
    slab class   4: chunk size   5120 perslab   204
    slab class   5: chunk size  20480 perslab    51
    slab class   6: chunk size  81920 perslab    12
    slab class   7: chunk size 327680 perslab     3
    ...

    この冗長レベルでは、キャッシュの使用中に、キーおよびその他の情報の格納とリカバリに関する詳細情報も出力されます。一般的な設定/取得および増分/減分操作中の出力の例を次に示します。

    32: Client using the ascii protocol
    <32 set my_key 0 0 10
    >32 STORED
    <32 set object_key 1 0 36
    >32 STORED
    <32 get my_key 
    >32 sending key my_key
    >32 END
    <32 get object_key 
    >32 sending key object_key
    >32 END
    <32 set key 0 0 6
    >32 STORED
    <32 incr key 1
    >32 789544
    <32 decr key 1
    >32 789543
    <32 incr key 2
    >32 789545
    <32 set my_key 0 0 10
    >32 STORED
    <32 set object_key 1 0 36
    >32 STORED
    <32 get my_key 
    >32 sending key my_key
    >32 END
    <32 get object_key 
    >32 sending key object_key1 1 36
    
    >32 END
    <32 set key 0 0 6
    >32 STORED
    <32 incr key 1
    >32 789544
    <32 decr key 1
    >32 789543
    <32 incr key 2
    >32 789545

    クライアント通信中は、各行の最初の文字は情報の流れの方向を示しています。< はクライアントから memcached サーバーへの通信、> はクライアントへの通信をそれぞれ示します。数字は、この接続のソケットディスクリプタを表す数値です。

  • -vvv 使用時の出力

    この冗長レベルには、クライアントとの間でコンテンツの読み取りおよび書き込みを行なっている間の、イベントライブラリのさまざまな接続状態の遷移が含まれます。これは、クライアント通信の問題を診断して識別するために使用します。たとえば、この情報を使用して、クライアント操作の読み取り中または操作が返されて完了する前に memcached がクライアントに情報を返すのに長い時間がかかっているかどうかを判定できます。設定操作の一般的なシーケンスの例を次に示します。

    <32 new auto-negotiating client connection
    32: going from conn_new_cmd to conn_waiting
    32: going from conn_waiting to conn_read
    32: going from conn_read to conn_parse_cmd
    32: Client using the ascii protocol
    <32 set my_key 0 0 10
    32: going from conn_parse_cmd to conn_nread
    > NOT FOUND my_key
    >32 STORED
    32: going from conn_nread to conn_write
    32: going from conn_write to conn_new_cmd
    32: going from conn_new_cmd to conn_waiting
    32: going from conn_waiting to conn_read
    32: going from conn_read to conn_closing
    <32 connection closed.

memcached のすべての冗長レベルは、問題のデバッグ中または調査中に使用するために設計されています。生成される情報 (特に -vvv を使用したとき) の量は、(特に負荷の高いサーバーでは) 重要です。エラー情報を (特にディスクに) 書き出すと、memcached を使用することで達成したパフォーマンス向上の一部が打ち消される可能性があります。そのため、本番環境や配備環境での使用は推奨されません。