- Проекти з високим навантаженням
- 1. Інтернет-магазин компанії «Евросеть»
- 2. Інтернет-магазин МТС
- 3. Інтернет-гіпермаркет «ДомПром.Ру»
- 4. Сайт Державної Думи
- 5. Сайт інтернет-магазину sapato.ru
- Готовність до високих навантажень
- Тестування навантаження
- Цілі тестування 2015
- Отримані результати
- висновки
- умови тестування
- тестового середовища
- Попередні навантажувальні тести
- Масштабування інтернет-проектів
- Діагностика проекту і рекомендації
- Інформація для розробників
- Приклади проектів з високим навантаженням
продуктивність
Проекти з високим навантаженням
Високі показники, отримані при нагрузочном тестуванні продукту , Найкраще підтверджуються результатами роботи реальних сайтів. Нижче наведені приклади великих веб-проектів, розроблених на «Бітрікс: Управління сайтом».
1. Інтернет-магазин компанії «Евросеть»
Руфат Гусейнов, директор по електронній комерції та корпоративних продажів:
«У грудні 2014 року наша компанія пережила найпотужніший сплеск відвідувачів сайту, який був приблизно в три рази вище середніх показників, і ми з успіхом впоралися з цим навантаженням. Більш того, зараз наша компанія оновлює платформу «1С-Бітрікс» на новітню версію, так як в ній реалізований весь найсучасніший функціонал. Практика показує, що відмова будь-якої платформи - це збій архітектури проекту, її потужності на серверному рівні. Ця частина життєдіяльності будь-якого ресурсу залишається завжди за кадром, але саме вона під час піку навантажень найчастіше і підводить. І саме це треба враховувати заздалегідь перед піковими навантаженнями ».
2. Інтернет-магазин МТС
4 000 000 хітів на добу, оновлення кожні 15 хвилин
Дані про відвідуваність інтернет-магазину за грудень 2014 року:
- Загальна відвідуваність за весь місяць 2 960 560 користувачів і 21 697 129 переглядів
- 22 грудня (самий навантажений день) 163 631 користувачів і 895 861 переглядів
3. Інтернет-гіпермаркет «ДомПром.Ру»
Дані про відвідуваність інтернет-магазину за листопад 2014 року:
Самий навантажений день - 8 185 546 хітів на добу
4. Сайт Державної Думи
Дані про навантаження на сайт під час DDoS
Дані за 10-11 липня 2012 года:
- 90 запитів в секунду
- 1 000 000 переглядів
- 600 000 відвідувачів
- 2700 чол одночасно в онлайні
5. Сайт інтернет-магазину sapato.ru
Дані за 2012-2014 рік:
- Середнє навантаження на сайт - 500 000 хітів на добу
- Найбільше навантаження - 1 300 000 хітів за добу
думка експертів
«Бітрікс: Управління сайтом» - рішення для будь-яких навантажень
«Бітрікс: Управління сайтом» - багатофункціональний продукт з широкими можливостями, але раніше за це доводилося розплачуватися значною втратою продуктивності, особливо у випадках, коли за розробку ресурсу брався не надто кваліфікований користувач. Тестування показало, що в нових версіях «Бітрікс» розробникам вдалося усунути вузькі місця і значно підвищити продуктивність системи. Це успіх!".
Дмитро Криков, технічний директор компанії .masterhost
Готовність до високих навантажень
Компанії «Бітрікс», Selectel і ITSumma в 2015 році провели тестування навантаження програмних продуктів «Бітрікс: Управління сайтом» (редакція «Бізнес») і «Бітрікс: Ентерпрайз».
Результати навантажувального тестування підтверджують, що продукти стабільно працюють в умовах надвеликих навантажень.
Готовий інтернет-магазин на продукті «Бітрікс: Управління сайтом» (редакція «Бізнес»), що містить до 99 280 SKU і розміщений на одному типовому сервері, здатний обслужити за добу:
- до 779 991 унікальних сесій
- до 14 781 832 переглядів сторінок
- до 29 635 замовлень
Готовий інтернет-магазин на продукті «Бітрікс: Ентерпрайз», що містить 99 280 SKU і розміщений на кластері з двох типових серверів, здатний обслужити за добу:
- до 1 214 858 унікальних сесій
- до 23 082 301 переглядів сторінок
- до 46 436 замовлень
Готовий інтернет-магазин на продукті «Бітрікс: Ентерпрайз», що містить до 99 280 SKU і розміщений на кластері з чотирьох типових серверів, здатний обслужити за добу:
- до 2 434 534 унікальних сесій
- до 46 256 141 переглядів сторінок
- до 93 042 замовлення
Висока продуктивність на доступному устаткуванні
Тестова середовище, що використовується при навантажувальні тестуванні:
2007 рік: Навантажувальне тестування MySQL-версії продукту, спільно проведене компаніями «Бітрікс», QSOFT і .masterhost
2010 рік: Навантажувальне тестування MySQL-версії продукту «1С-Бітрікс: Управління сайтом» 9.5, спільно проведеного компаніями «Бітрікс», «Онтіка» і .masterhost
тестування
Тестування навантаження
«Ми розглядаємо тестування самого продукту« Бітрікс: Управління сайтом »як питання надання нашим клієнтам гарантій в плані продуктивності та відмовостійкості. Прекрасні результати навантажувального тестування дозволяють нам заявляти про готовність проектів, створених на базі «Бітрікс: Управління сайтом», до масштабування під будь-які навантаження ».
Артем Горобинка, керівник відділу розвитку бізнесу компанії «Бітрікс»
Цілі тестування 2015
Проводячи нове тестування навантаження платформи «Бітрікс» спільно з компаніями Selectel і ITSumma, ми переслідували наступні цілі:
- Оцінка максимальної продуктивності, яку здатні витримувати типові редакції «Бітрікс: Управління сайтом» на доступному виділеному обладнанні з використанням одного сервера.
- Оцінка максимальної продуктивності, яку здатний витримати продукт «Бітрікс: Ентерпрайз» в кластерному рішенні, включаючи оцінку можливостей подальшого лінійного горизонтального масштабування.
- Оцінка впливу технології «Композитний сайт» на час відгуку і продуктивність системи.
- Оптимізація конфігурації серверного програмного забезпечення, виявлення обмежень, визначення методів подальшого масштабування.
Отримані результати
Готовий інтернет-магазин на продукті «Бітрікс: Управління сайтом» (редакція «Бізнес»), що містить до 99 280 SKU і розміщений на одному типовому сервері, здатний обслужити за добу:
- до 779 991 унікальних сесій
- до 14 781 832 переглядів сторінок
- до 29 635 замовлень
Готовий інтернет-магазин на продукті «1С-Бітрікс: Ентерпрайз», що містить 99 280 SKU і розміщений на кластері з двох типових серверів, здатний обслужити за добу:
- до 1 214 858 унікальних сесій
- до 23 082 301 переглядів сторінок
- до 46 436 замовлень
Готовий інтернет-магазин на продукті «Бітрікс: Ентерпрайз», що містить до 99 280 SKU і розміщений на кластері з чотирьох типових серверів, здатний обслужити за добу:
- до 2 434 534 унікальних сесій
- до 46 256 141 переглядів сторінок
- до 93 042 замовлення
висновки
Результати тестування підтвердили високу продуктивність платформи (до 167 динамічних запитів в секунду на типовому сервері) і стабільність при роботі з великими навантаженнями (відсутність різких відхилень на періоді 24-годинного тестування).
На даний момент п латформа «Бітрікс: Ентерпрайз» дозволяє ефективно горизонтально масштабироваться за кількістю серверів:
- коефіцієнт приросту 1,65 при двох серверах, по відношенню до одного сервера (коефіцієнт корисного навантаження одного сервера 0,825)
- коефіцієнт приросту 3,18 при чотирьох серверах по відношенню до одного сервера (коефіцієнт корисного навантаження одного сервера 0,795)
- коефіцієнт приросту 2,01 при чотирьох серверах по відношенню до двох серверів
2-кратний приріст при тестуванні 4-х-серверів говорить про можливість ефективного лінійного горизонтального масштабування.
Порівняння ефективності конфігурації №1 в варіанті з використанням і без використання композитного кеша говорить про відсутність додаткового навантаження на сервер в разі застосування композитного кешу, при його зберіганні засобами nginx.
Використання технології «Композитний сайт» кардинально зменшує час відгуку, що позитивно впливає на сприйняття контенту відвідувачами сайту, а також на ефективність індексування пошуковими системами.
Додатково встановлено, що в 99% -відсоток більше 500 мс були виконані тільки запити, пов'язані з додаванням товару в кошик і оформленням замовлення, - близько 1% запитів, а 95% виконувалися в межах 300 мс, що є стандартом для високопродуктивних систем.
Тестування будь-яких змін вироблялося в умовах рівномірного навантаження. У реальному проекті навантаження буде нерівномірною (варіюватися в залежності від часу доби, сезону, проведених маркетингових кампаній і т.д.). Добові показники для працюючого проекту будуть в 2,5-3 рази менше, а результати тестів в умовах реальних додатків можуть служити орієнтиром для налаштування програми і прийняття рішення про необхідність масштабування.
Олексій Лавренюк, Яндекс.Танк:
«При проектуванні систем важливо розуміти, яке навантаження зможуть витримати компоненти, з яких вони збираються. Це необхідно для того, щоб передбачити появу вузьких місць в архітектурі і намітити шляхи їх усунення до того, як це призведе до втрати грошей і репутації.
Оскільки для тестування з самого початку був використаний Яндекс.Танк, буде досить просто перейти від експериментів з навантаженням до повноцінних автоматизованих навантажувальні тестів і враховувати їх результати вже на початкових стадіях розробки. Це дозволить знизити ризики, пов'язані з продуктивністю і зменшити витрати на усунення проблем, викликаних особливостями архітектури та компонент системи ».
Євген Потапов, ITSumma:
«У проведеному тестуванні для нас було важливо оцінити межі продуктивності платформи« Бітрікс »з використанням типового обладнання. Зрозуміти, чи корисно це для власників сайтів - адже вони можуть оцінити свої витрати, чи корисно для розробників і адміністраторів - вони можуть орієнтуватися наскільки їх рішення можна порівняти з еталоном, і корисно для користувачів - коли ресурси витримують навантаження - сайт не гальмує.
Тестування показало - «Бітрікс» відмінно справляється з навантаженням і працює на рівні високопродуктивних систем, забезпечує швидкий час відповіді і дозволяє легко збільшувати ресурси додаванням нових серверів - ресурси системи виростають пропорційно числу елементів кластера. А це, в свою чергу, означає, що «Бітрікс» підходить для проектів будь-якого рівня складності - від невеликих інтернет-магазинів до складних високонавантажених проектів ».
Олександр Тугов, «Селектел»:
«Наші компанії пов'язують давні партнерські відносини. Ми цінуємо, що для проведення навантажувального тестування «Бітрікс» вибрав інфраструктуру «Селектел». Це свідчить про високий рівень довіри до наших хостинговим послуг з боку одного з найбільших російських розробників систем управління. Сподіваємося, що існуючі і майбутні користувачі продуктів «Бітрікс» також будуть віддавати перевагу «Селектел» при плануванні інфраструктури для розгортання додатків ».
умови тестування
тестоване ПО
«Бітрікс: Управління сайтом»
Редакція «Бізнес» . версія 15.0.14
Установка на 1 типовому сервері
«Бітрікс: Ентерпрайз»
версія 15.0.4
Установка на кластері з 2х і 4х типових серверів
Параметри установки:
- Тип коробкового рішення «Інтернет-магазин»
- Демонстраційні дані каталогу товарів, включає 99 280 SKU
- включена технологія «Композитний сайт»
тестового середовища
Параметри проведення тесту
- Тестування проводилося системою Yandex.Tank , Версії 1.7.10. Yandex.Tank обрана як надійна, зарекомендувала себе система, яка дозволяє, на наш погляд, надати найбільш докладні дані по проведеним тестування. Результати тестування Yandex.Tank перевірені в безлічі проведених навантажувальних тестувань компанією Яндекс і визнаються незалежними експертами.
- Як генератор навантаження використовувалося додаток JMeter 2.13 . JMeter - відкрита і гнучка система проведення навантажувального тестування, яка досить давно використовується різними компаніями для перевірки систем під емуляцією реальних навантажень.
- Як SLA-часу відповіді обрана 99-процентиль <1000мс (99% запитів виконуються швидше 1000мс), як максимально допустимий прийнятний час генерації сторінки для інтернет-магазину. Тест виконується при максимальної завантаженості процесора / диска / пам'яті, на якій зберігається даний SLA.
- Оскільки в рамках навантажувального тестування на проект подається критична для обладнання навантаження, допускається виникнення помилок. Частка запитів з помилковими відповідями (невиконаних запитів) не повинна перевищувати 0.5% від загального числа запитів.
Попередні навантажувальні тести
2007 рік: Навантажувальне тестування MySQL-версії продукту, спільно проведене компаніями «Бітрікс», QSOFT і .masterhost2010 рік: Навантажувальне тестування MySQL-версії продукту «1С-Бітрікс: Управління сайтом» 9.5, спільно проведеного компаніями «Бітрікс», «Онтіка» і .masterhost
масштабування
Масштабування інтернет-проектів
Будь-який новий або працює проект на «Бітрікс: Управління сайтом» може бути представлений як веб-кластер взаємозамінних серверів.
Модуль Веб-кластер - це комбінація технологічних рішень, які дозволяють розподілити один сайт на кілька серверів, вирішуючи тим самим кілька завдань: забезпечення високої доступності сайту; його масштабування в умовах зростаючого навантаження; балансування навантаження, трафіку, даних між декількома серверами.
Опис модуля Веб-кластердіагностика
Діагностика проекту і рекомендації
Для підвищення продуктивності і швидкості роботи інтернет-проектів в продукті «Бітрікс: Управління сайтом» використовуються спеціальні інструменти для оцінки продуктивності конфігурації, платформи «1С-Бітрікс» і якості розробки інтернет-проекту. А крім того система автоматично виробляє діагностику роботи і видає рекомендації щодо поліпшення продуктивності.
Аналіз конфігурації «Бітрікс»
Проаналізувати швидкість роботи проекту допоможе «Монітор продуктивності» , Що дозволяє в абсолютних величинах оцінити конфігурацію проекту, порівняти її з еталонною системою, проаналізувати загальну продуктивність проекту і виявити «проблемні ділянки».
«Панель продуктивності» модуля дозволить не тільки протестувати продуктивність проекту, але і порівняти отримані результати з еталонною системою. І, що важливо, при цьому даються рекомендації по налаштуванню і наводиться список найбільш навантажених сторінок.
Еталонні виміри продуктивності, які використовуються «Монітором продуктивності», виконані на віртуальній машині VMware , Розробленої фахівцями «Бітрікс». Ви теж можете безкоштовно перевірити, наскільки швидко запрацює ваш сайт на «Бітрікс: Віртуальна машина».
розробникам
Інформація для розробників
кешування інформації
Одна з ключових стратегій масштабування - кешування інформації. Завдяки кешування вдається значно зменшити число повторюваних запитів до бази даних і виключити повторювані ресурсомісткі обчислення. Мабуть, жоден найбільший інтернет-проект в світі не обходиться без використання тих чи інших технологій кешування інформації.
При цьому кешування є чудовим инстументом для невеликих проектів, що містять рідко оновлювані дані. Технологія кешування проста у використанні, не вимагає від користувача відслідковувати зміни і створена для повсякденного використання.
налаштування автокешірованія
оптимізація коду
Як показує практика, програмісту дуже складно одночасно сконцентруватися на вирішенні бізнес-завдання в програмному коді і вирішенні завдань швидкого виконання цього коду або його безпеки. Кожна з цих завдань має свою специфіку, і вимагає погляду на код кожного разу в іншій площині.
оптимізація коду
Інструменти налагодження
Інструменти налагодження є прекрасною підмогою розробникам в щоденній роботі. До складу продукту входить оцінний інструментарій, який дозволяє проаналізувати час роботи кожного окремого компонента і всієї сторінки в цілому. Інструмент дозволяє вивчити кожен SQL-запит, створений компонентом, місце виклику, час роботи компонента, час і відсоток виконання SQL-запитів цього компонента. Повна статистика збирається і показується за часом виконання всієї сторінки і всім SQL-запитах.
Інструменти налагодження
компресія трафіку
Одним з факторів, що визначають швидкість роботи відвідувачів з сайтом є обсяг даних, який при кожному запиті закачується в браузер. Веб-сервер може бути налаштований оптимально і швидко генерувати веб-сторінки по запитам. Однак, якщо кожна така сторінка буде великих розмірів, то посетітелель буде змушений довго чекати її завантаження, що може негативно позначитися на іміджі вашої веб-проекту і компанії.
Також проблеми можуть відчувати адміністратори і контент-редактори сайту, що працюють в адміністративному розділі. Якщо робота в "адмінки" ведеться з великими наборами даних, завантаження їх в браузер, особливо на повільних каналах, також буде займати чимало часу.
Важлива не тільки швидкість генерації сторінок, але також і швидкість їх доставки відвідувачеві. Розмір сторінки безпосередньо впливає на швидкість її завантаження в браузер.
В даний час ця задача вирішується шляхом компресії (стиснення) даних, що передаються на стороні сервера і подальшої декомпресії (розпакування) даних на стороні комп'ютера відвідувача. Практичні всі сучасні браузери підтримують прийом стисненого трафіку.
Стиснення контенту можна здійснювати безпосередньо веб-сервером Зокрема для Apache є модулі mod_gzip і mod_deflate. Також компресію можливо реалізувати на стороні PHP включенням директиви zlib.output_compression = 1.
Незважаючи на це, в продукті ми реалізували окремий модуль компресії, який дозволяє вам не залежати від налаштувань серверного програмного забезпечення. Це дає вам такі переваги:
компресія працює непомітно і не вимагає установки і налаштування сторонніх модулів;
ви отримуєте можливість використання компресії на віртуальному хостингу, коли дуже часто компресія на стороні сервера вимкнена;
завантаження процесів веб-сервера мінімальна;
модуль компресії в продукті коректно працює з усіма браузерами, і навіть виправляє ряд їхніх помилок. Зокрема в браузері Internet Explorer існувала проблема, коли при розпакуванні компрессированного контенту губилися 2Кб початкових даних. Крім того, модуль безпомилково визначає, чи підтримує компресію браузер або проксі-сервер клієнта.
Продуктивність на віртуальному хостингу
проекти
Приклади проектів з високим навантаженням
На жаль, ми не можемо вказувати точні дані про серверах і пікової відвідуваності проектів. З цієї причини ми вирішили виділити тільки деякі проекти, відвідуваність яких лежить в діапазоні від 5 000 до 50 000 унікальних користувачів в день і які використовують для роботи один або два виділених сервера. Ми також включили в цей список проекти з великими каталогами товарів або контенту (новин, статей) або форумами.