як визначити вимоги до хостингу


23

Ми готуємося запустити 2 сайти електронної комерції за допомогою CE ver 1.9. Кожен сайт починатиметься приблизно з 10000 ску.

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

Очевидно, дуже важлива також швидкість завантаження сторінки.

Як ми найкраще вибрати належного хоста?

Дякую


Добрива вода на MageOverflow. На жаль, Magento хостинг - це складна річ, і там багато компаній, які запрошують вас обговорити з ними свої вимоги. Немає жодного способу рекомендувати вам щось із значно більшою кількістю інформації. І з усією інформацією питання є надто конкретним, щоб бути корисним.
Фабіан Блешшмідт

@FabianBlechschmidt - я не думаю, що це повторюване питання згаданого. І це досить розумне питання. Я написав досить ґрунтовну відповідь щодо вимог щодо розмірів (я їх також детальніше деталізую) та достатньо загальних для цього, щоб послужити справді хорошим еталонним питанням щодо розмірів архітектури.
Бен Лессані - Сонассі

Ви експерт, тому я проголосував за повторне відкриття :-)
Fabian Blechschmidt

Відповіді:


31

Відмова: Sonassi - господар Magento


TL; DR - Хороший господар розповість вам, що саме вам потрібно (і виправдає це). Ви не повинні робити це самостійно.

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

Враховуючи, що ми розміщуємо тисячі магазинів Magento, ми маємо досить чітке розуміння того, яка саме інфраструктура потрібна для заданого набору вимог клієнтів, тому нам досить легко дати рекомендацію (і передбачити, які саме ресурси будуть використовуватися), коли вони насправді живуть.

Тут слід зазначити, що ми, безумовно, можемо сказати вам вимоги до власної інфраструктури, що працює під управлінням MageStack - що майже точно не буде таким самим, як створене в іншому місці - тому просто пам’ятайте про це.

Нехай хтось інший визначить ваші вимоги

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

  1. Версія Magento?
  2. Кількість простих товарів у каталозі?
  3. Кількість категорій у каталозі?
  4. Кількість атрибутів у каталозі?
  5. Кількість наборів атрибутів у каталозі?
  6. Кількість переглядів магазину Magento (Адміністратор> Система> Керувати магазинами)?
  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. Безпосередньо співвідносити рівень трафіку з потребами CPU
  2. Безпосередньо співвіднесіть свої вимоги до процесора з вимогами оперативної пам'яті
  3. Безпосередньо співвіднесіть ваше сховище MySQL з вимогами оперативної пам'яті

Вибір процесора

Спочатку почніть з розміщення вашого трафіку.

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

Використовуючи ці номери, ви можете розробити саме те, що вам потрібно з точки зору ресурсу процесора.

Напр. Якщо у вас є 1025 постійних унікальних відвідувачів / день - вам потрібен загальний ресурс процесора 28 ГГц (тобто 8 ядер при 3,5 ГГц або 12 ядер при 2,3 ГГц)

Інша важлива деталь - швидкість процесора, можна мати:

  • Повільний час завантаження сторінки та низька підтримка одночасності (низька тактова частота процесора (ГГц), кілька ядер)
  • Швидкий час завантаження сторінки, але низька підтримка одночасності (висока тактова частота процесора (ГГц), кілька ядер)
  • Повільний час завантаження сторінки, але висока підтримка одночасності (низька тактова частота процесора (ГГц), багато ядер)
  • Швидкий час завантаження сторінки та висока підтримка одночасності (висока тактова частота процесора (ГГц), багато ядер)

Вибір оперативної пам’яті

Для автономного сервера (найкраща конфігурація для Magento) тут діє правило 2 Гб оперативної пам'яті / процесорного ядра. Тож якщо у вас 8 ядер, то 16 Гб оперативної пам'яті має бути мінімальним.

Щоб розробити те, що вам потрібно, крім цього, вам потрібно врахувати розмір вашого каталогу. Це легко, помножте кількість переглядів магазину на загальний розмір каталогу.

Напр. У вашому випадку 1 перегляд магазину * 10000 товарів = 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   

Ви хочете взяти вищий з двох чисел (тобто від CPU Core: RAM співвідношення та вимоги до каталогу), або розумну суміш цих двох.

Вибір жорсткого диска

Давайте зробимо щось зрозуміле, для середнього магазину Magento (наприклад, <50 000 унікальних відвідувачів / день) Magento не пов'язаний введенням-виведенням - SSD-диски не зроблять ваш магазин Magento швидшим; це не покращить одночасність і не покращить TTFB. Аналогічно, використання смугастих рівнів RAID (наприклад, RAID10) також не забезпечить переваги (оскільки майже кожен файл на диску все одно буде меншим за розмір смужки, тому буде використовуватися лише один диск).

Єдине місце, де зберігається вузьке місце, є на платних послугах (тобто хмарі / VPS).

Однак, безумовно, є переваги швидкого вводу / виводу поза межами роботи магазину. З SSD дисками файлові операції (наприклад, статус Git / SVN, резервне копіювання / відновлення, копіювання каталогів тощо) значно швидше. Життя вашого розробника буде значно простішою (з рутинними завданнями буде набагато швидше).

Також зауважте, що не всі дискові диски створюються рівними.

  • Дешеві / настільні жорсткі диски працюватимуть повільніше, ніж звичайні жорсткі диски
  • Дешеві / настільні жорсткі диски працюватимуть повільніше, ніж корпоративні жорсткі диски
  • Дешеві / настільні жорсткі диски матимуть низькі показники 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, який знає, що вони роблять, і дозволяє вам робити свою роботу безперебійно.


Джерела:

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.