Не буду вдаваться в подробности спецификаций, так как знаю, что на это нет реального ответа. Но сегодня я проводил нагрузочное тестирование с ab
команда в apache.
И дошли до количества 70 запросов в секунду (1000 запросов со 100 одновременными пользователями) на странице, которая загружается из 4 разных таблиц БД и выполняет некоторые манипуляции с данными. Так что это довольно тяжелая страница.
Сервер пока ни для чего другого не используется, и нагрузка на него лежит только на мне, поскольку он находится в разработке. Но приложение будет ежедневно использоваться многими пользователями.
Но достаточно ли этого? Или мне даже стоит волноваться (пока больше X запросов в секунду)
Думаю, мне не о чем волноваться, но я хотел бы получить несколько советов по этому поводу.
70 запросов в секунду составляют 252 000 рендеров страниц в час в час.
Если вы предположите, что средний сеанс просмотра для вашего сайта составляет 10 страниц, то вы можете поддерживать 25 000 уникальных посетителей в час.
Вам, вероятно, следует сравнить эти цифры с ожидаемым количеством посетителей, которые должны быть доступны от людей с деловой стороны.
Многие сайты, над которыми я работаю, видят около 50% своего ежедневного трафика в течение примерно трехчасового пикового периода каждый день. Если это так с вашим сайтом (это зависит от типа контента, который вы предоставляете, и аудитории), тогда вы сможете поддерживать ежедневное уникальное количество посещений около 150 000.
Это довольно хорошие цифры; Я думаю, с тобой все будет хорошо. Разумно сейчас заняться кэшированием опкодов и настройкой базы данных, но помните: преждевременная оптимизация - это корень всех зол. Следите за сайтом, ищите горячие точки и ждите роста трафика, прежде чем предпринимать дорогостоящие усилия по оптимизации для решения проблемы, которой, возможно, не было.
Я использовал 2 инструмента, чтобы смотреть представление моих серверов Apache в прошлом.
Один Мунин, который отображает все виды вещей, включая количество экземпляров apache, количество подключений, доступную память, использование процессора и т. д. - и помогает мне определить, когда я приближаюсь к зона опасности, и почему.
Второй - просто страница статуса сервера apache (http: // ваш_сервер / статус-сервера? refresh = 10), который позволяет мне видеть состояние каждого подключения, а также количество бесплатных подключений, доступных в любой момент.
Я бы посоветовал вам беспокоиться только в том случае, если вы думаете, что ваше приложение будет очень загружено, когда упадет на землю. Неужели данная страница будет подвергнута такому удару? Сильнее? Меньше? Если вы понятия не имеете, я подозреваю, что раньше это вряд ли будет проблемой. Если это ваша самая медленная страница, вы знаете одно место, куда можно обратиться, если вам придется оптимизировать систему позже.
Вы также можете многое сделать для настройки большинства веб-серверов и движков баз данных, чтобы добиться большей производительности.
В комментарии вы указываете, что ваш сервер может обрабатывать 2900 запросов в секунду на пустой странице. Это довольно убедительно указывает на то, что это не сам веб-сервер, а его обработка.
Если вы используете PHP, подумайте о кешере кода операции, например APC. Если БД является узким местом, memcached поможет и вам.
После того, как вы запустили свой сайт, вы также можете посмотреть на mod_top1 что даст вам представление о текущей нагрузке на Apache в режиме реального времени. Я сам не устанавливал его, но он определенно содержит больше информации и лучшее распределение нагрузки, чем стандартный статус сервера Apache.