Аудит продуктивності сайту 1С-Бітрікс

Каталог відкривається повільно, а навантаження зростає швидше, ніж ви встигаєте реагувати? Ми проводимо аудит продуктивності Бітрікс під ключ: знаходимо вузькі місця, показуємо заміри до і після та передаємо готовий план оптимізації. Ви отримуєте зрозумілий порядок дій замість здогадів — і ефект, який видно за часом відгуку та кількістю відмов.

Аудит продуктивності сайту 1С-Бітрікс

Аудит та код-рев'ю сайту на 1С-БітріксПростий~2-3 дні
Часті запитання

Аудит продуктивності Битрикс: де втрачається швидкість

Повільний сайт Битрикс рідко впирається в одну причину. Швидкість втрачається одразу в кількох місцях: каталог збирає картку товару десятком окремих звернень до бази, шаблон тягне ті самі дані повторно, а оточення залишилося в тому вигляді, у якому проєкт запускали. Користувач бачить одне — сторінка відкривається довго, і він іде раніше, ніж встигає щось вибрати.

Перше вузьке місце продуктивності — каталог. Фільтри, ціни, залишки, торгові пропозиції та властивості збираються окремими запитами, хоча частину з них можна вирішити одним проходом.

Чим ширша вибірка й більше властивостей виведено в лістинг, тим помітніший розрив між холодною та прогрітою видачею.

Друге — надлишкові виклики. Шаблон звертається до одних і тих самих даних кілька разів, зовнішні сервіси опитуються на кожному відкритті сторінки, кеш скидається частіше, ніж змінюється контент. У сумі це зайва робота, яку сервер виконує марно.

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

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

Аудит продуктивності Битрикс розкладає картину на вимірювані ділянки й відповідає на головне питання — що закривається налаштуванням, а що потребує переробки коду.

Що дає оптимізація: вимірювані ефекти для сайту

Оптимізація продуктивності сайту на 1С-Битрикс вимірюється не словом «швидше», а числами до й після. Точки контролю — медіана та 95-й процентиль часу відгуку сторінок, частка запитів, що вклалися в бюджет, і час відновлення після збою.

Знімаємо їх на бойовому контурі під навантаженням, а не на стенді, де трафік не схожий на справжній.

Перший ефект — час відгуку сторінок.

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

Другий — стійкість до пікового навантаження. Прогрів кешу перед акцією, обмеження паралельних звітів і черга на важкі завдання дають змогу тримати пік у 3-5 разів вище за звичайний трафік: відгук зростає плавно, без обриву й очікування в черзі в користувача.

Третій — зниження часу простою. Моніторинг ключових сценаріїв, відлагоджений регламент відкату та заздалегідь зняті знімки конфігурації переводять відновлення з годин пошуку причини в хвилини за зрозумілим сценарієм.

Четвертий, найцінніший за підсумком: зникає цілий клас відмов — таймаути з'єднань із базою, падіння через пам'ять на імпорті, блокування під час обміну з обліковою системою. Інциденти стають видимі за метрикою раніше, ніж за дзвінком клієнта.

Формати робіт: разова діагностика, впровадження, супровід

Формати відрізняються не глибиною звіту, а тим, що відбувається після нього: залишається діагностика документом чи перетворюється на зміни на стенді.

Ми підбираємо варіант під стан проєкту — якщо сайт просідає на піку, зазвичай достатньо разового аудиту; якщо релізи виходять щотижня, разові заміри майже не дають користі.

Формат Коли підходить Обмеження
Разова діагностика без правок Потрібно зрозуміти причину деградації та оцінити обсяг робіт до старту Закінчується звітом: вузькі місця залишаються на місці, зміни робимо окремим етапом
Діагностика з впровадженням Причина ясна, потрібен результат у межах одного завдання Потребує вікна на викладку, регресу та повторних замірів на тому самому профілі трафіку
Постійний супровід продуктивності Релізи йдуть часто, навантаження зростає непередбачувано Потрібні доступи до сервера й моніторингу, пороги оповіщень доведеться підтримувати
Розбір перед перенесенням оточення Планується зміна майданчика, версії платформи або схеми кешування Прогноз правильний рівно настільки, наскільки профіль навантаження збігається з реальним трафіком

Навантажувальне тестування вмикаємо точково — коли потрібно відокремити проблему в коді від нестачі ресурсів майданчика. Вибраний формат не блокує інші: разова діагностика легко переростає у впровадження, а воно — в постійний контроль навантаження.

