

По сути, наша удовлетворенность скоростью работы сайта складывается из трех составляющих:
1. Сервер - хостинг, свой сервер, виртуальный сервер, VPS, VDS и т.д
2. Платформа 1С-Битрикс - собственно сам продукт
3. Разработка - качество интеграции продукта разработчиком
И только качественное исполнение этих трех составляющих дает пользователю удовлетворенность и позволяет произнести "да, быстренько шуршит".

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

Тема производительности всегда витает вокруг Битрикса, порождая слухи, справедливые и не очень справедливые нарекания. Думаю, что пора сжечь слухи и говорить по делу.
Однажды я обедал на какой-то конференции в Питере с коллегой из IBM, который отвечает за внедрение и интеграции на их платформах. "Как вам удается обеспечивать качество внедрения при такой цене и массовости рынка?", спрашивал меня он. "Не очень хорошо пока, попытка учить не дает очень хороших результатов - производительностью, как и безопасностью, партнеры занимаются в последнюю очередь, или вообще не занимаются. А как вам удается решать проблему?". "У нас продукты дорогие, и мы фактически к каждому внедрению приставляем менеджера, который следит за внедрением и помогает, а зачастую за разработчиков и правит интеграцию. И то клиенты недовольны результатами".
Два способа решения одной проблемы. Но как мы можем отследить качество внедрения 30 тысяч проектов? Нереально. Обучать специалистов? Пробуем, но не помогает так кардинально, у партнеров мало времени и бюджета на производительность. Отказываться от массового рынка и внедрений? Никогда!

Как обеспечить качественный хостинг повсеместно? Ввели сертификацию, но ситуация меняется динамически. На одной машине у хостера может быть 10 клиентов, а может быть 1000! А может быть DDoS, и тогда все настройки к черту - лишь бы выжить...
Как среди всех запросов выявить проблемы продукта? Ведь производительность зависит не только от объемов данных, но и от структуры этих данных и от способа выборки данных. Нужно ли включать голову, используя API инфоблоков?!

Значит, включим голову и будем искать новые методы выхода из ситуации!
1. Принципиальное решение вопроса качественной настройки хостинга и выделенных серверов

[spoiler]
Мы не считаем администрирование своей сильной стороной, но мы решились и разработали полностью готовую
Виртуальные машины - прекрасное решение! Сегодня у нас уже готовы решения для VMware, для Amazon EC2, готовится решение для Virtuozzo компании Parallels.
Ниже в цифрах я еще покажу результативность работы этого решения. Мы так же обеспечили безопасность этого решения. При этом мы учли интересы хостеров и обеспечили возможность работы при 256М памяти и с низкими частотами процессоров.
Официальным релизом стала версии 1.3. В ближайшие дни будет официальная информация о доступности бесплатного продукта и новый раздел на сайте.
Мы развернем программу по привлечению хостеров к использованию
Но уже сегодня вы можете взять в аренду Виртуальную машину Битрикс и обеспечить своему проекту идеальную работу!
Компания

Попробуйте сами, как вам понравится решение. А попробовать очень просто.

В поставке Виртуальной машины VMBitrix вас встретит мастер установки продуктов, который позволяет не только развернуть новый сайт, но и перенести на виртуальную машину уже имеющийся у вас сайт и попробовать его в работе.

Три шага:
1. Вы делаете резервное копирование на своем сайте. Запоминаете имя файла архива.
2. Указываете имя файла архива в Виртуальной машине для восстановления
3. Архив сайта автоматически скачается, распакуется и вы уже тестируете свой проект на виртуальной машине.
Напомню
Ждите новостей по этой теме.


2. Платформа 1С-Битрикс
Теперь расскажу о том, как же мы решили подойти к проблеме решения качества своей разработки и к оценке качества Конфигурации, на которой исполняется продукт.
Вчера в бета-версию
Вы уже сейчас можете загрузить этот модуль по системе обновлений SiteUpdate бесплатно. Но не забудьте, что нужно разрешить устанавливать бета-версии модулей, нужно будет поставить обновление главного модуля 8.5.0 и модуль Монитор производительности 8.5.0 и уже после этого УСТАНОВИТЬ модуль монитор производительности.
Концепция этого модуля состоит в том, чтобы выделить для вас все три составляющие:
* Конфигурацию
* Битрикс
* Разработку
Вы сможете быстро проанализировать и в сопоставимых цифрах оценить производительность той или иной составляющей.
Основным интерфейсом для анализа является Панель производительности.

