Мы обновляем наше приложение Symfony 3.4 (LAMP с opcache / php-fpm) до гибкого (согласно https: // symfony.com/doc/current/setup/flex.html). При нагрузочном тестировании мы наблюдаем увеличение использования ЦП, особенно ЦП системы.
Изменения, которые мы заметили в профилировании:
perf top
показывает, что на вызовы ядра mutex_spin_on_owner
и osq_lock
затрачивается гораздо больше времени процессора. Исследования показывают, что у нас есть узкое место при доступе к какому-то общему ресурсу. sar -n SOCK
показывает, что используется больше портов UDP, и действительно, вывод tcpdump
показывает ~ десятикратное увеличение количества отправленных запросов DNS. Дополнительные поиски, похоже, включают поиск серверов имен для IP-адресов клиентов; однако мы не добавляли никаких связанных журналов или кода для этого. Мы сравниваем ту же кодовую базу, за исключением изменений, необходимых для обновления до гибкости (которые предоставлены, значительны, но в первую очередь изменения конфигурации). То, что мы думаем, исключено:
vmstat
. php-fpm
, mysqld
, redis-server
, httpd
через pidstat
( -r
, -u
, -d
флаги) и не думайте, что мы видим что-то существенное. Точно так же записи экрана top
не показывают каких-либо заметных проблем / различий. mariadb
с постоянными соединениями. Подтверждено отсутствие изменений в подключениях / с, поэтому не думайте, что мы ждем доступа к базе данных.Итак, ищем любые мысли о том, что мы, возможно, неправильно сконфигурировали, или как отследить, что инициирует эти дополнительные поиски DNS.
Ну, мы пока не уверены на 100% почему, но следующие действия решили проблему: Удаление установки пакета symfony/web-link
и удаление/комментирование конфига preload
в webpack_encore.yaml
:
webpack_encore:
...
# preload all rendered script and link tags automatically via the http2 Link
# header
preload: true
Мы обновим информацию о конкретной причине, когда/если сможем.