Ошибка 500 — превышение лимитов памяти. Помогите отловить виновника.
-
Здравствуйте.
Прошу помощи в отлове виновника превышения лимитов по памяти.
Сразу пишу большой пост — напишу всё, что по этому поводу «накопал» перед тем как спросить у сообщества.
Перечитал всё, что нашел на этом форуме по теме. Ответа не нашел, поэтому спрашиваю.
Сайт http://koldovskie.com
Хостер UniHostКонфигурация сервера.
Operating System : Linux
Server : Apache/2.4.6 () mpm-itk/2.4.7-03 OpenSSL/1.0.1e-fips PHP/5.4.16 mod_wsgi/3.4 Python/2.7.5
PHP Version : 5.3.29
MYSQL Version : 5.5.47-MariaDB-cll-lveДва месяца назад хостер сделал переезд сайта из Германии во Францию — в другой датацентр на другие сервера. Сам переезд произошел без проблем. Проблемы начались позже.
Начал периодически замечать, что иногда проскакивает ошибка 500. Либо 502. Бывает, что сайт долго подгружается — приходится подождать пару секунд, пока отклинется. Бывает, что ошибка 504 проскакивает.Написал хостеру. Те ответили, что ошибка связана с превышением лимитов памяти согласно тарифного плана (был лимит 192 Мб по тарифному плану). Посмотрел статистику в ISPManager — действительно, есть превышение лимитов.
На мой вопрос, почему раньше ошибок не было, хостер ответил, что на старых серверах, до переезда у них некорректно работало определение лимитов — это у них были некорректные настройки, поэтому у меня глюков не было.
В январе 2016 сайт без проблем выдержал несколько дней посещаемости по 2000-4000 в сутки. Сейчас же наблюдаю глюки при посещаемости в сутки макс — 250 чел.
Ладно, доплатил, увеличили лимиты памяти. Сейчас лимит памяти 384Мб.
Однако, ошибки остаются.Периодичность возникновения ошибок превышения лимитов памяти отследить не получилось. Их может не быть несколько часов (от 4 до 12 часов без ошибок) потом два часа ошибки возникают, потом опять нет.
Думал уже, что какая-то функция из cron запускаясь, съедает память, так нет — периодичности ярко выраженной нет. Сравнивал из cron периоды запуска процессов — они не совпадают с периодами возникновения ошибок.
Хостер предоставляет только статистику почасово — за период с 12 по 13 возникло 38 ошибок превышения лимитов памяти.
Просил хостера дать более подробную статистику, чтобы «поймать» точное время возникновения переполнения. Мне отказали, сославшись на то, что они более подробных логов не ведут. Только так.Отчет средний выглядит так.
Среднее MiB 13, Лимит 384, Макс 384 (или меньше, если за этот час ошибок не было).Мизерное среднее потребление памяти говорит о том, что нагрузки на сервер нет в среднем. Какой-то один процесс, запускаясь, съедает всю память до максимума, так что происходит отказ.
Какой-то один процесс.Вопрос — как его «поймать»? Учитывая, что ярко выраженной периодичности возникновения ошибок нет.
Можно, конечно, отключить все плагины на сайте. И подключать по одному. Но тогда придется подключать по одному плагину в сутки.
К тому же я не уверен, что дело именно в плагинах.Посещаемость сайта сейчас низкая. Но регулярно «пасутся» боты от поисковиков. Боты могут нагрузку такую создавать?
И еще.
Это из error.log.[Fri Oct 28 12:48:16.385153 2016] [cgi:error] [pid 766740] [client 185.8.42.190:37195] AH01215: PHP Notice: Undefined index: adman_edit in /var/www/koldovsk/data/www/koldovskie.com/wp-content/plugins/new-adman/new-adman.php on line 125, referer: http://koldovskie.com/wp-admin
[Fri Oct 28 12:48:16.976445 2016] [cgi:error] [pid 766813] [client 185.8.42.190:37222] AH01215: PHP Notice: Undefined index: adman_edit in /var/www/koldovsk/data/www/koldovskie.com/wp-content/plugins/new-adman/new-adman.php on line 125, referer: http://koldovskie.com/wp-admin
[Fri Oct 28 13:01:24.524039 2016] [cgi:error] [pid 791986] [client 185.8.42.190:46150] AH01215: \xd0\x91\xd0\xb0\xd0\xb7\xd0\xb0 \xd0\xb4\xd0\xb0\xd0\xbd\xd0\xbd\xd1\x8b\xd1\x85 WordPress \xd0\xb2\xd0\xbe\xd0\xb7\xd0\xb2\xd1\x80\xd0\xb0\xd1\x82\xd0\xb8\xd0\xbb\xd0\xb0 \xd0\xbe\xd1\x88\xd0\xb8\xd0\xb1\xd0\xba\xd1\x83 There is no such grant defined for user ‘wordpress_user’ on host ‘localhost:’ \xd0\xb2 \xd0\xbe\xd1\x82\xd0\xb2\xd0\xb5\xd1\x82 \xd0\xbd\xd0\xb0 \xd0\xb7\xd0\xb0\xd0\xbf\xd1\x80\xd0\xbe\xd1\x81 SHOW GRANTS FOR ‘wordpress_user’@’localhost:’, \xd0\xb2\xd1\x8b\xd0\xbf\xd0\xbe\xd0\xbb\xd0\xbd\xd0\xb5\xd0\xbd\xd0\xbd\xd1\x8b\xd0\xb9 do_action(‘wp-security_page_wps_scanner’), call_user_func_array, WsdPlugin::pageWpInfo, WsdUtil::includePage, include(‘/plugins/wp-security-scan/res/pages/scanner.php’), WsdUtil::loadTemplate, include(‘/plugins/wp-security-scan/res/pages/tpl/box-scan-results-wp.php’), WsdInfo::getDatabaseUserAccessRightsInfo, WsdInfoServer::getDatabaseUserAccessRights, referer: http://koldovskie.com/wp-admin/edit.ph
[Fri Oct 28 13:07:32.565084 2016] [cgi:error] [pid 808497] [client 185.8.42.190:49656] AH01215: \xd0\x91\xd0\xb0\xd0\xb7\xd0\xb0 \xd0\xb4\xd0\xb0\xd0\xbd\xd0\xbd\xd1\x8b\xd1\x85 WordPress \xd0\xb2\xd0\xbe\xd0\xb7\xd0\xb2\xd1\x80\xd0\xb0\xd1\x82\xd0\xb8\xd0\xbb\xd0\xb0 \xd0\xbe\xd1\x88\xd0\xb8\xd0\xb1\xd0\xba\xd1\x83 There is no such grant defined for user ‘wordpress_user’ on host ‘localhost:’ \xd0\xb2 \xd0\xbe\xd1\x82\xd0\xb2\xd0\xb5\xd1\x82 \xd0\xbd\xd0\xb0 \xd0\xb7\xd0\xb0\xd0\xbf\xd1\x80\xd0\xbe\xd1\x81 SHOW GRANTS FOR ‘wordpress_user’@’localhost:’, \xd0\xb2\xd1\x8b\xd0\xbf\xd0\xbe\xd0\xbb\xd0\xbd\xd0\xb5\xd0\xbd\xd0\xbd\xd1\x8b\xd0\xb9 do_action(‘wp-security_page_wps_scanner’), call_user_func_array, WsdPlugin::pageWpInfo, WsdUtil::includePage, include(‘/plugins/wp-security-scan/res/pages/scanner.php’), WsdUtil::loadTemplate, include(‘/plugins/wp-security-scan/res/pages/tpl/box-scan-results-wp.php’), WsdInfo::getDatabaseUserAccessRightsInfo, WsdInfoServer::getDatabaseUserAccessRights, referer: http://koldovskie.com/wp-admin/edit.ph
2016/10/28 13:22:39 [error] 758338#758338: *1228135 upstream prematurely closed connection while reading response header from upstream, client: 46.72.73.255, server: koldovskie.com, request: «GET /favicon.ico HTTP/1.1», upstream: «http://127.0.0.1:8080/favicon.ico», host: «koldovskie.comМожет быть из-за этого?
Заранее благодарен за помощь.
- Тема «Ошибка 500 — превышение лимитов памяти. Помогите отловить виновника.» закрыта для новых ответов.