Размер шрифта:
Я хочу, чтобы мой сайт работал быстро!
Play

Я хочу, чтобы мой сайт работал быстро!

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

По сути, наша удовлетворенность скоростью работы сайта складывается из трех составляющих:

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

И только качественное исполнение этих трех составляющих дает пользователю удовлетворенность и позволяет произнести "да, быстренько шуршит".

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

Тема производительности всегда витает вокруг Битрикса, порождая слухи, справедливые и не очень справедливые нарекания. Думаю, что пора сжечь слухи и говорить по делу.

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

Два способа решения одной проблемы. Но как мы можем отследить качество внедрения 30 тысяч проектов? Нереально. Обучать специалистов? Пробуем, но не помогает так кардинально, у партнеров мало времени и бюджета на производительность. Отказываться от массового рынка и внедрений? Никогда!

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

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

Значит, включим голову и будем искать новые методы выхода из ситуации!

1. Принципиальное решение вопроса качественной настройки хостинга и выделенных серверов

[spoiler]Мы не считаем администрирование своей сильной стороной, но мы решились и разработали полностью готовую Виртуальную машину VMBitrix , протестированную и идеально адаптированную для работы PHP приложений и для работы всех наших продуктов.

Виртуальные машины - прекрасное решение! Сегодня у нас уже готовы решения для VMware, для Amazon EC2, готовится решение для Virtuozzo компании Parallels.

Ниже в цифрах я еще покажу результативность работы этого решения. Мы так же обеспечили безопасность этого решения. При этом мы учли интересы хостеров и обеспечили возможность работы при 256М памяти и с низкими частотами процессоров.

Официальным релизом стала версии 1.3. В ближайшие дни будет официальная информация о доступности бесплатного продукта и новый раздел на сайте.Мы развернем программу по привлечению хостеров к использованию Виртуальной машины VMBitrix и будем объяснять клиентам преимущества использования проработанной нами конфигурации. Переговоры с крупнейшими хостерами и тесты уже идут полным ходом. Очень хочется улучшить удовлетворенность клиентов.

Но уже сегодня вы можете взять в аренду Виртуальную машину Битрикс и обеспечить своему проекту идеальную работу!

Компания VMCO уже сегодня открыла аренду Виртуальной машины Битрикс версии 1.3 на платформе VMware и предоставляет ее бесплатно на две недели всем желающим!

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

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

1. Вы делаете резервное копирование на своем сайте. Запоминаете имя файла архива.

2. Указываете имя файла архива в Виртуальной машине для восстановления

3. Архив сайта автоматически скачается, распакуется и вы уже тестируете свой проект на виртуальной машине.

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

Ждите новостей по этой теме. Мы начали этим заниматься активно и не остановимся.

2. Платформа 1С-Битрикс

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

Вчера в бета-версию мы выпустили новую редакцию модуля Монитор производительности и более того, включили ее во все редакции продукта! Ранее этот модуль был доступен только в верхних редакциях Портал и Большой Бизнес.

Вы уже сейчас можете загрузить этот модуль по системе обновлений SiteUpdate бесплатно. Но не забудьте, что нужно разрешить устанавливать бета-версии модулей, нужно будет поставить обновление главного модуля 8.5.0 и модуль Монитор производительности 8.5.0 и уже после этого УСТАНОВИТЬ модуль монитор производительности.

Концепция этого модуля состоит в том, чтобы выделить для вас все три составляющие:

* Конфигурацию* Битрикс* Разработку

Вы сможете быстро проанализировать и в сопоставимых цифрах оценить производительность той или иной составляющей.

Основным интерфейсом для анализа является Панель производительности.

Первоначально модуль производительности предложит вам запустить его на 5 минут. В течение этого времени будет протестирована Конфигурация вашего оборудования и сделан анализ факторов, влияющих на производительность системы. Будут проанализированы параметры установок Битрикс. Также в течение 5 минут продукт будет записывать все хиты ваших посетителей на сайте, все компоненты, все SQL запросы и ошибки.

На представленном мной экране чуть выше конфигурация и мощность сервера оценена нами в 21.65 единицу и среднее время отклика составляет 0.0462 секунды. Очень неплохой результат, но явно ниже, чем наша эталонная машина.

Производительность складывается из: - Процессор (CPU) - в миллионах операций в секунду- Файловая система - файловых операций в секунду- Почтовая система - время отправки одного письма (в секундах)- Время старта сессии - секунд- Конфигурация PHP - оптимально или не оптимально- База данных (запись) - количество запросов на запись в секунду- База данных (чтение) - количество запросов на чтение в секунду- База данных (изменение) -количество запросов на изменение в сек

Ну и, конечно, на производительность влияет загрузка сервера в текущий момент! И именно это отражает уже интегральная оценка 21.65 и время отклика.

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

Обратите внимание, что мы сравниваем сегодня вашу машину с Эталонной машиной, которая представляет собой Виртуальную машину VMBitrix с ограничением на 256Мб оперативной памяти и 1 процессором под управлением VMware Server 1.0.6. Вы сами можете проверить свой проект и нашу виртуальную машину на тестах и убедиться, что все так, как мы вам показываем Повторяемость результата - это ключевой элемент.

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

Честно говоря, я не ожидал получить 51 единицу по производительности на процессоре частотой в 1 гигагерц, который выделили нам партнеры VMCO для тестов!

Теперь давайте взглянем на вкладку Битрикс в Мониторе производительности.

На этой закладке вы увидите рекомендации нашей компании, которые непосредственно влияют на производительность системы.

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

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

Пришло время подойти к разработке. Давайте посмотрим, как выполнена интеграция.

И для анализа я возьму свой сайт Я часто бываю недоволен его производительностью.

Сегодня в 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 минут я выявил, используя новый модуль.

Мне будет о чем поговорить в понедельник с контент редактором, который ведет сайт

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

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

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

📎📎📎📎📎📎📎📎📎📎