Мы запускаем сайт среднего размера, который получает несколько сотен тысяч просмотров страниц в день. До прошлых выходных мы бегали с нагрузкой, обычно ниже 0,2 на виртуальной машине. ОС - Ubuntu.
При развертывании последней версии нашего приложения мы также выполнили apt-get dist-upgrade перед развертыванием. После того, как мы развернулись, мы заметили, что нагрузка на процессор сильно драматизировалась (иногда достигая 10 и останавливаясь, чтобы отвечать на запросы страниц).
Мы попытались сбросить полную минуту данных профилирования Xdebug с PHP, но просмотр через него показал лишь несколько несколько медленных частей, но ничего не объяснил огромный скачок.
Теперь мы уверены, что ничто в новой версии нашего сайта не вызывает проблемы, но мы не можем быть уверены. Мы отбросили много изменений, но проблема все еще сохраняется.
Когда мы смотрим на процессы, мы видим, что отдельные процессы Apache используют довольно немного процессора в течение более длительного периода времени, чем это необходимо. Однако при использовании strace в затронутом процессе мы никогда ничего не видим, кроме
accept(3,
и он некоторое время зависает, прежде чем получать новое соединение, поэтому мы не можем видеть, что вызывает проблему.
Стек - это PHP 5, Apache 2 (prefork), MySQL 5.1. Большинство вещей проходят через Memcached. Мы пробовали APC и eAccelerator.
Итак, что должно быть нашим следующим шагом? Есть ли какие-либо методы профилирования, о которых мы не замечаем/не знаем?