Файловых операций в секунду битрикс

Файловых операций в секунду битрикс

По результатам попыток ускорить работу некоторых CMS (wordpress и bitrix) в формате "я тут админ, я могу поставить разный софт и произвольно настроить конфиги всего!" написан такой вот текст, по которому я с удовольствием приму не только соболезнования, но и какие-то конкретные рекомендации.

Подчеркну исходную постановку задачи: Не собирая Нового Крутого Сервера С Быстрыми SSD, добиться приемлемой (время отклика сервера менее 1 секунды, например) скорости работы сайта на этом . ном битриксе, максимально эффективно используя имеющиеся ресурсы.

И лучше — под nginx+php-fpm, нежели под апачем. 🙂

По мнению самого Битрикса ("Панель производительности") "бутылочным горлышком" является быстродействие файловой системы (600 операций в секунду против ТРЕБУЕМЫХ битриксом 10000). Прочие параметры сервера практически устраивают ("База данных MySQL (чтение) 5 847 7 800 количество запросов на чтение в секунду" я считаю нормальным).

На текущий момент задачу лично для себя я практически решил и делюсь опытом.

UPD (про проблемы с конкретно SSL в php56 и не только):
На одном из двух серверов, где у меня наблюдались глюки с SSL, я таки проапдейтил систему до FreeBSD 11.0-RELEASE, причём действия:
1. апдейт 10.0-RELEASE до 11-RELEASE занудно руками со всеми базовыми библиотеками
2. постановка 11-RELEASE с нуля и pkg install бинарного пакета ca_root_nss
Привели, в конечном итоге, к одному — правильному результату, причём сейчас это версия OpenSSL 1.0.2j-freebsd 26 Sep 2016.

То есть openssl s_client -connect домен:443, curl и php стали давать адекватный результат, без труднопредсказуемых глюков.

Без апгрейда всей системы — смена версии не давала результата.

Оригинал этого поста в Dream Width. Если вы там есть — отвечайте там, уже комментариев:

Часто приходится слышать вопрос: у нас свой сервер (или два), много ядер, памяти. почему же монитор производительности битрикса дает оценку производительности не выше (или ниже), чем на маленькой виртуальной машине?
Давайте разберемся в этом вопросе.

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

Чтобы понять смысл этого утверждения, надо знать, как мы получаем оценку.

Эта цифра — есть величина, обратная времени исполнения ядра продукта [среднему на 10 измерений].

Т.е. на основе приведенной картинки можно сказать, что публичная страница сайта с пустым шаблоном (например, версия для печати), с пустой рабочей областью будет создаваться за 1/40,32 или 0,0248 сек.

Читайте также:  Лучшие бесплатные приложения для рисования

Обратите внимание, мы получили "Среднее время отклика".

Если говорить проще, то сервер сгенерирует 40 [пустых, но с подключением ядра] страниц в секунду.

А значит, она не вычисляется на основе "попугаев", приведенных ниже относительно файловой системы, работы базы, сессий и почты. Эти цифры нужны для того, чтобы помочь системному администратору найти узкое место (если такое есть). Оценка производительности всегда обратна величине среднего времени отклика.

почему же на хорошем железе php работает медленно?

Как ни странно, основным препятствием в этом вопросе являются сами администраторы.

На скриншоте видно, что наши рекомендации по оптимальной настройке php не выполнены.

— Потому что мы считаем, что эти параметры не значительны и существенно повлиять на производительность не могут.

На этом этапе важно победить себя и выполнить рекомендации. Если в силу каких-то причин затруднительно выпустить такую конфигурацию в продакшн (например, убрать ограничение open_basedir), попробуйте сделать это для теста и вы убедитесь, что может быть и быстрее.

Основные ошибки конфигурации

    Не установлен акселератор php
    Наличие акселератора php просто жизненно необходимо, в общем случае без дополнительных настроек страницы открываются в три раза быстрее, во столько же раз снижается нагрузка на процессор. Сегодня можно рекомендовать сборку Zend Server CE , быстрее любого акселератора в два раза. К сожалению, на некоторых конфигурациях он работает не стабильно, тогда ставьте (в порядке приоритета) APC, EAccelerator, XCache.

Включено ограничение open_basedir
На shared хостинге сложно отделить клиентов друг от друга, самый простой вариант, который обычно используют: включить open_basedir, тогда на все операции с файлами происходит дополнительная проверка пути. Что существенно снижает производительность. Решением будет использовать свой экземпляр apache для каждого пользователя или установка дополнительных модулей на сервер для ограничения доступа. В случае своего сервера или VPS ограничение open_basedir ставить не нужно ! Доступ ограничивается системой для пользователя веб сервера.

Не установлен или не настроен nginx
Хоть это напрямую не влияет на оценку производительности, но чрезвычайно важно для нагруженных проектов: вся статика (картинки, стили, ява скрипты) должна отдаваться nginx и не обрабатываться apache. Посмотрите логи доступа apache: там не должно быть ни одного запроса к статике!

Читайте также:  Win 10 как расшарить папку

