Приветствую комрады, имею вот такую дидикейт машину: debian 8.5 + nginx + php7.0-fpm + mysql + я (не админ, простой разраб с небольшими знаниями unix)
Просыпаюсь сутра и смотрю краааайне долгие ответы от сервера и порой выдает 504 ошибку. Заходим на сервак смотрим, top/htop нагрузки вообще нету, либо минимальна до 10% (проца и оперативы много), ну ладно думаю, ребутим nginx, mysql - результат нулевой, как тупил сервак так и тупит.
Раньше такого не было, ума неприложу где копать... Ничего такого не релизилось высоконагруженного, логи нормальные...
Могут ли проблемы с днс или у хостера? Или 100% искать у себя траблу?
Если у вас дёргаются сторонние сервисы из PHP, я бы первым делом посмотрел туда. Вероятно что-то отвалилось. По симптомам похоже.
Если я прав, то:
- поставьте таймауты на выполнение запросов к сторонним API. CURL_TIMEOUT, CURL_CONNECTTIMEOUT (надо задавать оба) или default_socket_timeout, в зависимости от того каким способом выполняется запрос.
- кешируйте результаты обращения к сторонним сервисам (даже если вернулась ошибка, стоит закешировать ответ и некоторое время не ломиться на дохлый сервис)
- по возможности вынесите обращения к сторонним сервисам на широкие плечи CRON.
Да чувак это мне в голову не пришло. Есть ряд апишек у меня к которым подвязан php, а поскольку я недавно переехал на нжинкс с апача, не подумал... В итоге все воркеры забиваются и все...
neol: Да почемуто эта идея не пришла в голову. Все оказалось гораздо прозоичней. У меня на сайте 5 разных сторонних апишек, все юзаются через враперы мной написанные, а один сервис через либу поставщика, зашел посмотрел в этой либое таймаут для соап запроса стоит 180 сек)))) писец конечно