Етапи робіт: від зняття замірів до передачі регламентів

Кожен етап спирається на цифри попереднього — оптимізація навмання виключена. Нижче — етапи оптимізації сайту на 1С-Битрикс і план робіт: від зняття замірів до приймання результатів.

  1. Збір доступів та інвентаризація. Отримуємо доступ до сервера, адмінки, репозиторію та резервних копій, фіксуємо конфігурацію оточення й склад модулів. Без цього будь-яка правка — ворожіння.
  2. Зняття замірів. Базова лінія: час відповіді сервера, швидкість генерації сторінок, кількість запитів до бази на типовій сторінці, частка влучань у кеш, вага та кількість статики. Сценарій навантаження повторюємо без змін — інакше порівнювати нічого.
  3. Пошук вузьких місць. Профілюємо важкі сторінки: повільні запити, вибірки без індексів, зайві компоненти, агенти, які виконуються на кожному зверненні.
  4. Схема правок. Узгоджуємо, що змінюємо в коді, що в конфігурації сервера, що в кешуванні, з оцінкою ризику та порядком відкату для кожного пункту.
  5. Впровадження. Йдемо від найбільшого ефекту за найменшого ризику: спочатку кеш і запити, потім компоненти й налаштування оточення. Кожен блок перевіряємо окремо.
  6. Контрольні заміри. Повторюємо той самий сценарій і порівнюємо з базовою лінією — так видно внесок кожної зміни, а не середня цифра по проєкту.
  7. Приймання результатів. Фіксуємо підсумкові метрики й передаємо регламенти: карту вузьких місць, список змін, налаштування кешування та моніторингу, щоб деградація не повернулася з найближчим оновленням.

Що залишається у вас: конфігурації, схеми, регламенти

Аудит має сенс лише тоді, коли його результати можна перевикористати без нас. Тому кожен висновок фіксується в артефакті, який ваша команда або інший підрядник застосовує напряму — без відновлення контексту з листування. Пакет документів збирається по ходу робіт і передається цілком на прийманні.

  • Документація з оптимізації: що змінено в коді та налаштуваннях, які вузькі місця закрито, які залишилися і в якому порядку їх брати.
  • Схема інфраструктури: сервери, балансування, кешування, черги, зовнішні сервіси — з позначкою критичного шляху запиту.
  • Регламент обслуговування: періодичність резервного копіювання, порядок оновлення ядра та модулів, перевірка копії відновленням, контроль журналів і місця на диску.
  • Карта вузьких місць з пріоритетами: частка часу відповіді на кожній ділянці та очікуваний ефект від кожної правки.
  • Налаштовані профілі моніторингу: пороги за часом відповіді, частотою помилок і навантаженням, правила оповіщення відповідальних.
  • План відкату: які зміни оборотні, з якої точки відновлюватися і скільки це займає.
  • Передача доступів: панель хостингу, адмінка, репозиторій, моніторинг і резервні копії — оформлені на ваші облікові записи, а не на наші.

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

Як зросла продуктивність каталогу: до і після

Каталог з десятками тисяч позицій на 1С-Битрикс у сезонних піках переставав відповідати: розділ збирався по кілька секунд, фільтри йшли в таймаут, частина трафіку втрачалася на відмовах. Розбираємо кейс оптимізації Битрикс з метриками до і після.

Що було вузьким місцем

Основний біль сидів у шаблоні розділу: вибірка товарів ішла по одному запиту на позицію, властивості та ціни підтягувалися всередині циклу, а кеш скидався на кожному обміні з 1С і не розділявся за сторінками пагінації.

Навантаження на базу зростало лінійно з кількістю товарів, а будь-яка зміна ціни обнуляла весь кешований розділ.

Метрики до і після

Правки розбили на шари: пакетні запити замість вибірки по одній позиції, складені індекси під фільтри, роздільний кеш із прив'язкою до сторінки та коректною інвалідацією за подією обміну.

Нижче — зростання продуктивності каталогу за контрольними замірами на тому самому профілі навантаження.

  • час відгуку сторінки розділу: з ~4,5 с до 0,8 с;
  • частка запитів до бази на одну сторінку каталогу: скоротилася приблизно в 7 разів;
  • відмови в пікові години: з 6–8% до рівня статистичної похибки;
  • перезбирання кешу після обміну з 1С: з хвилин до секунд.

