如果使用 、 或 选项启用详细模式,-v
则
-vv
memcached-vvv
输出的信息包括正在执行的操作的详细信息。
如果没有详细选项,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
使用第二级详细信息时,您将获得有关协议操作、密钥更新、块和网络操作和详细信息的更多详细信息。
在使用这种详细程度的memcached 初始启动期间 ,您将看到各个平板类的大小、块大小和每个平板的条目数。这些不显示 slab 的分配,仅显示添加数据时将创建的 slab。您还会获得有关用于发送信息的侦听队列和缓冲区的信息。下面给出了使用默认内存和增长因子为基于 TCP/IP 的系统生成的输出示例:
$> 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)
使用这个详细级别可以是一种有用的方法来检查增长因子对具有不同内存分配的 slab 的影响,这反过来可以用来更好地调整增长因子以适应您存储在缓存中的数据。例如,如果将增长因子设置为 4(将每个板的大小增加四倍):
$> 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获得的一些性能提升。因此,不建议在生产或部署环境中使用。