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

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

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

Наш опыт: мы размещаем только магазины 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 7200RPM + будет достаточно (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 ГБ + и быстрой дисковой подсистемой для сервера db.

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

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

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

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