LAMP. Сайт долго грузится после простоя

Доброго времени суток. Уже который раз натыкаюсь на проблему - сайт (что на PHP, что на NodeJS) после длительного простоя (без обращений хотя бы минут 10, а то и меньше) грузится в 5-20 раз медленнее. К примеру на nodeJS вместо 35мс - 450мс, на php5 вместо 35мс - 980мс. Сразу после этого в два раза быстрее, третий запрос - как и должен.

К архитектуре самих сайтов это никакого отношения не имеет (сам писал, кеш живёт далеко не 10 минут, а, как правило, 30 дней). К СУбД, возможно тоже - Nodejs-сайт использует mongodb, а все php сайты - mySQL. Соответственно, я делаю вывод, что это уже сама ОС как то оптимизирует свои расходы.

Вопрос: что это и как от этого избавитьсяэто отключить? На данный момент у меня одна VPS, на OpenVZ, с Ubuntu-server на борту.

Через 5 минут после написания этого вопроса поймал - <!-- page generated 6.996 sec -->. Жму F5, <!-- page generated 0.041 sec -->. В общем - это жесть какая то =(

1 ответов


Симптомы описанные Вами, похожи на недостаток оперативной памяти в физическом сервере. Замирающие машины ( а судя по Вашему описанию, именно в этот момент и происходит ) отправляются поспать на диск. Ну а по-требованию всплывают. Время на всплытие - чтение с диска. Как раз секунды. В VPS такие вещи лечить практически невозможно. Разве что имитировать нагрузку. Помогает - добавить оперативной памяти в сервер. Можно, конечно поиграться и уменьшить размер оперативной памяти в VPS , но это уже бубен и некузяво.


может дело в кешировании? После долгого простоя страница перегенерируется снова и показано ее реальное время, если сразу после этого рефрешить - показ идет уже их кеша?