Назад | Перейти на главную страницу

Apache вылетает каждые 5 минут

Я относительно новичок в проблемах с сервером, поскольку мой сайт, который я начал в начале года, выходит за рамки моих возможностей по управлению им. Мне нужна помощь.

Недавно я переехал из среды общего хостинга на выделенный виртуальный сервер от Mediatemple.

Каждую неделю я запускаю сценарий, который извлекает данные из моей БД, извлекает данные из API last.fm, а затем отправляет информацию в Twitter.

Мой сервер использует ПК Р-Виртуализация, и при запуске сценария Apache вылетает каждые 5 минут. Я проверил и увидел, что параметр kmemsize достигает своего предела (его 13 МБ).

Я осознаю свою проблему. Процесс MySQL остается открытым в течение долгого времени, в то время как Apache необходимо обрабатывать множество входящих ссылок (около 200 000 просмотров страниц за этот день согласно AWSTATS моего предыдущего хоста). Да, я совершенно неопытен в этом, и я явно убиваю сервер слишком большим количеством входящих ссылок, пока он должен управлять обновлением БД.

Итак, это прецедент: я хочу несколько ответов.

1) Почему в моей среде общего хостинга не вылетал apache каждые 5 минут? Он работал нормально, только сайт сильно тормозил. Понятно, это должен быть виртуальный контейнер и лимит kmemsize?

2) Куда мне идти дальше? Будет ли физический сервер (не виртуальный контейнер) сталкиваться с такими же проблемами?


Я также отправил запрос в службу поддержки Mediatemple. Мне нужна вся помощь, которую я могу получить.

Это может быть так же просто, как настройка mySQL.

На вашем старом хосте / сервере мог быть уникальный файл /etc/my.cnf по сравнению с обычным файлом vanilla.

Начните с базового мониторинга MySQL - вот несколько инструментов, которые могут вам помочь:

top, mtop и innotop

(в Linux по умолчанию используется верх) mtop - http://mtop.sourceforge.net innotop - http://innotop.sourceforge.net

Вы также можете прибегнуть к инструменту мониторинга MySQL из командной строки (cli).

mysqladmin список процессов / mysqladmin proc

К сожалению, многие люди будут использовать шаблоны по умолчанию, доступные в / usr / share / mysql.

Я НАСТОЯТЕЛЬНО РЕКОМЕНДУЮ ПРОПУСТИТЬ ИХ - они старые и их не стоит использовать по следующим причинам:

Недопустимые настройки для некоторых версий ОС или MySQL (например, thread_concurrency и skip-lock). Добавление огромных переменных массива, которые вы можете не понимать, что они собой представляют. Производительность от их тестирования с другими настройками более чем просто сомнительна. После их запуска и выполнения некоторой настройки - дайте mysql поработать не менее 24-48 часов, а затем используйте следующие инструменты диагностики:

Тюнер MySQL (просто введите wget mysqltuner.pl в linux для загрузки, затем chmod755 mysqltuner.pl и запустите его, выполнив ./mysqltuner.pl ;-) mysqlidxchk (Установите с помощью wget hackmysql.com/scripts/mysqlidxchk-1.1 chmod 755 mysqlidxchk * mysqlidxchk * mysqlidxchk), затем запустите, выполнив что-то вроде этого: (./mysqlidxchk --general / var / lib / mysql / general.log) Если вам нужна помощь в их установке, дайте мне знать

PS - большинство из них являются скриптами только для Linux, но они очень помогут в настройке и управлении вашим сервером mySQL.

А также хороший инструмент для анализа журналов, такой как mysqlsla и mysqlreport, для отчета о состоянии

Вы случайно не пользуетесь панелью управления?

Я знаю, что это довольно старый вопрос, но следующие мысли будут полезны:

Если дело в настройке сервера MySQL, я использую http://tools.percona.com Это бесплатная услуга, просто зарегистрируйтесь, войдите в систему, заполните данные о сервере, и она предоставит вам настройки, которые необходимо включить в файл my.ini.

Я видел улучшения производительности, например, импорт, который занимал 20 минут, мог быть выполнен за 7 секунд после настройки.

То, как работает технология VZ, накладывает ограничения на различные ресурсы. Если счетчик beancounter показывает, что вы превышаете лимит памяти, у вас есть несколько вариантов.

  1. Обновите свой хостинг-пакет, чтобы у него было больше ресурсов.
  2. Замените apache на легкий веб-сервер, такой как lighttpd или nginx.
  3. Настройте mysql на использование меньшего количества ресурсов, обратившись к прилагаемому к нему файлу my-small.cnf.
  4. Настройте свое приложение на использование меньшего объема памяти (например, memory_limit в PHP).

Существуют различные учебные пособия, в которых показано, как настроить легкий стек, подобный LAMP, для различных небольших опций VPS.

vzctl set 101 --kmemsize 2211840: 2359296 - сохранить

Попробуйте, это увеличит размер kmemsize