Первоначально модуль производительности предложит вам запустить его на 5 минут. В течение этого времени будет протестирована Конфигурация вашего оборудования и сделан анализ факторов, влияющих на производительность системы. Будут проанализированы параметры установок Битрикс. Также в течение 5 минут продукт будет записывать все хиты ваших посетителей на сайте, все компоненты, все SQL запросы и ошибки.
На представленном мной экране чуть выше конфигурация и мощность сервера оценена нами в 21.65 единицу и среднее время отклика составляет 0.0462 секунды. Очень неплохой результат, но явно ниже, чем наша эталонная машина.
Производительность складывается из:
- Процессор (CPU) - в миллионах операций в секунду
- Файловая система - файловых операций в секунду
- Почтовая система - время отправки одного письма (в секундах)
- Время старта сессии - секунд
- Конфигурация PHP - оптимально или не оптимально
- База данных (запись) - количество запросов на запись в секунду
- База данных (чтение) - количество запросов на чтение в секунду
- База данных (изменение) -количество запросов на изменение в сек
Ну и, конечно, на производительность влияет загрузка сервера в текущий момент! И именно это отражает уже интегральная оценка 21.65 и время отклика.
Рекомендую вам запускать несколько раз тест производительности конфигурации, пока вы не получите достаточно стабильный результат. Если результат все время "пляшет", скорее всего вы имеете дело с сервером, который испытывает постоянно изменяющуюся нагрузку. Но мы еще с вами вместе поучимся интерпретировать результаты теста и доработаем Монитор производительности, чтобы суметь быстро указать причину проблемы!
Обратите внимание, что мы сравниваем сегодня вашу машину с Эталонной машиной, которая представляет собой

Вот как выглядит результат теста Конфигурации на сервере компании VMCO.

Честно говоря, я не ожидал получить 51 единицу по производительности на процессоре частотой в 1 гигагерц, который выделили нам партнеры VMCO для тестов!
Теперь давайте взглянем на вкладку Битрикс в Мониторе производительности.
На этой закладке вы увидите рекомендации нашей компании, которые непосредственно влияют на производительность системы.
Мы просим вас включать Автокеширование, в версии Старт мы просим вас включать HTML кеширование, проверим и посоветуем, как настроить модуль Поиска, Управляемый кеш сможет храниться на диске, в memcached, APC, ZEND, eAccelerator, проверим, закодированы у вас модули или нет, ну и в ближайших релизах появится требование проводить периодически оптимизацию таблиц MySQL или делать анализ таблиц Oracle и MSSQL. Список рекомендаций будет постоянно пополнятся.

Если все у вас хорошо вы получите оценку Оптимально! Если есть замечания, мы будем оценивать ваши настройки как НЕ Оптимальные и отображать это вместе с оценкой производительности на главный рабочий стол продукта.
3. Разработка
Пришло время подойти к разработке. Давайте посмотрим, как выполнена интеграция.
И для анализа я возьму свой сайт

Сегодня в 11 утра субботы я запустил монитор производительности на 5 минут и собрал 1056 хитов за 300 секунд! Удивился, прямо скажем. Я не думал, что народ так активно ползает по нашему сайту в субботу в 11 утра


На странице производительность разработки я среди 20 самых нагружающих сайт страницы уже сейчас вижу, что 60%! нагрузки создает одна страница "Наша Жизнь".
Вызванная 543 раза за 5 минут, эта страница в среднем выполняется 0.4 секунды. Это очень много, да и вообще непонятно, зачем и кем так активно используется страница!
Все остальные страницы пока меня не будут интересовать, разберусь с основной проблемой.
Перейду на проблемную страницу и посмотрю все хиты. Неслучайно они сортированы так, чтобы вы увидели сразу самые медленные хиты.

Что я вижу. Самый медленный хит составил 3.1 секунды. Вызвано 38 компонентов. Да, перегруженная страничка. И они выполнялись 1.3 секунды. Всего было выполнено 115 SQL запросов. А вот с ними, несмотря на их число, проблем никаких, потому что их время работы составило всего 0.07 секунды. Но есть еще недостающие почти 2 секунды. Где они?
Выяснить это можно разными способами. Можете вывести дополнительные колонки с данными, чтобы увидеть, куда потерялись секунды.

Но я сделаю иначе - я перейду на эту страницу в публичную часть сайта. Для этого нажму на ссылку с текстом >> возле интересующего меня хита.
И уже на публичных страницах сайта выведу внизу страницы карту производительности страницы.

Да уж, ну и страничка получилась.

