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