как определить требования к хостингу

23

Мы готовимся запустить 2 сайта электронной коммерции, используя CE ver 1.9. Каждый сайт начинается примерно с 10000 пометок.

Какие ключевые вещи мы должны искать на веб-хосте ... важны ли такие вещи, как размер базы данных, количество изображений и т. Д.?

Очевидно, что скорость загрузки страницы также очень важна.

Как нам лучше выбрать подходящего хоста?

Спасибо

Вальтер Каатц
источник
Приветственная вода на MageOverflow. К сожалению, хостинг Magento - сложная вещь, и есть много компаний, которые приглашают вас обсудить с ними ваши требования. Невозможно что-либо порекомендовать, если у вас больше информации. И со всей информацией вопрос слишком конкретен, чтобы быть полезным.
Фабиан Блехшмидт
@FabianBlechschmidt - я не думаю, что это дублирующий вопрос из упомянутых. И это довольно разумный вопрос. Я написал довольно подробный ответ о требованиях к размеру (я также приведу его более подробно) и достаточно общий для того, чтобы он послужил действительно хорошим справочным вопросом для определения размеров архитектуры.
Бен Лессани - Сонасси
Вы эксперт, поэтому я проголосовал за повторное открытие :-)
Фабиан Блехшмидт

Ответы:

31

Отказ от ответственности: Sonassi является хозяином Magento


TL; DR - Хороший хозяин скажет вам, что именно вам нужно (и обосновать это). Вы не должны делать это самостоятельно.

Когда покупатель обращается к нам, мы задаем несколько вопросов, чтобы понять, каковы текущие требования, пиковые требования и будущие требования для их магазина. Затем мы дадим рекомендацию на этой основе.

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

Здесь следует обратить внимание на то, что, хотя мы, безусловно, можем рассказать вам о требованиях к собственной инфраструктуре, в которой работает MageStack, - которая почти наверняка не будет такой же, как в других местах, - так что просто помните об этом.

Пусть кто-нибудь еще оценит ваши требования

Магазин и каталог

  1. Версия Magento?
  2. Количество простых продуктов в каталоге?
  3. Количество категорий в каталоге?
  4. Количество атрибутов в каталоге?
  5. Количество наборов атрибутов в каталоге?
  6. Количество просмотров магазина Magento (Admin> Система> Управление магазинами)?
  7. Транзакций в день?
  8. Пик транзакций за один час?

Трафик и пропускная способность

  1. Каков уровень ежедневных уникальных посетителей?
  2. Какая самая высокая вершина за один час уникальных посетителей?
  3. Количество просмотров страницы на посетителя?
  4. Из какой страны посетители в основном?
  5. Ожидаете ли вы рост посещаемости сайта в течение следующих 12 месяцев, если да, то насколько?
  6. Регулярно ли вы проводите кампании / новостные рассылки с высокой посещаемостью?
  7. Ваш сайт предлагает цифровые загрузки?
  8. Текущее использование полосы пропускания?
  9. Вам требуется служба фильтрации dDOS?

Требования к оборудованию

  1. Текущее использование дискового пространства?
  2. Требуется ли вам длительное хранение журналов (соответствие PCI-DSS)?
  3. Вам требуется внешнее хранилище резервных копий?
  4. Вам нужно запустить какое-либо специальное / альтернативное программное обеспечение на сервере?
  5. Ваши правила соответствия PCI предписывают использование аппаратного брандмауэра?
  6. Вам нужно отказоустойчивое, высокодоступное или сбалансированное решение?

Постановка / Разработка Практика

  1. Вам нужна отдельная специализированная среда для постановки / разработки?
  2. Требуется ли вам среда «Test Live» для соответствия среде «Live» (для окончательного предварительного тестирования)?

бюджет

  1. У вас есть месячный бюджет?

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


Определение ваших собственных требований

