Выбор конфигурации веб-сервера
У меня есть веб-сайт, который вырос с 10 посещений в день, до 100 в день за пару месяцев, а сейчас - до 800 уникальных посещений в день.
До сих пор я использовал VPS с 512 МБ оперативной памяти и общим процессором (я думаю, что он составляет от 500 МГц до 1 ГГц).
Я думаю, что некоторые из запросов могут быть медленными, потому что я вижу высокий показатель отказов (Основной трафик - это когда в моей стране ночь. Кроме того, весь сервер в целом свободен, когда в моей стране - дневное время. Поэтому, когда я проверяю в дневное время, время загрузки, кажется, хорошо.).
В любом случае, кто-то может сказать мне минимальную конфигурацию выделенного сервера (Ram, CPU и скорость порта), которая может обрабатывать следующее без замедления каких-либо запросов:
- 100 тысяч уникальных посещений в день (это с учетом будущего).
- 500K просмотров страниц в день. (5 за посещение в среднем)
- Каждая страница имеет размер, скажем, 100 КБ (одно изображение, несколько миниатюр, несколько разных вещей... обычно это будет намного меньше, но при пессимистичности в вычислениях).
- Предположим, что пиковая нагрузка может быть в 5 раз выше средней (нагрузка никогда не распределяется равномерно в течение 24 часов)
Прямо сейчас я не уверен, что будет узким местом. Я хочу только общую идею.
С другой стороны, вы можете даже предложить, сколько просмотров страниц в день (при условии аналогичного 5-кратного пикового распределения нагрузки) может поддерживать сервер:
- 2 ГБ ОЗУ
- Процессор 2 ГГц
- Порт восходящей линии связи 100 Мбит / с (я даже не знаю, будет ли это выделено мне или нет, но многие провайдеры упоминают об этом).
РЕДАКТИРОВАТЬ:
Я обслуживаю страницы PHP. У большинства из них нет или мало обращений к базе данных (скажем, до 5 простых запросов). Помимо них, некоторые манипуляции с переменными сеанса и т. Д. Среднее число поисков / запросов в базе данных будет, скажем, 2 на страницу, при этом в таблицах будет не более нескольких тысяч записей.
3 ответа
Большинство указанных вами показателей не имеют отношения к прогнозированию емкости, и вам не хватает большого количества информации, которая вам действительно нужна.
Пока вы используете общий сервер, очень трудно точно знать, сколько процессоров у вас есть - если вы переросли свой VPS, то, вероятно, стоит использовать выделенный machnie.
Вы не упомянули, какой веб-сервер / ОС вы используете в настоящее время, и не используете ли вы в настоящее время SSL.
Я думаю, что некоторые запросы могут быть медленными, потому что я вижу высокий показатель отказов
Считать? Вам действительно нужно начать измерять это. Что вы подразумеваете под "отказов"?
Первое, что нужно сделать, это начать измерять поведение своего сайта - начните записывать%D в свои журналы и, если вы используете mysql, установите низкий порог для журнала медленных запросов.
Затем убедитесь, что ваш сайт хорошо настроен на производительность - установите кэш кода операции, убедитесь, что вы отправляете хорошие инструкции кэширования, включите сжатие (для PHP вам нужен gzhandler).
Вы очень далеки от потребности в пропускной способности 100 Мбит / с, но имеет смысл использовать эту скорость на вашей сетевой карте по другим причинам.
Начните записывать количество запущенных вами процессов httpd и сравните его с доступной памятью (меньше буферов и кешей), о которой сообщает "free". В зависимости от степени использования и с очень маленькой базой данных вы должны стремиться иметь достаточно свободной памяти для размещения 80% статического содержимого и файлов базы данных.
Без подробной информации о характеристиках производительности вашего конкретного приложения невозможно сказать. Если вы используете статический HTML-код через nginx, то ваш текущий VPS должен поддерживать до миллиона страниц в день или более; если у вас есть приложение, которое выполняет сложный поиск в базе данных для каждой обслуживаемой страницы, а затем запускает вычислительно дорогостоящий алгоритм для результата, то вам потребуется балансировщик нагрузки и целый банк серверов, чтобы получать до 500000 страниц в день.
Если ваши страницы совместимы с PHP 5.3+, настоятельно рекомендуется использовать nginx.
Вы можете найти некоторое сравнение здесь. Но если вы используете более старую версию PHP, я рекомендую придерживаться Apache, а не исправлять PHP для запуска в качестве службы.
Ваша текущая конфигурация легко удовлетворит ваш запрос с Nginx.