Я использую сервер memcached, который обслуживает два внешних сервера. Они подключаются к серверу memcached из Apache2 / PHP с помощью стандартной библиотеки PECL.
По какой-то причине memcached на сервере потребляет все больше и больше ЦП, пока не достигнет 100%.
Я запускаю memcached со следующими параметрами:
/usr/bin/memcached -d -m 128 -p 11211 -u memcache -l 0.0.0.0
Еще одна интересная вещь, которую я обнаружил, - это то, что существует много открытых соединений (200) между интерфейсными серверами и сервером memcached.
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
...
И у большинства из них в столбце «Отправить-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
Похоже, проблема не в memcached. Количество подключений увеличивалось вместе с вновь созданными процессами apache на интерфейсных серверах, и, поскольку они не завершены, они остаются подключенными к серверу memcached.
Поэтому я считаю это проблемой с моим сервером Apache, и это больше не связано с этой темой.