Экспертиза производительности Типовые ошибки разработчиков Шаромов Денис руководитель отдела техподдержки «1С-Битрикс»
Когда это надо Регулярное появление ошибок 50x Долгое открытие страниц или разделов сайта Сервер перестаёт отвечать под нагрузкой Проект с планируемой большой посещаемостью до передачи проекта клиенту
Что мы делаем Устранение ошибок в конфигурации сервера Поиск узких мест в коде проекта Рекомендации по устранению ошибок в проектировании и разработке Отчет о сделанных изменениях и необходимых доработках для достижения положительного результата
Ошибки настройки веб сервера Не настроена двухуровневая архитектура Большие (дефолтные) значения MaxClients в Apache Не установлен или не настроен акселератор php
Ошибки настройки MySQL Параметры InnoDB не соответствуют: innodb_flush_log_at_trx_commit = 2 innodb_flush_method = O_DIRECT tx_isolation = READ-COMMITED Маленькие (дефолтные) значения буфера: join_buffer_size Низкие значения: cache_size max_heap_table_size tmp_table_size
Ошибки разработки Запросы на получение свойств в цикле в result_modifier.php
Ошибки разработки Получение количества элементов
Ошибки разработки Подсчет числа элементов внутри раздела
Ошибки разработки Установка заголовка страницы или раздела в шаблоне компонента Чтобы это работало в режиме кеширования, необходимо вставлять код в component_epilog.php Большой кеш компонентов от того, что большой $arResult Необходимо использовать $this->SetResultCacheKeys внутри компонента для определения данных, используемых в компоненте после подключения шаблона
Рекорды 8700 запросов на одной странице 45 Мб - кеш одного компонента, подключаемый на одной странице На каждый запрос поиска делался ALTER TABLE (добавление полей и индексов) на таблице с 50 полями и записей
Спасибо за внимание! Вопросы?