Memcached 不断增加 CPU 使用率

fil*_*891 6 memcached cpu-usage

我正在运行一个 memcached 服务器,它为两个前端服务器提供服务。它们使用标准 PECL 库从 Apache2/PHP 连接到 memcached 服务器。

由于某种原因,服务器上的 memcached 消耗越来越多的 CPU,直到达到 100%。

我使用以下参数运行 memcached:

/usr/bin/memcached -d -m 128 -p 11211 -u memcache -l 0.0.0.0
Run Code Online (Sandbox Code Playgroud)

我发现的另一个有趣的事情是前端服务器和 memcached 服务器之间有很多开放连接(200)

netstat -n
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0     30 10.2.10.69:11211        10.2.10.193:49393       ESTABLISHED
tcp        0     30 10.2.10.69:11211        10.2.10.172:52918       ESTABLISHED
tcp        0     30 10.2.10.69:11211        10.2.10.193:39677       ESTABLISHED
tcp        0     30 10.2.10.69:11211        10.2.10.193:46480       ESTABLISHED
tcp        0     30 10.2.10.69:11211        10.2.10.172:58869       ESTABLISHED
tcp        0     30 10.2.10.69:11211        10.2.10.193:38498       ESTABLISHED
tcp        0      0 10.2.10.69:11211        10.2.10.193:54095       ESTABLISHED
tcp        0     30 10.2.10.69:11211        10.2.10.172:55895       ESTABLISHED
tcp        0     30 10.2.10.69:11211        10.2.10.193:38809       ESTABLISHED
...
Run Code Online (Sandbox Code Playgroud)

其中大多数在“Send-Q”列中的值为“30”。这些连接会以“ESTABLISHED”模式存在几分钟,直到它们从 netstat 的输出中消失。这有什么意义吗?

还有我的 Memcached“统计信息”:

STAT pid 1183
STAT uptime 5087
STAT time 1398177110
STAT version 1.4.13
STAT libevent 2.0.16-stable
STAT pointer_size 64
STAT rusage_user 322.404149
STAT rusage_system 1055.877988
STAT curr_connections 164
STAT total_connections 28962
STAT connection_structures 291
STAT reserved_fds 20
STAT cmd_get 55986225
STAT cmd_set 22250
STAT cmd_flush 0
STAT cmd_touch 0
STAT get_hits 55891017
STAT get_misses 95208
STAT delete_misses 23066
STAT delete_hits 6277
STAT incr_misses 0
STAT incr_hits 0
STAT decr_misses 0
STAT decr_hits 0
STAT cas_misses 0
STAT cas_hits 0
STAT cas_badval 0
STAT touch_hits 0
STAT touch_misses 0
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 966125003
STAT bytes_written 12255690623
STAT limit_maxbytes 134217728
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT threads 4
STAT conn_yields 0
STAT hash_power_level 16
STAT hash_bytes 524288
STAT hash_is_expanding 0
STAT expired_unfetched 0
STAT evicted_unfetched 0
STAT bytes 1898162
STAT curr_items 978
STAT total_items 22250
STAT evictions 0
STAT reclaimed 0
END
Run Code Online (Sandbox Code Playgroud)

fil*_*891 2

看来问题不在于memcached。连接计数随着前端服务器上新创建的 apache 进程而增加,并且由于这些进程没有终止,因此它们保持与 memcached 服务器的连接。

所以我认为这是我的 Apache 服务器的问题,它不再与本主题相关。