Как правило, можно

  1. Непосредственно коррелируйте уровни своего трафика с требованиями вашего процессора
  2. Непосредственно соотносите ваши требования к процессору с требованиями к оперативной памяти
  3. Прямая корреляция хранилища MySQL с требованиями к оперативной памяти

Выбор процессора

Сначала начните с определения размера вашего трафика.

  • Стандартный демонстрационный магазин Magento способен обеспечить примерно 230 уникальных устройств на ГГц в час.
  • В типичном интернет-магазине с активностью пользователя-администратора, деятельностью по разработке, добавлением / удалением продукта этот показатель снижается примерно на 100% до 115 уникальных единиц на ГГц в час.
  • Магазин с плохо построенным / тяжелым шаблоном может еще больше снизить показатель еще на 100-200%, до 50 уникальных значений на ГГц в час.

Используя эти цифры, вы можете точно определить, что вам нужно с точки зрения ресурсов процессора.

Например. Если у вас есть 4025 постоянных уникальных посетителей / день - вам нужен общий ресурс ЦП 28 ГГц (т.е. 8 ядер при 3,5 ГГц или 12 ядер при 2,3 ГГц)

Другой важной деталью является скорость процессора, которую можно иметь:

  • Медленное время загрузки страницы и низкая поддержка параллелизма (низкая тактовая частота процессора (ГГц), несколько ядер)
  • Быстрое время загрузки страницы, но низкая поддержка параллелизма (высокая тактовая частота процессора (ГГц), несколько ядер)
  • Медленное время загрузки страницы, но высокая поддержка параллелизма (низкая тактовая частота процессора (ГГц), много ядер)
  • Быстрое время загрузки страницы и поддержка высокого параллелизма (высокая тактовая частота процессора (ГГц), много ядер)

Выбор ОЗУ

Для автономного сервера (лучшая конфигурация для Magento) здесь используется правило 2 ГБ ОЗУ / ЦП. Так что если у вас 8 ядер, то минимум 16 ГБ ОЗУ.

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

Например. В вашем случае 1 просмотр магазина * 10 000 товаров = 10 000

Наша рекомендация:

<1,000    = 8GB   RAM
<50,000   = 16GB  RAM
<100,000  = 32GB  RAM
<100,000  = 32GB  RAM
<250,000  = 48GB  RAM
<500,000  = 64GB  RAM
<750,000  = 96GB  RAM
>999,999  = 128GB RAM   

Вы хотите взять более высокое из двух чисел (то есть из соотношения «ядро ЦП: ОЗУ» и требований каталога) или разумное сочетание двух.

Выбор HDD

Давайте проясним кое-что: для среднего магазина Magento (т. Е. <50 000 уникальных посетителей / день) Magento не связан I / O - твердотельные накопители не сделают ваш магазин Magento быстрее; это не улучшит параллелизм и не улучшит TTFB. Аналогично, использование чередующихся уровней RAID (например, RAID10) также не даст никаких преимуществ (поскольку почти каждый файл на диске будет в любом случае меньше размера полосы, поэтому будет использоваться только один диск).

Единственным узким местом является временное хранилище для конкурирующих услуг (т. Е. Облако / VPS).

Однако у быстрого ввода-вывода есть свои преимущества, помимо самой операции хранилища. С SSD файловые операции (например, состояние Git / SVN, резервное копирование / восстановление, копирование каталогов и т. Д.) Значительно быстрее. Жизнь вашего разработчика будет значительно проще (с рутинными задачами намного быстрее).

Также обратите внимание, что не все диски созданы равными.

  • Дешевые / настольные твердотельные накопители будут работать медленнее, чем обычные жесткие диски
  • Дешевые / настольные HDD будут работать медленнее, чем корпоративные HDD
  • Недорогие жесткие диски / настольные системы будут иметь низкие показатели NRE (обычно 10 ^ 14) по сравнению с корпоративными дисками (обычно 10 ^ 16)

Так что не забудьте выбрать диски, которые заслуживают того, чтобы быть на сервере, т.е. Intel DC S3700.

