1 Востаннє редагувалося snenko (27.11.2014 19:50:39)

Тема: Як побудовані професійні веб-сервери?

Привіт.
Нещодавно зайнявся розробкою під CSM Magento.
Система надзвичайно грузна.

Допоки магазинчики були стандартними - з декільками додатковими блоками - було терпимо.

Але чим далі тим грузнішими вони стають.
Останньому магазині, на параметрах компютера Core 2 Duo 1.80Gz 4Gb RAM, обновлення сторінки відбувається до 3-7 хвилин!
І це при тому, що база данних на іншаму компютері.

Тут, як кажуть, купувати новий компютер, без варіантів.

По-суті, вебсервер wamp не використовуює всі можливості компютера для роботи магазина. Працюють фонові процеси ОС, phpShtorm, winamp...

Памятається, що в ДОСі, всі 100% ресурсів компа належали програмі.
Було б непогано поставити окремий компютер, настроєний як сервер. На якому працював би чисто веб-сервер, з максимальним приорітетом для обробки запросів.

- На професійні веб-сервера ставляться програми по-типу wamp(denver) чи робота там організована зовсім по-іншому?
- Чи варто, в майбутньому, організовувати собі такий сервер із мого теперішнього компа?
(якщо це можливо)

2

Re: Як побудовані професійні веб-сервери?

Стикнувся, навіть, що на параметрах Core 2 Duo 1.80Gz 4Gb RAM - магазин одне завантаження сторінки відбувається до 5-7 хвилин!

Ви явно робите щось не так. Тут сервер не допоможе.

Подякували: koala, miroslav.chandler, leofun01, 221VOLT4

3

Re: Як побудовані професійні веб-сервери?

quez написав:

Стикнувся, навіть, що на параметрах Core 2 Duo 1.80Gz 4Gb RAM - магазин одне завантаження сторінки відбувається до 5-7 хвилин!

Ви явно робите щось не так. Тут сервер не допоможе.

Ну не знаю..
Магазин, до прикладу http://rozetka.com.ua/.
Товарів десяток тисяч

4

Re: Як побудовані професійні веб-сервери?

snenko написав:
quez написав:

Стикнувся, навіть, що на параметрах Core 2 Duo 1.80Gz 4Gb RAM - магазин одне завантаження сторінки відбувається до 5-7 хвилин!

Ви явно робите щось не так. Тут сервер не допоможе.

Ну не знаю..
Магазин, до прикладу http://rozetka.com.ua/.
Товарів десяток тисяч

Ви не зрозуміли. Ви робите щось не так в плані коду.
Десяток тисяч товарів — це не причина тупити п’ять хвилин навіть для набагато слабшої машини. Виясняйте, в якому місці bottleneck. Я підозрюю неоптимальні запити до БД, хоча все може бути.

5

Re: Як побудовані професійні веб-сервери?

Погоджуюсь з quez, а тепер по темі.

Сервер й wamp та ще й winamp - явно мазохізм. Якщо у вас є інший комп під базу - виділіть його під нормальний сервер - без гуя - це помагає. + акселератори різні мемкеші й таке інше, але код дійсно важливий - важливіший за все інше сказане - може варто під магазин спробувати щось легше?

Подякували: 221VOLT1

6 Востаннє редагувалося snenko (29.11.2014 12:42:28)

Re: Як побудовані професійні веб-сервери?

Djalin написав:

Погоджуюсь з quez, а тепер по темі.

Сервер й wamp та ще й winamp - явно мазохізм. Якщо у вас є інший комп під базу - виділіть його під нормальний сервер - без гуя - це помагає. + акселератори різні мемкеші й таке інше, але код дійсно важливий - важливіший за все інше сказане - може варто під магазин спробувати щось легше?

може варто під магазин спробувати щось легше
це вже не від мене залежить. Фірма працює з magento.

> без гуя: що ви маєте на увазі?
> акселератори різні мемкеші: а почитати про це десь можна? Киньте поселання на статейку бо буду ритись по інету, незнаючи, що шукаю

7 Востаннє редагувалося quez (29.11.2014 12:49:04)

Re: Як побудовані професійні веб-сервери?

Ну приймете гуй (GUI, graphical user interface) на сервері, ну зробите мемкеші, і буде сторінка грузитись не п’ять хвилин, а тільки три. Тому що

Djalin написав:

код дійсно важливий - важливіший за все інше сказане

Подякували: miroslav.chandler, snenko, 221VOLT3

8 Востаннє редагувалося Djalin (29.11.2014 21:41:35)

Re: Як побудовані професійні веб-сервери?

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

До речі, тут кажуть що хостинг який витягує дану CMS - коштує від 20 баксів в місяць, але дивлюся що за 40 вже можна взяти цілий сервер в хецнері

Прихований текст

Специализированные хостинг планы для Magento стоят в районе 20$/месяц.

В моей практике были случаи когда сайт отключили из-за нагрузки на процессор более 3%. При этом за день на сайт заходило не более 15-25 человек.


