memcached 线程数显示超过设置的数量

memcached 线程数显示超过设置的数量

我使用 8 个线程启动了 memcached 服务器。然后我使用以下线程检查了线程ps -eLf | grep memcached

shantanu  2758     1  2758  0   10 11:17 ?        00:00:00 memcached -d -l 10.90.15.104 -p 11311 -t 8 -vv
shantanu  2758     1  2759  0   10 11:17 ?        00:00:00 memcached -d -l 10.90.15.104 -p 11311 -t 8 -vv
shantanu  2758     1  2760  0   10 11:17 ?        00:00:00 memcached -d -l 10.90.15.104 -p 11311 -t 8 -vv
shantanu  2758     1  2761  0   10 11:17 ?        00:00:00 memcached -d -l 10.90.15.104 -p 11311 -t 8 -vv
shantanu  2758     1  2762  0   10 11:17 ?        00:00:00 memcached -d -l 10.90.15.104 -p 11311 -t 8 -vv
shantanu  2758     1  2763  0   10 11:17 ?        00:00:00 memcached -d -l 10.90.15.104 -p 11311 -t 8 -vv
shantanu  2758     1  2764  0   10 11:17 ?        00:00:00 memcached -d -l 10.90.15.104 -p 11311 -t 8 -vv
shantanu  2758     1  2765  0   10 11:17 ?        00:00:00 memcached -d -l 10.90.15.104 -p 11311 -t 8 -vv
shantanu  2758     1  2766  0   10 11:17 ?        00:00:00 memcached -d -l 10.90.15.104 -p 11311 -t 8 -vv
shantanu  2758     1  2767  0   10 11:17 ?        00:00:00 memcached -d -l 10.90.15.104 -p 11311 -t 8 -vv

现在,如您所见,当 -t 设置为 8 时,显示线程数为 10。我不明白这一点。我在 ps 命令中犯了错误吗?请帮助我理解这种现象。

答案1

检查你的 memcached 统计数据,检查线程。

telnet localhost 11211

stats

STAT accepting_conns 1
STAT listen_disabled_num 0
STAT threads 4
STAT conn_yields 0

默认情况下和所有其他设置下,我看到 memcached 为自己分配了 2 个线程,没有 -t 参数,所以我猜测 memcached 的工作原理是线程 = 2 +threads_configured。

尝试增加或减少以查看此解释是否适用于您的设置。

答案2

我认为有 2 个内部线程 + 4 个用于 TCP 的线程和 4 个用于 UDP 的线程:

echo "stats settings" | nc localhost 11211 

...

STAT num_threads 4
STAT num_threads_per_udp 4

相关内容