У меня Ubuntu 14.04.5 LTS (i686) на капле Digital Ocean с 2x2,4 ГГц ЦП и 4 ГБ физической памяти. Я запускаю на нем приложение web2py с Apache и mod_wsgi. На коробке установлено несколько дополнительных модулей python, например numpy и opencv2. База данных - MySQL 5.5.
Веб-сайт Wordpress на другом сервере вызывает это приложение web2py , используя php-curl . Обычно время ответа составляет 2-5 секунд. Но иногда возникают таймауты (время отклика составляет> 1000 секунд). Я добавил точки регистрации в приложении Web2py, и они говорят, что после достижения приложения все завершается за 2-3 секунд. Но в журнале доступа Apache2 время отклика регистрируется как число больше 1000 секунд. В журнале доступа время запроса примерно такое же, когда запрос инициируется с веб-сайта Wordpress.
Может ли кто-нибудь указать, как узнать причину этого прерывистого медленного ответа?
Спасибо
Наконец, я удалось выяснить причину проблемы. Это был оператор подключения к удаленной базе данных в файле модели по умолчанию приложения web2py. Это соединение с базой данных нигде не использовалось в приложении. Но поскольку он был в файле модели, всякий раз, когда вызывается функция контроллера, приложение пытается без необходимости подключиться к этой удаленной базе данных.
Первоначально я добавил точки регистрации повсюду в приложении, но не добавил в файл модели по умолчанию для применение; Поэтому в журналах ничего не говорится о первопричине. Затем я протестировал приложение, просто заменив содержимое папки приложения один за другим на файлы демонстрационного приложения (которое поставляется с web2py) и помог выявить основную причину проблемы. Затем основная причина была проверена путем добавления записи в журнал в начало и конец файлов модели приложения по умолчанию.
Для того, чтобы обнаружить первопричину таймаута, вы можете использовать php slowlog, который объяснит, какая функция за это отвечает.
Вы должны изменить ваш www.conf
и изменить значение по умолчанию 0
опции request_slowlog_timeout
.
Например :
request_slowlog_timeout = 10s
Вы можете прочитать немного больше об активации slowlog здесь, а также посмотреть на некоторые распространенные источники медленной работы здесь.
.