Прихований текст

а де вбіса завантажити? при клапанні на лінк продукт "http://ua.magento.com/uk/product" - сторінки завантаження немає


> - На професійні веб-сервера ставляться програми по-типу wamp(denver) чи робота там організована зовсім по-іншому?

так там стоїть сам сервер, а не подоба денверу

> - Чи варто, в майбутньому, організовувати собі такий сервер із мого теперішнього компа?(якщо це можливо)

так можливо, але чи доцільно - я не знаю.

По суті план дій може бути такий

  • Виділіть окремий комп під сервер та забудьте про використання його у ще якісь іпостасії

  • Оскільки я не знаю вашого рівня знання систем - то буде краще встановити на нього щось на зразок Ubuntu Server - принаймні по ньому купа матеріалів

  • Для зручності можна втулити якусь панель керування наприклад openpanel

Можна зробити це спершу на віртуальній машині - потестити

Подякували: snenko, leofun01, 221VOLT3

9 Востаннє редагувалося snenko (10.04.2016 10:53:58)

Re: Як побудовані професійні веб-сервери?

Підсумовуючи отриманий за рік досвід можу порекомендувати:

- Користувати SSD. Маджента складаєтсья з десятків тисяч малих файлів, а ssd з ними працює радикально швидше ніж hdd - це в рази пришвидшить роботу.

- якщо немає SSD, використовувати віртуальну машину - робота магазину прискорюється в рази!!! Правда, віддалений XDebug мені так і не вдалось запустити, тому приходиться дебажити через логи. ()
https://www.youtube.com/watch?v=5ml-sWJLbu8

- Користувати Linux. Незнаю в чому причина, але лінуксовий локальний вебсервер значно швидше працює ніж віндосовський.(раза в півтора-два)

Сподіваюсь, комусь зекономить купу часу

Подякували: Replace, leofun01, 221VOLT, Djalin4

10

Re: Як побудовані професійні веб-сервери?

1. Звичайний комп не сервер, тому на звичайний ПК можна встановити апач і таке інше, він буде робити при мінімальних навантаженнях, але дати невеличке навантаження і будуть проблеми в роботі, тормоза і таке інше. ТОму хо збільшуй RAM, SSD ставити не вихід. Сервер від ПК відрізняється шиною, процессором, мережевими картами. Так що візьміть більш менш сервер з 16 гігами оперативки і відповідними каналами швидкості
2. Для мережі краще тримати серврений шкафчик, де окремо фаєрволл та маршрутизатор, все це на одному ПК жесть, в мене є для цього реальні історії де 15 ПК робили через комп і друга фірма робила через спіальний сервер. Була дуже велика різниця навіть в інтернеті і диреткор не бігав і не питав, хто шо качає.

але лінуксовий локальний вебсервер

варто освоїти більш шось професійніше, стандартне воно таке, шо для серйозних речей не підходить, перевірено на собі

Подякували: leofun01, 221VOLT2

11 Востаннє редагувалося iovchynnikov (10.04.2016 13:45:14)

Re: Як побудовані професійні веб-сервери?

Абсолютно згодний з коментарями вище. 3-7 хвилин забагато навіть для мільйонів записів.

З того, що оновлення аж так довго виконується, можу лише припустити, що винна навіть не база, а код. Десь є, скоріше за все, дуже й дуже непродуктивна петля, яка тіпає поодинокі продукти, замість цілого списку. Вилапати таку логіку дуже просто: увімкнути логування на базі, оновити сторінку і дивитися які летять запити.

З іншої сторони, спробуйте оптимізувати саму базу за допомогою індексів або денормалізації. Також перевірте старі індекси, вони можуть бути неоптимальними (на приклад, видалить усі індекси на таблиці з продуктами і перевірте чи пришвидшився запит). Спробуйте змінити двигун для зберігання даних: MyISAM більш продуктивна для select запитів, хоч і набагато менш функціональна ніж innodb

Подякували: Анатолій, reverse2500, leofun013

12

Re: Як побудовані професійні веб-сервери?

Коли у нас в системі якась сторінк грузиться довше 2 секунд, то в деврумі вже починаються "гром і молнії".  Це при тому за заархівований дамп основної таблиці по якій йде пошук, важить 4гіга. Що спасає: Кешування запитів і відповідей, згадане ssd, 16гіг оперативки. І це все впринципі витягує mysql на центосі. Думали піднімати nginx, але порахували, що ніж його адміністувати, легше підняти ще кілька фронт серваків зі спільною сесією на редіс. Так що стандартний апач витягує.

Подякували: leofun011

13

Re: Як побудовані професійні веб-сервери?

А ще забув написати, всі ключові запити, які найчастіше використовуються переписали з об'єктно орієнтованої моделі фрейворку в чистий sql.
На іншому проекті, де була проблема з одночасним записом і читанням, підняли 2 бази, настроїли реплікацію і переключили всі селекти на слейва, а інсерт-упдейт на мастера з трансакціями.