И ещё один полный репост, т.к. добавить особо нечего, а информация очень полезна и до сих пор актуальна т.к. вышел я на неё именно по запросам имени самой большой в базе Битрикса таблицы «b_stat_path_cache» заинтересовавшей меня своим огромным размером.
Далее от Автора:
Перебирая золотых и платиновых партнеров CMS Битрикс, наткнулся на замечательный сайт qsoft.ru. На этом сайте я нашел милую статью «Нагрузочное тестирование». Хвала и уважение авторам статьи (за честность).
Собственно, как и признаются авторы статьи ниже заголовка это совсем не тестирование, а оптимизация Битрикса, попытка тем или другим способом уложить статистику в приемлимые пределы. Дальше только цитаты…
=======================================
В целях сокращения времени на обращения к СУБД было включено кэширование всех компонентов на тестируемых страницах демосайта.
…
Вначале была выполнена стандартная настройка конфигурации frontend/backend, согласно рекомендациям С.Рыжикова в сертификационном курсе «Конфигурирование веб-систем для оптимальной работы».
…
движок хранения данных MyISAM является «узким местом» при более менее реальной нагрузке, в особенности при использовании модуля «Статистика» — сайт начинает виснуть
…
1С-Битрикс рекомендует отключение параметра: innodb_flush_log_at_trx_commit=0 чего разработчики MySQL, однако, не советуют делать. <…> На тестируемой конфигурации данные параметры были отключены.
…
Были протестированы наиболее распространенные прекомпиляторы: xcache, APC, eaccelerator. К сожалению, ВСЕ прекомпиляторы через некоторое время после начала нагрузки демосайта 1С-Битрикс «Бизнес» вызывали «падение» дочерних процессов вебсервера apache — «Segmentation fault». <…>
Вот что мы делали, пытаясь предотвратить сбои в работе прекомпиляторов:
* перекомпилировали PHP, прекомпиляторы без режима оптимизации: –O0;
* меняли версию gcc с 4.1 на 3.3;
* увеличивали ulimits, меняли параметры ядра Linux;
* перебирали настройки прекомпиляторов, настройки конфигурации компиляторов в PHP (./configure …);
* убирали из конфигурации PHP «лишние» модули. <…>
В общем, «лезть» в исходный код прекомпиляторов мы не решились и обошли проблему с другой стороны – написали простой bash-скрипт, отслеживающий появление в логе apache сообщений «Segmentation fault» и перегружающий apache.
// Слезы умиления…
…
В итоге, примерно через 8 часов процессоры использовались практически на 100%, нагрузка (load average) поднималась до 10 и выше, а система начинала использовать swap – производительность падала фактически до 0. Нагрузочное тестирование приходилось останавливать.
// Я уже рыдаю
…
Далее были обнаружены «тормозящие» запросы к таблице b_stat_path_cache, лавинообразно накапливающиеся через несколько часов нагрузки; при этом размер таблицы иногда вырастал до 1ГБ. Проблема была решена отключением настройки модуля «Статистика»
…
Таблица «Распределение времени загрузки страницы»
Критерий | Значение | % |
Меньше либо равно 1 сек. | 1572073 | 98,63 |
Больше 1 сек. | 21910 | 1,37 |
=========================
Мои выводы.
Оптимизаторам была поставлена задача уложить 98 процентов обращений в предел одной секунды.
Дробить по секундам — отличное решение (!).
Хочу отметить тот титанический труд, который проделали тестировщики.
Ну… а поскольку конфигурация сервера не указана точно (процессор и память не известны), то все последующие рассуждения не имеют смысла.
Ну а для тех, кто ничего в этом не понимает подготовил краткое изложение вышесказанного:
Битрикс — (говорят) удобная красивая система для управления сайтом. Но за красоту надо платить (да и кушать тоже хочется, раз написали — надо продавать). Однако сайты, построенные на этой системе, вызывают головную боль для хостинг-провайдеров. Без обработки напильником сайты работают медленно и вводят в ступор весь сервер…. А у нас нет отдельного специалиста под Битрикс… Рекомендуете?