Вы видите, что Ядро наше в конце страницы занимает 2 секунды. Это очень нехарактерно поведение для продукта. Но чем занимается наш продукт в это время? Очень большой HTML код генерирует страница. Ужасно стыдно говорить. Я сохранил ее, она весит 19М.
На всех табах стоят компоненты, на которых не отключено ВСЕ в постраничке и роботы зачастую нажимают на ВСЕ и видят огромные страницы. И эта страница, которую я изучаю - как раз такая страница. Новости, Семинары, Мероприятия, Обучение, Фотографии, Подписка, СМИ... много всего.
Как же эта страница быстро загружается посетителям? Да, она реально загружается, благодаря модулю компрессии! Страница сжимается в сотни раз и быстро передается от нашего сайта посетителю.
Очевидно, что эта страница очень плохо разработана. Наш продукт частично компенсирует недостатки разработки и со страницей можно работать, но это явный недостаток в качестве интеграции, который сейчас за 10 минут я выявил, используя новый модуль.
Мне будет о чем поговорить в понедельник с контент редактором, который ведет сайт

Но, конечно, не все так плохо устроено у нас на сайте

Я очень доволен! Впервые у меня не как у веб-разработчика, а как у потребителя услуг нашего продукта появился РЕАЛЬНЫЙ инструмент для диалога с хостерами и системными администраторами, с разработчиками продукта, ну и, конечно, с интеграторами, которые делают сайт.
Пока еще модуль находится в бета-версии. Вместе с партнерами и клиентами ближайшие две недели мы будем обсуждать результаты тестов и дорабатывать продукт. Коллеги, я создам тему в закрытом форуме для клиентов и попрошу вас высказываться и размещать своих результаты тестирования и выводы.
Я хочу, чтобы и ваш сайт работал быстро!

