Что я должен поставить на мою большую машину? Magento Веб-сервер базы данных Magento?

Я собираюсь запустить новый веб-сайт Magento, и мне были интересны ваши отзывы по этому вопросу? Как вы думаете, код Magento PHP медленнее или операции Magento MySQL медленнее? Что я должен разделить на большую коробку из двух моих серверов?

4 ответа

Наш опыт: мы принимаем только магазины Magento.

К сожалению, очень и очень распространено неправильное представление о Magento, что вам следует даже использовать отдельный сервер БД, и что еще хуже, вы должны использовать свой самый мощный сервер в качестве сервера БД.

Если вы не находитесь в кластерной конфигурации с несколькими веб-серверами, мы никогда не рекомендуем использовать отдельный сервер базы данных для Magento.

Я собираюсь подкрепить это последней статистикой с некоторых серверов.

Я взял среднее значение загрузки с небольшого веб-сайта Magento (4000 уникальных посетителей в день). Вы можете убедиться, что отдельный сервер БД использует очень мало ЦП и ресурсов в целом. Фактически, единственное, что для этого требуется, - это много оперативной памяти.

MySQL абсолютно не является узким местом для любой установки Magento. Но если вы должны использовать два сервера....

... Я собираюсь предоставить эту рекомендацию на основании того, что на вашем сайте ежедневно посещают около 10 000 уникальных посетителей. НО для того, чтобы получить точный ответ, вы должны написать:

  1. Ваш целевой уровень трафика, посещений, хитов
  2. Ваши полные спецификации сервера

Для вашего веб-сервера

  1. Вам нужно как можно больше и как можно более быстрых процессоров (чем больше ядер, тем больше поддержка параллелизма - чем выше тактовая частота, тем быстрее время загрузки отдельной страницы)
  2. Вам нужно пропорциональное количество оперативной памяти к процессору, обычно 1 ГБ на ядро ​​- хорошее руководство
  3. Ввод-вывод не является проблемой, поэтому достаточно дисков RAID1 7200RPM+ (WD RE4 или WD 3000 HLFS)

Для вашего сервера БД

  1. Вам не нужно много ядер, двухъядерных будет более чем достаточно. Но опять же, чем выше тактовая частота, тем быстрее отдельные запросы.
  2. Вы хотите как можно больше оперативной памяти. Magento использует InnoDB, а InnoDB жаждет оперативной памяти.
  3. Операции ввода-вывода и общие операции ввода-вывода в секунду создают / разрушают сервер БД - поэтому вам нужна быстрая установка дисков, но для хранилища посетителей 10 Кбайт достаточно дисков RAID1 7200 об / мин (WD RE4 или WD 3000 HLFS).

Вы также можете загрузить баланс между веб-трафиком между двумя серверами, но конфигурация для этого выходит за рамки этого ответа.

MySQL Queries

Загрузка сервера базы данных

Загрузка сервера базы данных

Загрузка веб-сервера

Загрузка веб-сервера

Мне приходилось откатывать php memory_limit до 512 МБ для запуска определенных процессов, я наблюдал, как каждый загруженный процесс Apache по существу искажал память. Вы научитесь очень быстро отбрасывать mod_php5, поскольку превращение ваших веб-сервисов Apache в интерпретаторы php НЕ ЛУЧШЕЕ ИСПОЛЬЗОВАНИЕ РЕСУРСОВ. В FastCGI вы запускаете Apache WorkerMPM, возвращая его для обслуживания html, что лучше всего работает, тогда как FastCGI запускает интерпретатор PHP как отдельный процесс. Кроме того, вам понадобится какое-то кеширование кода операции. Ваш основной самый быстрый сервер, оптимизированный для использования памяти и процессора, должен быть вашим сервером Web/PHP. Ваш вторичный сервер, оптимизированный для быстрого дискового ввода-вывода, - это место, где вы запускаете службы MySQL.

Для двух серверных систем характерно использование четырехъядерной системы с 12 ГБ + памяти для веб-сервера и двухъядерной системы с 8 ГБ + и подсистемы быстрого диска для сервера БД.

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

Я считаю, что лучше разместить базу данных на большем и более мощном сервере.

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

Итак, если ваше приложение будет расти, используйте лучший сервер баз данных, какой вы могли бы себе позволить сейчас - это дало бы вам больше времени, прежде чем вам пришлось бы перемещать / масштабировать базу данных, что труднее, чем перемещать / масштабировать серверы приложений / http.

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