Через місяць заміри повторили на реальному трафіку — показники утрималися, а імпорт перестав «заморожувати» каталог. Це і є різниця між правкою «на око» та аудитом, де кожна гіпотеза підтверджується заміром до і після.

Що робити, якщо вузьке місце не в коді, а в оточенні?

Розділити «код чи сервер» можна лише замірами, а не здогадками.

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

Якщо основну частку займає очікування, а не обчислення, вузьке місце в інфраструктурі — і оптимізація коду дасть косметичний ефект.

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

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

У самому оточенні дивимося конкретні місця. Кешування платформи 1С-Битрикс і кеш відповідей на боці веб-сервера: чи не скидається кеш на кожному запиті, чи не вимкнено кеш через права або агенти. Ліміти на пам'ять і кількість одночасних процесів, через які запити стають у чергу.

Пул з'єднань із базою та її параметри: не вистачає робочих потоків, заважають блокування, важкі вибірки йдуть у файлове сортування. Стан диска: черга введення-виведення, синхронні записи в журнали.

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

Порядок робіт важливий: спочатку підтверджуємо, де саме межа, і лише потім правимо. Інакше переписана ділянка не змінює картину, а регрес доводиться відкочувати.

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

Сумніви щодо доступів, строків і правок на живому сайті

Аудит продуктивності 1С-Битрикс не потребує зупинки сайту: заміри знімаємо на бойовому контурі в години низького навантаження, а зміни коду й налаштувань готуємо на копії. Доступи видаються окремим обліковим записом лише на читання — налаштування, журнали подій, копія бази. Права на запис у робочу базу та файли сайту нам не потрібні, після робіт доступ відкликається.

Який обсяг доступів потрібен для аудиту?

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

Чи можна правити сайт без зупинки роботи?

Зміни спочатку перевіряємо на копії та порівнюємо метрики до і після. На бойовий переносимо по одному блоку: шаблони й конфігурації під версійним контролем, тому відкат — це перемикання на попередній стан, а не ручна правка.

Як ідуть правки і скільки займають строки оптимізації?

Спочатку діагностика: вузькі місця ранжуємо за внеском у загальний час відгуку. Правки йдуть ітераціями від найважчої ділянки, кожен крок вимірюваний.

Скидання кешу та перебудова індексів — керована операція: кеш чистимо точково за компонентами, індекси перебудовуємо у фоні, прогрів робимо на копії.

Що буде при зростанні навантаження?

Дивимося, як конфігурація поводиться на піковому трафіку, і фіксуємо поріг, після якого потрібне розв'язання по серверах. Це частина звіту, а не сюрприз у день розпродажу.

Обговоримо ваше завдання: що надіслати для оцінки

Щоб повернутися з оцінкою та планом робіт, а не із загальними побажаннями «прискорити сайт», нам потрібні факти про ваш контур. Нижче — вступні, які найчастіше визначають, де саме втрачається час відгуку; надсилайте те, що є під рукою, решту зберемо разом у розмові.

  • адреса сайту та адреса тестового контуру, якщо на ньому є свіжа копія бази;
  • версія ядра платформи та перелік підключених модулів, включно із самописними й сторонніми;
  • схема розміщення: де працює веб-частина, де лежить база, як вони пов'язані між собою;
  • звіти моніторингу та журнали повільних запитів за звичайний тиждень і за період піку;
  • опис піків навантаження — розпродажі, розсилки, сезонне зростання — з датами та характером активності;
  • що вже намагалися змінювати: кешування, індекси, переписування шаблону — і чим це закінчилося;
  • контакт адміністратора та доступи до панелі керування, резервних копій і налаштувань оточення.

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

За підсумками обговорення ви отримаєте перелік вузьких місць з пріоритетами, план робіт за етапами з оцінкою трудомісткості кожного та розуміння, які правки безпечно внести без зупинки сайту. Опишіть завдання оптимізації у зручному вигляді — повернемося з оцінкою та планом.

Наші компетенції:

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1543
  • Розробка веб-сайту для компанії ФІКСПЕР
    Розробка веб-сайту для компанії ФІКСПЕР
    1060
  • Розробка віджета онлайн-запису для медичного центру
    Розробка віджета онлайн-запису для медичного центру
    837
  • Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    928
  • Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    865
  • Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1223