Что я должен поставить на мою большую машину? Magento Веб-сервер базы данных Magento?
Я собираюсь запустить новый веб-сайт Magento, и мне были интересны ваши отзывы по этому вопросу? Как вы думаете, код Magento PHP медленнее или операции Magento MySQL медленнее? Что я должен разделить на большую коробку из двух моих серверов?
4 ответа
Наш опыт: мы принимаем только магазины Magento.
К сожалению, очень и очень распространено неправильное представление о Magento, что вам следует даже использовать отдельный сервер БД, и что еще хуже, вы должны использовать свой самый мощный сервер в качестве сервера БД.
Если вы не находитесь в кластерной конфигурации с несколькими веб-серверами, мы никогда не рекомендуем использовать отдельный сервер базы данных для Magento.
Я собираюсь подкрепить это последней статистикой с некоторых серверов.
Я взял среднее значение загрузки с небольшого веб-сайта Magento (4000 уникальных посетителей в день). Вы можете убедиться, что отдельный сервер БД использует очень мало ЦП и ресурсов в целом. Фактически, единственное, что для этого требуется, - это много оперативной памяти.
MySQL абсолютно не является узким местом для любой установки Magento. Но если вы должны использовать два сервера....
... Я собираюсь предоставить эту рекомендацию на основании того, что на вашем сайте ежедневно посещают около 10 000 уникальных посетителей. НО для того, чтобы получить точный ответ, вы должны написать:
- Ваш целевой уровень трафика, посещений, хитов
- Ваши полные спецификации сервера
Для вашего веб-сервера
- Вам нужно как можно больше и как можно более быстрых процессоров (чем больше ядер, тем больше поддержка параллелизма - чем выше тактовая частота, тем быстрее время загрузки отдельной страницы)
- Вам нужно пропорциональное количество оперативной памяти к процессору, обычно 1 ГБ на ядро - хорошее руководство
- Ввод-вывод не является проблемой, поэтому достаточно дисков RAID1 7200RPM+ (WD RE4 или WD 3000 HLFS)
Для вашего сервера БД
- Вам не нужно много ядер, двухъядерных будет более чем достаточно. Но опять же, чем выше тактовая частота, тем быстрее отдельные запросы.
- Вы хотите как можно больше оперативной памяти. Magento использует InnoDB, а InnoDB жаждет оперативной памяти.
- Операции ввода-вывода и общие операции ввода-вывода в секунду создают / разрушают сервер БД - поэтому вам нужна быстрая установка дисков, но для хранилища посетителей 10 Кбайт достаточно дисков RAID1 7200 об / мин (WD RE4 или WD 3000 HLFS).
Вы также можете загрузить баланс между веб-трафиком между двумя серверами, но конфигурация для этого выходит за рамки этого ответа.
Загрузка сервера базы данных
Загрузка веб-сервера
Мне приходилось откатывать php memory_limit до 512 МБ для запуска определенных процессов, я наблюдал, как каждый загруженный процесс Apache по существу искажал память. Вы научитесь очень быстро отбрасывать mod_php5, поскольку превращение ваших веб-сервисов Apache в интерпретаторы php НЕ ЛУЧШЕЕ ИСПОЛЬЗОВАНИЕ РЕСУРСОВ. В FastCGI вы запускаете Apache WorkerMPM, возвращая его для обслуживания html, что лучше всего работает, тогда как FastCGI запускает интерпретатор PHP как отдельный процесс. Кроме того, вам понадобится какое-то кеширование кода операции. Ваш основной самый быстрый сервер, оптимизированный для использования памяти и процессора, должен быть вашим сервером Web/PHP. Ваш вторичный сервер, оптимизированный для быстрого дискового ввода-вывода, - это место, где вы запускаете службы MySQL.
Для двух серверных систем характерно использование четырехъядерной системы с 12 ГБ + памяти для веб-сервера и двухъядерной системы с 8 ГБ + и подсистемы быстрого диска для сервера БД.
Я думаю, что лучше разместить базу данных на более крупном сервере, потому что если у вас нетривиальный сайт (требующий нескольких серверов), то вы будете сильно загружать базу данных, запрашивая материал. И, конечно, эта нагрузка будет более узким местом, чем разбор php файлов.
Я считаю, что лучше разместить базу данных на большем и более мощном сервере.
Причина в том, что гораздо проще перенести приложение на другой сервер без простоев. Существует гораздо проще и эффективнее масштабировать само приложение. Два сервера приложений, правильно сбалансированные по нагрузке, дают увеличение почти в 2 раза, в то время как с базой данных вы никогда не получите такие значения и будете вынуждены играть с репликацией и / или разделением, что намного сложнее, чем при настройке балансировщика нагрузки http.
Итак, если ваше приложение будет расти, используйте лучший сервер баз данных, какой вы могли бы себе позволить сейчас - это дало бы вам больше времени, прежде чем вам пришлось бы перемещать / масштабировать базу данных, что труднее, чем перемещать / масштабировать серверы приложений / http.