Назад | Перейти на главную страницу

Какой сервер мне нужен для обработки 10 миллионов запросов и запросов mySQL в день?

Я новичок в администрировании серверов и ищу мощный хостинг для размещения моего нового веб-сайта. Этот веб-сайт, по сути, является серверной частью мобильной онлайн-игры, и он будет:

Я действительно не знаю, какой сервер мне нужен для выполнения этих требований, мой вопрос:

  1. Какой CPU / RAM мне нужен для выделенного сервера или VPS?
  2. Какие хостинговые компании могут предложить такой выделенный сервер или VPS?
  3. А как насчет облачных вычислений? Я исследовал Amazon EC2, но мне это кажется сложным. Я связался с Rackspace, но они, как ни странно, сказали, что облачные сайты не подходят для моих требований. Интересно, есть ли другая компания облачного хостинга.
  4. Любой другой альтернативный метод?

Дешевый рабочий стол?

Давайте перейдем к математике.

  • 10 миллионов запросов.
  • Это составляет 416667 запросов в час.
  • Это составляет 6944 запроса в минуту.
  • Это составляет 116 запросов в секунду.

Удвойте это (пиковая нагрузка), и мы говорим о нагрузке, которую может обработать дешевый четырехъядерный настольный компьютер, ЕСЛИ запросы достаточно просты, и вы действительно не можете сказать, насколько они сложны.

  • 5000 ГБ в месяц - это тривиально, серьезно, применимы те же вычисления.
  • Это составляет 208 ГБ / день.
  • Это разбивается до 8 ГБ / час
  • Это сокращается до 148 МБ / мин.
  • Это разбивается до 2,5 МБ / с, 25 Мбит. Двойной за пик - 50Мбит, банально для любого хостинг-центра. Хотя обойдется вам.

  • Храните 2000 ГБ на жестком диске. То есть 2 жестких диска по 2000 Гбайт в RAID? Если только: это для базы данных, имеет много сложных операций ввода-вывода, тогда это что-то между несколькими десятками дисков и ЛОТОМ 73 ГБ дисков SAS 15000 об / мин в RAID 10 (около 60 дисков) для обеспечения необходимого ввода-вывода - это на вопрос невозможно ответить без БОЛЬШОЙ дополнительной информации о шаблонах доступа к данным.

  • Работает на PHP и MySQL - это умеет мой мобильный телефон;) Вопрос в том, насколько сложным является приложение. MySQL МОЖЕТ или НЕ МОЖЕТ быть здесь приемлемым решением, BTW l. - это потребует дополнительных испытаний. Есть причина, по которой некоторые люди все еще используют другие более крупные коммерческие базы данных.

  • Какой ЦП / ОЗУ мне нужен для выделенного сервера или VPS?

Можно сказать, что это зависит от логики (сколько вычислений в PHP-части, смекалки или отсутствия программистов и многих других вопросов.

Серьезно, это нетривиальная установка. Попросите специалистов изучить это.

В основном вам нужно сесть и сделать домашнее задание. На многие вопросы в этой форме невозможно ответить. Тем более, что вы, похоже, не заботитесь о своих данных ...

  • Бэкапы?
  • Нет плана на случай непредвиденных обстоятельств? Я имею в виду, что серверы умирают - значит, вы не против, чтобы сайт не работал в течение нескольких дней, пока настроена замена?

Чтобы добавить немного моего опыта, который может быть полезным:

  • Как упоминал TomTom, сложно / невозможно дать точные спецификации, так как многое зависит от дизайна и реализации вашего приложения. Оборудование, которое дает мне или кому-то еще X запросов в секунду, может вам не подойти.
  • У меня есть выделенный сервер MySQL низкого уровня (Intel Core2 Duo E4600 2,40 ГГц, 4 ГБ ОЗУ), обслуживающий в среднем 100 запросов в секунду (около 10 миллионов в день) с частотой простоя ЦП 90%. За исключением некоторых базовых настроек конфигурации, он работает хорошо из-за тяжелого чтения (+ 95% чтения), а активный набор записей легко сохраняется в памяти. При выборе объема оперативной памяти сервера учитывайте размер активного набора, поскольку он может иметь большое значение. Убедитесь, что вы понимаете разницу между размером вашей базы данных и размером активного набора записей. Например, мои базы данных составляют около 7 ГБ, но активный набор, вероятно, составляет всего несколько 100 МБ.
  • Точно так же у меня есть сервер Apache с аналогичными характеристиками, обслуживающий ~ 1 миллион запросов в день, который имеет среднюю частоту простоя ЦП ~ 95%. Запросы представляют собой сочетание очень простых запросов AJAX к данным карты и более сложных страниц MediaWiki.
  • Тестирование вашего конкретного приложения - хорошее начало в попытках точно определить, что вам нужно. Вы не хотите занижать оценку, но переоценка может быть столь же плохой из-за потенциальной траты денег и усилий.
  • Учитывайте не только среднюю частоту запросов, но и пиковую скорость. Вам не нужен сервер, который едва может справиться со средней скоростью, поскольку частота запросов может значительно варьироваться в течение дня, недели и месяца. Например, я могу получить в 3-4 раза больше трафика в часы пик по выходным, чем в минимальные часы в будние дни. Насколько он будет варьироваться, будет зависеть от вашего приложения и пользовательской базы.
  • Можете ли вы кэшировать какие-либо запросы к базе данных / HTTP? Это может значительно увеличить частоту запросов с более дешевым / меньшим количеством оборудования в зависимости от того, сколько вы можете кэшировать.
  • Рассмотрите варианты масштабирования для будущего роста сейчас, а не позже. Хорошим вариантом может быть использование горизонтального масштабирования, которое позволит вам начать с минимального оборудования и легко расширять по мере необходимости.
  • Правильный дизайн уровня приложения может иметь огромное влияние на его конечную производительность. Плохой SQL-запрос к таблице без индексов может быть на порядки медленнее, чем правильно спроектированный. Точно так же плохо настроенные серверы Apache / MySQL могут быть во много раз медленнее, чем при правильной настройке.