Выбор емкости прост, вам просто нужно две команды,

Для корня документа Magento

cd /path/to/magento/installation 
du -hsL . \
--exclude="/var/log" \
--exclude="/var/session" \
--exclude="/var/cache" \
--exclude="/var/full_page_cache" \
--exclude="/var/report" \
--exclude="/var/tmp" \
--exclude="/includes/src/"    

Для БД MySQL

SELECT 
IFNULL(B.engine,'Total') "Storage Engine", CONCAT(LPAD(REPLACE(FORMAT(B.DSize/POWER(1024,pw),3),',',''),17,' '),' ',SUBSTR(' KMGTP',pw+1,1),'B') "Data Size", CONCAT(LPAD(REPLACE(FORMAT(B.ISize/POWER(1024,pw),3),',',''),17,' '),' ',SUBSTR(' KMGTP',pw+1,1),'B') "Index Size", CONCAT(LPAD(REPLACE(FORMAT(B.TSize/POWER(1024,pw),3),',',''),17,' '),' ',SUBSTR(' KMGTP',pw+1,1),'B') "Table Size" FROM (SELECT engine,SUM(data_length) DSize,SUM(index_length) ISize,SUM(data_length+index_length) TSize 
FROM information_schema.tables 
  WHERE table_schema NOT IN ('mysql','information_schema','performance_schema') 
  AND engine IS NOT NULL 
GROUP BY engine 
WITH ROLLUP) B,(SELECT 3 pw) A 
ORDER BY TSize;

,

Кого выбрать

Ну, это зависит от вас. Я не могу дать рекомендации [хотя это было бы очевидно :)] - но вы, конечно, можете составить собственное мнение,

  1. Если у них есть оборудование, соответствующее вашим минимальным требованиям
  2. Если у них солидное наследие / репутация в Magento (то есть участие в таких сайтах и ​​демонстрация реального опыта)
  3. Если они могут предоставить демонстрацию вашего магазина, на своем хостинге (т.е. чтобы вы могли точно увидеть, как он работает)
  4. Если они могут ответить на все ваши вопросы, связанные с Magento (т.е. попробуйте проверить их с вопросами, которые у вас были в прошлом, и посмотрите, как они на них отвечают)
  5. Если их цены соответствуют вашему бюджету
  6. Убедитесь, что их поддержка соответствует вашим ожиданиям (т. Е. Готовы ли вы провести всю должную осмотрительность самостоятельно, прежде чем обращаться в службу поддержки, или у вас есть ожидание, что они могут отладить ваши проблемы с Magento от вашего имени)
  7. Убедитесь, что объем работ соответствует вашим потребностям (т.е. полностью управляемый, голый металл и т. Д.)
  8. Если решение является масштабируемым (т. Е. Является ли оно односерверной платформой - может ли оно масштабироваться до многосерверного решения).
  9. Если решение содержит все программное обеспечение, необходимое для вашего магазина Magento (например, ElasticSearch / Sphinx / SOLR, Redis / Memcache, Varnish и т. Д.)

Здесь есть что добавить, вы получите два типа хостов

  • Управляется (например, когда сервер полностью настроен и обслуживается)
  • Неуправляемый (например, где вы настраиваете весь сервер самостоятельно)

То, что вам больше всего подходит, зависит от ваших навыков. По моему честному мнению, разработчики не являются системными администраторами - только потому, что вы можете запустить apt-get install nginx- это не делает вас опытным сисадмином. В противном случае любой владелец магазина, который мог бы использовать Magento Connect, мог бы классифицировать себя как разработчика!

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

Я бы порекомендовал весь маршрут самоделки для тех, кто обладает огромным опытом настройки серверов Magento, которые уже развернули тысячи серверов с известными проверенными и стабильными конфигурациями. В противном случае обратитесь к управляемому хосту Magento, который знает, что они делают, и позволит вам выполнять свою работу без перерыва.


Источники:

Бен Лессани - Сонасси
источник