Не настроена база данных
По возможности всегда используйте формат данных InnoDB, рекомендуемые настройки смотрите на странице монитора производительности "Сервер БД". Очень полезно также протестировать базу скриптом mysqltuner.pl , который чрезвычайно прост в установке и полезен для оптимальной настройки СУБД MySQL.

  • Стоят не оригинальные драйвера оборудования
    Особенно актуально для RAID контроллеров: при установке на Linux система обычно предлагает к установке open source драйвера, которые не всегда достаточно эффективно работают с оборудованием. Всегда ставьте оригинальные драйвера с сайта разработчика.
  • Как читать оценку подсистем

    Мы не имеем прямого доступа к системным ресурсам, поэтому оценки, полученные средствами php, в большей степени отражают работу php, нежели "железа". По порядку пройдусь по всем, повторюсь по первым двум.

      Конфигурация
      Собственно, оценка производительности.

    Среднее время отклика
    Цифра, на основе которой делается оценка производительности: обратная ей.

    Процессор (CPU)
    Делается большое число простых математических вычислений. Задача не распараллеливается, поэтому идет оценка работы одного ядра процессора. Когда сайт работает на VPS, здесь часто можно увидеть, что "зажат" процессор.

    Файловая система
    Этот тест показывает не столько работу диска, сколько работу php с файлами : создается, исполняется, удаляется большое число простых файлов. Данный показатель зависит от производительности файловой системы и эффективности работы php акселератора. В целом хорошо показывает, как работает php на данной конфигурации (без учета работы базы).

    Почтовая система
    Отправляется тестовое письмо на hosting_test@bitrix.ru . Содержимое письма: "This is test message. Delete it." Никакая служебная информация не передается! Если настроена отправка почты на cron , этот показатель можно игнорировать.

    Время старта сессии
    Сессия стартует на каждый хит, поэтому это время будет прибавляться к работе каждой страницы. Проблемы обычно возникают, когда меняются настройки хранения сессий php так, что скапливаются сотни тысяч файлов сессий.

  • База данных (чтение/запись/удаление)
    Отправляется большое число простых запросов в базу. Это очень утрированный тест: он не показывает, как база будет работать со сложными запросами на больших объемах данных. Очевидно, что для базы данных на локальной машины цифры будут выше, чем для базы на отдельном сервере. Это нормально.
  • Что важно знать

    • Оценка зависит от редакции продукта
      Раз мы замеряем время работы ядра, очевидно, оно будет зависеть от размера ядра. Для редации "Бизнес" со всеми включенными модулями оценка всегда будет ниже, чем на "Старте" на том же оборудовании. Эталонная оценка делалась на редакции "Бизнес".
    Читайте также:  Узнать пароль от wifi на телефоне ios

    Результат зависит от пользовательских функций в /bitrix/php_interface/init.php
    Указанный файл подключается на каждый хит, в том часле и при работе административной части. Он не должен содержать запросы к БД и любые другие ресурсоемкие операции.

    Оценка будет меняться в зависимости от нагрузки
    Чем больше нагружен сервер, тем ниже будет оценка. Но даже при пиковой нагрузке она не должна опускаться ниже приемлемого уровня чтобы можно было говорить, что сервер справляется (например, не ниже 10 единиц, т.е. 0,1 сек. на страницу).

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

  • Для базы данных на отдельном сервере оценка производительности будет ниже
    Когда речь идет о кластере, мы имеем масштабируемую систему: т.е. при увеличении наргузки она должна сохранять хорошие показатели. Но при моментальном замере времени открытия страниц без нагрузки мы неизбежно увидим небольшое замедление за счет межсерверных коммуникаций.
  • Заключение

    Понимание того, как вычисляется и от чего зависит оценка производительности должно помочь по-другому взглянуть на эту цифру. Не надо стремиться к каким-то заоблачным показателям, возьмите ненагруженную систему, добейтесь хорошего значения (по сравнению с эталонным, а может быть ниже и это будет нормально). А затем возьмите нагрузочное ПО и посмотрите, как будет меняться величина при планируемой пиковой посещаемости на сайте. Убедидесь, что сервер не просто дает хороший результат, но и сохраняет его при нагрузке.

    Нагрузочное тестирование отдельная тема, но сразу хочу сказать одно: не надо имитировать 100 параллельных пользователей, которые открывают страницы без перерыва. Между хитами обязательно должна быть задержка в несколько секунд (5-20), иначе это будет имитация DOS атаки. Если сервер будет тянуть 5 одновременных потоков без пауз, это очень и очень неплохо.

    Если вы готовите к выпуску крупный проект или работающий проект испытывает трудности с производительностью, наша новая услуга "Экспертиза производительности" поможет получить оптимальную производительность на вашем железе. Наши специалисты сделают анализ конфигурации сервера и дадут конкретные рекомендации по его настройке. Если удобно, мы можем сами сделать необходимые изменения.

    Ссылка на основную публикацию
    Установка образа на виртуальную машину
    VirtualBox представляет собой виртуальную машину с возможностью запустить операционные системы, отличные от установленной на компьютере. Это обычно требуется для тестирования...
    Ударные головки для пневмогайковерта
    На сайте продавца доступен "Онлайн консультант".Для перехода на сайт нажмите "В магазин" На сайте продавца доступен бесплатный номер 8-800.Для перехода...
    Удлинитель для роутера wifi провод
    Wi-Fi удлинитель — специальное устройство, работающее по принципу стандартной антенны, которая помогает обогнуть препятствия для сигнала. Удлинитель вай-фай можно использовать...
    Установка образа на жесткий диск
    Приветствую вас, друзья. Наверное, каждый пользователь компьютера или ноутбука встречался с ситуацией, когда он понимает, что настало время переустановки операционной...
    Adblock detector