Пожалуйста, помогите мне выбрать конфигурацию веб-сервера

Возможный дубликат:
Пожалуйста, помогите мне выбрать конфигурацию веб-сервера

У меня есть веб-сайт, который вырос с 10 посещений в день, до 100 в день за пару месяцев, а сейчас - до 800 уникальных посещений в день. До сих пор я использовал VPS с 512 МБ оперативной памяти и общим процессором (я думаю, что он составляет от 500 МГц до 1 ГГц).

Я думаю, что некоторые из запросов могут быть медленными, потому что я вижу высокий показатель отказов (Основной трафик приходится на то, когда его ночь в моей стране. Также весь сервер в целом свободен, когда его дневное время в моей стране. Поэтому, когда я проверяю во время моего днем, время загрузки, кажется, в порядке.).

В любом случае, кто-то может сказать мне минимальную конфигурацию выделенного сервера (Ram, CPU и скорость порта), которая может обрабатывать следующее без замедления каких-либо запросов:

  • 100 тысяч уникальных посещений в день (это с учетом будущего).
  • 500K просмотров страниц в день. (5 за посещение в среднем)
  • Каждая страница имеет размер, скажем, 100 КБ (одно изображение, несколько миниатюр, несколько разных вещей... обычно это будет намного меньше, но при пессимистичности в вычислениях).
  • Предположим, что пиковая нагрузка может быть в 5 раз выше средней (нагрузка никогда не распределяется равномерно в течение 24 часов)

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

С другой стороны, вы можете даже предложить, сколько просмотров страниц в день (при условии аналогичного 5-кратного пикового распределения нагрузки) может поддерживать сервер:

  • 2 ГБ ОЗУ
  • Процессор 2 ГГц
  • Порт восходящей линии связи 100 Мбит / с (я даже не знаю, будет ли это выделено мне или нет, но многие провайдеры упоминают об этом).

РЕДАКТИРОВАТЬ:

Я обслуживаю страницы PHP. У большинства из них нет или мало обращений к базе данных (скажем, до 5 простых запросов). Помимо них, некоторые манипуляции с переменными сеанса и т. Д. Среднее число поисков / запросов в базе данных будет, скажем, 2 на страницу, при этом в таблицах будет не более нескольких тысяч записей.

1 ответ

Практически невозможно дать какой-либо точный ответ на этот вопрос, поскольку производительность, которую вы получите, будет во многом зависеть от вашего конкретного приложения. Например, у меня есть страницы PHP, я могу получить 10 тыс. Запросов в секунду, а другие я могу получить только 10 запросов в секунду. Сказав это, вот несколько общих вещей, которые вы могли бы найти полезным:

  • Сколько вы можете / готовы потратить? Если у вас есть больший бюджет, вы можете начать с более или более больших машин. При меньшем / минимальном бюджете вы сэкономите деньги на меньших настройках, но вам нужно будет увеличивать масштаб по мере роста сайта.
  • Вы уже изучили основные оптимизации? Кэш-код PHP-кода, mod_expires, слой (-ы) кэширования, lighttpd/nginx для статического содержимого и т. Д.... Это может значительно снизить нагрузку на сервер, то есть вы можете работать больше за меньшие деньги.
  • Сравнительный анализ вашего сайта с такими программами, как ab (ApacheBench) или siege, является важным шагом в масштабировании и оптимизации сайта. Сделайте это для различных типов страниц: статических, динамических, вошедших в систему, вышедших из системы и т. Д., Чтобы получить представление о том, сколько страниц фактически может обрабатывать сервер и каковы текущие узкие места. Это также поможет вам при оптимизации и масштабировании, так как подскажет, как влияет каждое изменение на производительность.
  • Типичный бюджетный выделенный сервер стоит около 100 долларов в месяц с 4 ГБ оперативной памяти. Это должно служить вашей текущей загруженности. Только сравнительный анализ покажет вам, какой будет максимальный трафик.
  • По мере того, как вы получаете больше трафика, вам нужно будет решить, следует ли увеличивать (вертикальный, больший сервер) или уменьшать (горизонтальный, больше серверов). Там нет неправильного ответа, но в зависимости от вашего приложения лучше подойдет одно или другое. Бенчмаркинг также важен для понимания узких мест вашего сервера, чтобы вы могли масштабировать правильные вещи, когда это необходимо. Я бы еще не начал с более крупных или более серверов: в ваших масштабах это, скорее всего, будет излишним.
  • При покупке выделенного сервера необходимо учитывать ежемесячную пропускную способность. Некоторые бюджетные выделенные серверы не включают в себя очень много, и вы в итоге будете платить через нос, как только превысите эту сумму. Для базовой оценки просто возьмите текущую пропускную способность и используйте ее, чтобы рассчитать, сколько пропускной способности потребует 500 тыс. Просмотров страниц в день.

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

  1. Оцените ваш текущий сервер
  2. Оптимизируйте свой текущий сервер (тест после каждого шага)
  3. Оцените производительность вашего текущего сервера и максимальную нагрузку с учетом текущей нагрузки и тенденций трафика. Решите, стоит ли увеличивать масштаб.
  4. Обновление до выделенного сервера среднего и низкого уровня.
  5. Бенчмарк нового сервера.
  6. Monitor new server's load/traffic and decide when to scale up/out again.

Note that even you've decided to upgrade to a dedicated server regardless I would still perform steps 1-3. Any optimizations you make on the VPS will carry over to the dedicated server.

Другие вопросы по тегам