Что клиенты просят доделать после партнеров Евгений Потапов ITSumma Евгений Потапов генеральный директор компании ITSumma Круглоcуточное удаленное администрирование серверов и техническая поддержка сайтов 100 миллионов уникальных посетителей в сутки Штат – 50 человек Более тысячи серверов на поддержке На поддержке Содержание • Формат аудита • Проблемы уровня сервера • С какой бедой приходят клиенты • Проблемы на уровне кода • Проблемы на уровне фронт-энда • Рекомендации для разработки и эксплуатации Формат аудита • Аудит серверного ПО, мониторинг • Перенос кодовой базы на стенд, анализ работы кода • Фронт-энд – google page speed, базовые рекомендации • Срок: простое: 3 рабочих дня, в среднем – 5 рабочих дней, сложные случаи до 20 рабочих дней Аудит серверного ПО • Мониторинг сервера на время проведения аудита • Аудит конфигурации сервера • Оценка конфигурации, проверка работы хостинга Аудит серверного ПО – типичные проблемы • Оставлен включенным XDebug – падение индекса производительности в два раза, увеличение времени ответа в два раза. • Отключен или заполнен прекомпилятор (рекомендуем OpCache, если версия PHP старая – APC). Apcu – не прекомпилятор (эмулятор API apc) • Софт поставлен не на Bitrix Env – низкий buffer pool/конфигурация по умолчанию в MySQL Аудит серверной конфигурации – типичные проблемы • Разрушен RAID / вылетел один из HDD • RAID в resync-е • Не хватает канала • Кроновые / бэкапные задачи • Чаще всего тормозит не сервер, а код Аудит серверной конфигурации и ПО – рекомендации • Обновить PHP до 5.6 (ждем 7.0) – особенно на высоких нагрузках – прирост в CPU производительности до 30-40% • MySQL 5.1 точно обновить до MySQL 5.6 (лучшая работа оптимизатора, лучшая работа в условиях многоядерности). MySQL 5.5 можно оставить, но лучше обновить • Железный RAID значительно лучше программного. Аудит серверной конфигурации и ПО – «хостинговый сервер» • Лучше – вообще не делать • Разделение по виртуальным машинам – одна VM один сайт. • Лучше – SSD-диски (при нагрузке на диске не помогут даже виртуальные машины) • Разные клиенты – разные IP Аудит кодовой базы • Перенос кода на стенд (bitrix env + gnome + vnc + xcode) • Весь аудит с выключенным кэшом + анализ использования кэша • Порядок анализа страниц – из монитора производительности. Аудит кодовой базы • Ошибки использования API 1С-Битрикс • Фасеты не включены или не используются (самописный фильтр) • Случайно отключено кэширование / не работает кэширование • Модификации ядра, старые версии 1С-Битрикс • Проблемы с работой с внешними сервисами Аудит кодовой базы Ошибки использования API • Выборка свойств в цикле после GetList, когда их можно выбрать в GetList • Сортировка и фильтрация средствами PHP (вместо arFilter и arSort) • Обработка элементов в двойных и больше циклах Аудит кодовой базы Фасеты не включены или не используются (самописный фильтр) • При выкладке на продакшен забыли включить фасеты • Писали свой фильтр на основе стандартного до создания фасет • Создали фасеты, но они не сработали Аудит кодовой базы Случайно отключено кэширование / не работает кэширование • Кэширование компонента отключено случайно, не включен CACHE_FILTER тогда когда это можно • Слишком большой размер данных в кэше (>1мб, норма – 200кб) • Код вызывается из шаблонов, результаты не кэшируются Аудит кодовой базы Модификации ядра, старые версии 1С-Битрикс • Не специально? Зачем? Аудит кодовой базы Проблемы с работой с внешними сервисами • Долгое время ответа сервисов • Отсутствуют таймауты – процессы apache/fpm выстраиваются в очередь, сервер перестает отвечать без нагрузки • Блокировки сессий в пределах одного пользователя Фронт-энд • Не пробовали включить CDN (помогает не всегда) • Отсутствует gzip-кодирование, при этом модуль компрессии отключен (модуль компрессии лучше отключить) • CSS/JS вставлены напрямую, не объединены • Не оптимизированы изображения Рекомендации для разработки и эксплуатации • На этапе разработки – все страницы проверяем с отключенным кэшом, страница должна открываться не медленнее 1с. • Стандартный инструментарий – проверка системы и пр. • После выкладки на продакшен – перепроверка использования кэширования, времени работы страниц без кэширования • Мониторинг времени ответа страниц (акцент на увеличение времени, которое не снизилось) • Мониторинг «скорости сайта» Евгений Потапов http://itsumma.ru eapotapov@itsumma.ru http://facebook.com/eapotapov