Мне нужно убедиться, что мой веб-сайт правильно оптимизирован (сервер, код PHP и запросы MySQL) для высокого трафика. Я готовлюсь к продаже своего веб-сайта в ближайшее время и ожидаю тонны трафика, где-то от 10 000 до 50 000 подписок в день, что означает база данных интенсивно и загружается много изображений. Мне нужно убедиться, что мой сервер может обрабатывать грузить.
Код PHP дрянный, сделанный компанией вне Elance, и я знаю, что у меня проблемы с SQL-инъекциями и медленные запросы, поэтому я знаю, что это первое, что нужно исправить.
Веб-сайт - это 100% PHP / MySQL, кастомный фреймворк, немного небрежно сделанный компанией, которую я нанял у Elance. Он уязвим для SQL-инъекций, а также имеет много медленных запросов.
Мне нужно получить рекомендации по серверу, как настроить мои серверы, RAID, и нужно ли мне получить CDN, и как его настроить.
Мне нужен профессионал, который знает базы данных, серверы, безопасность, Linux и Apache. отлично. Я не хочу, чтобы мой сайт вылетел из строя, когда я начинаю маркетинг.
Моя текущая настройка сервера:
Dual quad-core Xeon Server (8 cores)
8 GB DDR RAM
2 x 1 TB 7200RPM SATA hard disk drives
RAID MIRROR
20 Mbit/s unmetered bandwidth
Я знаю, что это широко, но мой главный вопрос: должен ли я получить CDN для доставки изображений, или вы думаете, что только сервер-зверь может справиться с нагрузкой? Должен ли я использовать кэш памяти или APC? И т.д...
Это базовый нишевый сайт для социальных сетей, но он будет иметь большой трафик и ТОННЫ загрузок изображений, а сайт основан на изображениях. Что за RAID если какой? Какие жесткие диски? Выделенный сервер компании, на который я смотрю, довольно доступен по цене и имеет множество опций. Сервер выше стоит всего 199 долларов в месяц. Я могу добавить 2 диска по 600 ГБ со скоростью вращения 10 тыс. Об / мин за единовременную плату в размере 300 долларов США и т. Д.
Сервер выше стоит всего 199 долларов в месяц. Я могу добавить 2 диска по 600 ГБ со скоростью вращения 10 тыс. Об / мин за единовременную плату в размере 300 долларов,
Ах, это не сходится. Это не «тонны изображений»; это «маленький сервер начального уровня». Не «машина-монстр», а «размер eBay». Сравнивая его с автомобилем, похожим на Ford Focus, вы спрашиваете, как с ним водить машину Формулы-1. Это не сработает.
Проверка реальности: если вы наберете количество регистраций, о которых говорите, один сервер этого не сделает. ТОЧКА. Ни одного с 2-3 дисками. Вам повезет, если он будет работать с сервером на базе хранилища SuperMicro - на 72 (!) Жестких диска. ТОГДА вы можете иметь ввод / вывод и емкость памяти.
от 10 000 до 50 000 подписок в день, что означает интенсивное использование базы данных
Проверка реальности: нижний предел означает 300 000 подписок в месяц. За 6 месяцев это 1,8 миллиона пользователей.
Каждый пользователь загружает изображения размером 1 мегабайт (многие не будут, но многие сделают НАМНОГО больше). Речь идет о хороших 1800 гигабайтах. ТОЛЬКО для изображений. И очень консервативно. Уже одного этого больше, чем позволяют ваши диски. И это очень консервативные цифры.
Проверка реальности: 1,8 миллиона пользователей, даже если они активны только для мелких деталей, будут использовать МНОГО ЦП и дискового ввода-вывода для баз данных - лучше поговорим здесь о некоторых значительных SSD-дисках (2-3). SSD, потому что ваша база данных управления не будет такой большой, И SSD убивают все остальное в IOPS, и это то, на чем работают серверы. Не размер хранилища, а IOPS.
но у меня создалось впечатление, что двойной xeon может обрабатывать 20-50 тысяч посещений в день
Ах да, легко может.
Проблема в том, что у вас нет 20-50 тысяч посетителей в день. По консервативным оценкам, у вас 10 000 новых регистраций в день. Вы ожидаете, что посетители никогда не вернутся? Если нет, то в течение 6 месяцев вы легко достигнете ... хм ... скажем, 5% людей посещают в день ... то есть 90 000 посещений в день. О консервативных цифрах я получил ранее.
Бог запустит сервер, но оптимизация далеко не уедет. Запланируйте замену. Тот, который мускулистый.
Двойной четырехъядерный сервер Xeon (8 ядер) 8 ГБ DDR RAM 2 x 1 ТБ 7200 об / мин SATA HD RAID MIRROR 20 Мбит / с Неизмеренная пропускная способность
Хорошо, 8 ГБ ОЗУ - это шутка для процессоров, и у вас там проблемы. Вам нужно больше оперативной памяти, и я бы предложил минимум 24 ГБ. На самом деле диски ни для чего не годятся. Я сейчас на нагрузочных серверах использую Velociraptors 3000 GB - хороший IOPS и хорошая цена. SATA, но на объединительной плате SAS они светятся. Что бы вы ни делали, диски БУДУТ вашим узким местом. Если вы не перемещаете почти все в ОЗУ для регулярных запросов. Диски SATA со скоростью 7200 об / мин НЕ подходят для постоянно загруженного сервера. Одна из причин, по которой я советую увеличить объем оперативной памяти - вы можете запустить обратный прокси.
CDN: МОЖЕТ работать, но нужно учитывать цену;)
Второе, на что следует обратить внимание, это то, что вы также выделяете только один сервер для ВСЕХ своих серверных ролей без избыточности. Для такого объема трафика вам нужно серьезно подумать о своей инфраструктуре и смягчить отдельные точки сбоев с помощью балансировщиков нагрузки, нескольких веб-серверов и серверов баз данных, и вам действительно нужно искать диски SAS высокого класса. Вам, вероятно, лучше всего было бы взглянуть на настройку блейд-сервера, если бы этот трафик действительно попадал туда, где вы его ожидали.