Updated: perfmon (8.0.1)
Updated: perfmon (8.0.0)
Updated: perfmon (7.0.2)
Updated: perfmon (7.0.1)
Updated: perfmon
Подарок к выходу 8.5 ? интересненько.
зы: меня интересует вопрос, когда появится более детально описание АПИ и будет ли отказ от пхп ниже 5 версии?
Это действительно нужный инструмент, и я очень был рад, увидев его в старте.
Приятно слышать о том, что производительностью занялись столь активно. Исторически так сложилось, что битрикс смотрит в сторону UNIX систем.
Если у тебя в организации все проекты крутятся на Windows Server 2008 и IIS7, то приходится с завистью читать о поддержке изменения места харанения кеша. Да, сейчас и на нашей улице праздник - появился родной кешер PHP-байткода.
1. И насколько вырастает производительность при хранении данных кеша в памяти? Очень интересно узнать результаты тестов на эталонных машинах.
2. Сергей Вы пробовали дружбу приложения с memcached под windows?
Я с этим развлекался давно и то исключительно в качестве эксперимента из разряда "а вообще воозможно?" Помню, что это вылилось в поиски нужных версий php_memcache.dll и танцами с бубном. Что бы сохранить hello world.
Планируем поддержать решение Microsoft. Они помогают нам активно.
Пока рано говорить. При обычной нагрузке и объемах, выигрыша не видно, бывает даже потеря в скорости. Наш файловый кеш работает достаточно быстро. Ожидаем ускорение и масштабирование при больших объемах данных.
Для продукта это будет не важно, как я понимаю, там по TCP/IP идет соединение.
А, тогда вопрос пока отпал.
===========
В любом случае - именно с профилировщиком будем внимательно работать на проектах. Ещё раз спасибо за обновление нужного инструментария.
Проект - сайт официального дилера тойоты в Киеве.
Посещаемость на сайте в рабочие дни 1000-1200 человек в день, плюс в этой же системе работают еще 14 сайтов, с посещаемостью 200-500 человек в день, все это дело настроено как единая многосайтовая система, что очень удобно. Редакция - Експерт.
Хостинг - украинская компания Mirohost (один из самых популярных и дорогих хостингов Украины), пакет - выделеный сервер Dedicated Smart Pro с автоматизированной панелью управления.
Intel Core2Duo 2.13 GHz, 2 Gb RAM
Привожу результаты тестирования. Вопреки моим ожиданиям, сайт получил оценку 9.4
Причину этого я впринципе догадываюсь. На сервере монитор производительности не обнаружил акселератор:
Хотя сотрудники техподдрежки мирохоста утверджают, что на сервере установлен Zend Accelerator. Пожалуй, прийдется это дело перепроверить.
Среднее время загрузки всех страниц на сайте составляет примерно 0,2 сек. Наибольшую нагрузку испытывают, естественно, страницы с модельным рядом.
В режиме "Разработка" отладка показывает что значительную часть времени занимает именно выполнение PHP кода.
К сожалению я не очень силен в администрировании, поэтому мы купили хостинг с автоматизированной панелью управления. С одной стороны это хорошо, так как есть ежедневные бекапы, удобная настройка доменов, поддоменов, алиасов, и тд. И за работоспособность сервера отвечают сотрудники техподдержки Мирохоста. Но с другой стороны, у нас нету root-доступа, и мы не можем на этом сервере ни устанавливать, и менять конфигурацию программ, настройки mysql и тд.
Это довольно печально, так как выбирая хостинг в Украине мы выбирали самый "крутой" хостинг, и рассчитывали что его цена будет соответствовать качеству. Наверное прийдется рассматривать переход на сервер без автоматизированной панели управления, и разбираться в тонкостях его настройки.
Либо ждать пока Mirohost поднимет у себя VMBitrix.
Да, из данных видно, что у вас не установлен или не работает акселератор PHP.
После его установки вы получите, я полагаю, ускорение в 2-4 раза.
Попробуйте, любопытно. На выделенном сервере вы можете себе позволить любое конфигурирование.
Битрикс так же пишет, что не установлены акселераторы...
Если на хостинге поставить только eAccelerator - Битрикс определяет его.
Решение — заменить параметр в url с «lang=en» на «lang=ru». Тогда все идет гладко. С установкой БУС не стал смотреть, какой дистрибутив установится, сразу заменил параметр в url:
Не знаю, насколько этот эффект распространен. Если кому-то поможет - буду рад.
В остальном Виртуальная машина 1.3 просто великолепна.
Если я не ошибаюсь, мы по языкам браузера определяем, какой язык показывать.
Может у вас только английский язык установлен?
DualCore AMD 5200 2GBRAM 2x250Gb
не смотря на оценку 9, сайт грузится шустро )
Также достаточно забавно смотреть на многочисленные Undefined variable
Достаточно забавно смотреть на многочисленные Undefined variable
Новый модуль показал, что php настроен не оптимально, после обращения в поддержку хостера была изменена конфигурация сервера.
Интегральный показатель производительности существенно вырос.
Я бы сказал, это тот модуль, которого мы давно ждали
А почему решили вернуться с ubuntu 9.04 на ubuntu 8.04? В долгосрочной поддержке дело?
Сорри, что здесь, но похоже мыло с моего адреса в спам падает...
Когда начинаю активно ходить по сайту, падает до 10.
Чему верить?
Мастерхост Практичный: 1С-Битрикс
Место на диске, Гб. 10
Трафик 1/4 условно бесплатный
CPU гарантировано, MHz 800
RAM гарантировано, Мб 768 (в панели управления показывает 1.2ГГб)
Операционная система Fedora Core 7 + оптимизация под «1C-Битрикс»
Стоимость в месяц, руб. 1 700,00
Макхост VPS-2
Место на диске, Гб. 10
Трафик бесплатный
CPU гарантировано, MHz 700
RAM гарантировано, Мб 384 (в панели управления показывает 384 как и положено)
Операционная система «Centos 5 - ISPmanager Lite»
Стоимость в месяц, руб. 1 200,00
еще хочу добавить что брал МХ по рекомендации битрикса, и еще он был самый дорогой, прослужил верой и правдой больше года, на этом хостинге очень понравилась документация по VPS, куда часто отправляет техподдержка. НО стали появляться белые экраны, а тех поддержка только что и посылает на FAQ и твердит мы не администрируем VPS.
В макхосте очень понравилась техподдержка, а главное они тоже не администрируют VPS но как оказалось... не можешь сам плати... все сделаем!!!
Хотел бы получить совет по развертыванию системы на новом сервере со стороны дисковой подсистемы. Есть 8 дисков (4 SSD + 4 10000 RPM). Есть аппаратный RAID контроллер c 512 Мб кэша и BBU. ОС Ubuntu. Как лучше разметить диски? У кого какие мысли?
Пока приходит в голову такой вариант:
- 4 SSD в RAID 10 - под базу MySQL (Хотя по сути, память позволяет держать всю базу в ОЗУ).
- 2 10000 RPM в RAID 1 - под систему
- 2 10000 RPM в RAID 1 - под файлы Битрикса
Или имеет смысл вынести какие-нибудь логи на отдельный массив?Конфигурация стандартна: PHP5 + eAccelerator + nginx + Apache + memcached.