Как часто следует перезапускать Apache и MySQL (в частности, со скоростью 150 тыс. Обращений в неделю) и какова будет реальная выгода при перезапуске через каждый конкретный момент?
Как часто следует перезапускать Apache и MySQL (в частности, со скоростью 150 тыс. Обращений в неделю) и какова будет реальная выгода при перезапуске через каждый конкретный момент?
Ответы:
Apache и MySQL сами по себе не должны иметь утечек памяти. Большинство серверов баз данных работают лучше, чем дольше они работают. Однако модули, которые скомпилированы в Apache, такие как PHP, часто имеют утечки памяти.
Модуль Apache mpm автоматически перезапускает процессы после 10 000 запросов. Вы можете изменить на MaxRequestsPerChild
что-то другое, но 10 000 является разумным значением по умолчанию.
Apache не нуждается в регулярном перезапуске; и не должен MySQL.
Apache, работающий в режиме prefork, может перезапускать свои дочерние процессы, используя MaxRequestsPerChild; это хорошо, так как защищает от медленных утечек памяти и т. д.
MySQL не следует регулярно перезагружать, так как перезапуск приведет к сбою службы. Перезапуск MySQL должен дождаться запуска двигателей, а также очистить кеш, вызывая снижение производительности до тех пор, пока он не нагреется. Кажется, мы обнаруживаем, что время от времени требуется перезапуск [1] из-за фрагментации адресного пространства, но это не должно происходить так много в 64-битной системе, к которой всегда должны идти новые установки.
[1] например, каждые 9 месяцев на занятом сервере со средним значением> 100 запросов в секунду
Вы должны избегать перезапуска MySQL, когда это возможно, по соображениям производительности. MySQL использует много памяти для кэширования страниц данных и индексов. Когда вы перезапускаете MySQL, все кэшированные страницы освобождаются, и вам нужно некоторое время для разогрева кешей. На сильно загруженных сайтах перезапуск базы данных может вызвать проблемы с производительностью.
Ваш сайт не сильно загружен (150 тыс. Посещений в неделю дает только 1Req / 4S), поэтому перезапуск MySQL не должен вызывать больших проблем.
Чтобы понять, когда необходимо перезагрузить систему или службу, сначала нужно понять, почему. Утечки памяти являются наиболее распространенной причиной, но могут быть и другие, такие как плохо написанное программное обеспечение (слишком распространенное!), Которое не выполняет надлежащую внутреннюю служебную работу, например закрытие файловых дескрипторов, когда они больше не требуются. Хотя это не то же самое, что утечка памяти, симптомы те же. Как известно, и Apache, и MySQL очень стабильны (если вы не используете альфа- или бета-версию) и могут без проблем работать годами. Обычно операционная система нуждается в перезагрузке, чтобы применить исправления задолго до того, как это потребуется любому приложению.