Около двух раз в день возникает тайм-аут. Интернет-магазин функционирует на VPS: процессор двух-ядерный, тактовая частота - 2 Ггц, оперативная память - 2 Гб. Все файлы расположены на SSD, включая и БД, которая функционирует на той же машине. Операционная система - Ubuntu 16.04. Конечно, с учетом виртуализации это о многом не говорит, но все же. Автоматическое обновление кэша на CS-Cart отключено. Пиковая нагрузка на процессор не превышает 30%, а в среднем колеблется около 1%. Потребление оперативной памяти стабильно держится на уровне 700 мегабайт.
Можете дать совет по диагностике данной проблемы и её решению?
Причин может быть много. Для начала гляньте логи сервера, 504 ошибка должна логироваться.
Логи nginx пустые. В логах httpd 504-ой нет. Быть может, есть еще какие-то файлы журналов, через SSH отправлял команды на запрос информации об открытых веб-сервером log-файлах, но увидел только те, которые уже были мною просмотрены.
Вам надо посмотреть логи php-fpm, у вас через него я так понимаю крутится.
В целом такая проблема есть, если вылетает весь кеш из магазина и начинает снова заполняться.
Указанные вами характеристики сервера нормальные, но таймаут увеличить надо. Ошибка возникает изза того, что магазин не успевает “набить” кеш. Вторая причина возможная - это какой либо корявый модуль, который лезет во внешку - изза этого также может вылететь таймаут.
504 отпускает или только перезапуск сервера?
Спасибо, посмотрю насчет PHP-FPM. А статистически, при каждодневной посещаемости сайта и всех его страниц, сколько примерно времени должно пройти с момента очистки кэша, чтобы он полностью построился?
Модулей сторонних нет, только пару моих и стандартных. Мои к внешним ресурсам во время обработки запроса не обращаются. Насчет стандартных не могу сказать.
Отпускает без перезапуска.
Все очень индивидуально, в целом у последнего клиента был примерно как у вас сервер и максимально у него висело 2 минуты. Но это вилами по воде оценка. Поднимите timeout в настройках fastcgi или попросите админов хостинга. Если совсем достанет есть смысл чуть тариф увеличить - не смотрите на память, тут процессор не успевает.