

WebMan
В данный период я не оказываю услуг и не занимаюсь сторонними разработками
+434
Репутация
6108
Рейтинг
DimaU, когда полгода назад хостер переносил мои сайты на новый сервер, я тоже обнаружил на нём отсутствие Memcache. Попросил поддержку установить его. На что получил ответ о том, что они вместо Мемкэша сделали мощное кэширование файловой системы в память. То есть, часто используемые и последние по доступу скрипты и другие файлы висят памяти и сервер за ними на диск не лезет. Каким образом они это сделали — не знаю. Зато теперь сайты реально работают шустро. Точное время не помню, но сейчас без Мемкэша и с выключенным кэшированием в Инстанте отдача страницы примерно раза в полтора быстрее по сравнению с прежним сервером, когда в Инстанте был включён Memcache. Понимаю, что свою роль сыграло и новое железо, но подходящее кэширование тоже очень важно. Так что не во всех случаях Memcache нужен (ИМХО
).

Ваш вывод понятен, m0skit.
Мой вывод несколько отличается от Вашего (хотя у нас и разные цели, наверное). Насколько я понял после небольшого тестирования ДЛЕ и небольшого копания на их сайте, DLE — совсем не социально-ориентированный движок. Он прекрасно подходит для публикации материалов. А сделать на нём полноценное общение пользователей близкое к привычным уже соцсетям — трудно. Учитывая, что лучше, когда сайт наполняют и развивают пользователи, а люди любят много разного общения, я предпочту постараться оптимизировать Двойку. К тому же гибкости в Двойке однозначно больше. А это очень важно для проектов, которые планируется развивать со временем.
С нетерпением жду следующего обновления ICMS 2. Интересно посмотреть изменения в нём. 😊
Мой вывод несколько отличается от Вашего (хотя у нас и разные цели, наверное). Насколько я понял после небольшого тестирования ДЛЕ и небольшого копания на их сайте, DLE — совсем не социально-ориентированный движок. Он прекрасно подходит для публикации материалов. А сделать на нём полноценное общение пользователей близкое к привычным уже соцсетям — трудно. Учитывая, что лучше, когда сайт наполняют и развивают пользователи, а люди любят много разного общения, я предпочту постараться оптимизировать Двойку. К тому же гибкости в Двойке однозначно больше. А это очень важно для проектов, которые планируется развивать со временем.
С нетерпением жду следующего обновления ICMS 2. Интересно посмотреть изменения в нём. 😊
PHP-Templates написан на С без ++, я ошибся. Очень шустрый шаблонизатор. К сожалению, последняя версия от 2006-го года для PHP 5.2. Ребята из поддержки на хостинге умудрились запустить его на 5.3 — но это максимум, как они сказали.
Есть альтернатива — Blitz. http://alexeyrybak.com/blitz/blitz_ru.html и http://sourceforge.net/projects/blitz-templates. Также написан на С, но имеет больше возможностей, более удобен и по утверждению автора ещё быстрее, чем PHP-Templates. Последняя версия от 2012-го года для PHP 5.3.
Есть альтернатива — Blitz. http://alexeyrybak.com/blitz/blitz_ru.html и http://sourceforge.net/projects/blitz-templates. Также написан на С, но имеет больше возможностей, более удобен и по утверждению автора ещё быстрее, чем PHP-Templates. Последняя версия от 2012-го года для PHP 5.3.
Это на одном и том же сервере? Можете привести его характеристики?Ну вот мои результаты
По графикам видно, что самописный PHP-сайт и оптимизированный Первый Инстант почти не заметили нагрузку в 50 одновременных пользователей.
А вот Двойка стала замедлять отдачу начиная с 20 пользователей. И к 50 пользователям время отдачи страницы увеличилось примерно на 2 секунды, что очень много. Но вполне возможно, это было из-за ограничения на количество запросов на хостинге. В шаблоне Двойки загружается больше файлов, чем в первой ветке. Тем более, что в логе тестирования Двойки в небольшом количестве присутствовали незагруженные подключаемые файлы — видимо сервер запретил их отдачу. А при тестировании первых двух сайтов таких ошибок не наблюдалось.
Мои выводы из графиков:
Instant CMS 2 — прекрасная, мощная, современная, очень перспективная система. Её скорость и так уже сравнима или выше, чем у аналогов. Но в данной редакции Двойка всё же требует пересмотра некоторых моментов архитектуры и кода для оптимизации загружаемых компонентов и файлов. Тем более с учётом того, что тестировалась уже оптимизированная версия с ускорением более, чем в два раза.
Теперь по целям использования.
Сделаем простой и довольно примитивный расчёт. Он может не совпадать с реальностью, так как посещаемость по времени суток у всех разная.
Возьмём сайт с 10 000 просмотров в сутки. 86400 (секунд в сутках) /10000 просмотров = 8,64 секунд есть у сервера на страницу при равномерном распределении просмотров в течение суток. Ночью просмотры уменьшаются, в пиковое время увеличиваются по сравнению со средним в 10-20 раз и более. Значит в пики на страницу остаётся около 432 мс при 20-тикратном соотношении. Минимальное время создания страницы у Двойки на моём сервере 205 мс. Среднее время 300-500 мс. То есть, если использовать мой сервер только под этот сайт и не учитывать загрузку статики, то в пиковые периоды страницы уже будут отдаваться впритык или с задержкой.
В реальности цифры скорее всего будут другие. Что мы и наблюдали на графике. Тормоза начались в районе 20 одновременных просмотров страниц. Для верности будем считать, что сервер спокойно выдержал 10 просмотров в секунду. Тем более, что просматриваться будут разные страницы, а не одна, и кэширование БД и файлов будет давать меньший эффект. При соотношении пиковых и средних просмотров 20 к 1, получим средний просмотр в течение суток 1 страница в 2 секунды. То есть, за сутки такой сервер при таких условиях выдержит около 40 000 просмотров. Что по порядку близко к полученному выше раскладу, но отличается от него в несколько раз. Конечно, никто не будет держать сервер на таком предел постоянно. Поэтому в итоге выходим на максимальную цифру порядка 10-20 тысяч просмотров в сутки при вышеописанных условиях.
Значит, если Ваша цель — перенести на Инстант существующий очень посещаемый сайт (десятки тысяч просмотров в сутки), то нужно использовать достаточно мощный и оптимизированный сервер. Или подождать выхода более шустрого обновления Двойки. Или самому заняться оптимизацией движка и шаблонов под себя с последующим тестированием на своём сервере.
Если цель создать с нуля или перенести сайт с начальной небольшой посещаемостью до нескольких тысяч просмотров в сутки на начальном этапе и есть подходящий хостинг, то можно уже сейчас делать этот сайт на оптимизированной версии Двойки (или даже на коробочной версии). А по мере совершенствования Instant CMS 2, он сможет держать и бОльшую нагрузку — надеюсь разработчики в своё время подумают и об этом. В качестве резервных мер для увеличения нагрузочной способности такого сайта в будущем можно будет использовать: оптимизацию и объединение стилей, ява-скриптов и картинок (в спрайты), кэширование в CMS (даёт экономию времени до 20%), перенос статики и папки загрузок на отдельный диск/сервер. Как жёсткая, но сильная мера — оптимизация кода и шаблонов под свои цели, с отключением ненужных блоков. Ну и акселераторы PHP, конечно.
Первая ветка выдержит в несколько раз бОльшую нагрузку, чем вторая. Но Двойка всё же намного современнее и перспективнее.
P.S. Расчёты и выводы сделаны для моего хостинга и сервера. Ваш сервер может показать совсем другие результаты и дать совсем другие выводы.
P.P.S. Это лишь моё личное мнение, основанное на не сильно глубоком изучении системы. Оно может сильно не совпадать с видением разработчиков системы и других пользователей. 😊
P.P.P.S. Двойка мне очень нравится! 😊
А вот Двойка стала замедлять отдачу начиная с 20 пользователей. И к 50 пользователям время отдачи страницы увеличилось примерно на 2 секунды, что очень много. Но вполне возможно, это было из-за ограничения на количество запросов на хостинге. В шаблоне Двойки загружается больше файлов, чем в первой ветке. Тем более, что в логе тестирования Двойки в небольшом количестве присутствовали незагруженные подключаемые файлы — видимо сервер запретил их отдачу. А при тестировании первых двух сайтов таких ошибок не наблюдалось.
Мои выводы из графиков:
Instant CMS 2 — прекрасная, мощная, современная, очень перспективная система. Её скорость и так уже сравнима или выше, чем у аналогов. Но в данной редакции Двойка всё же требует пересмотра некоторых моментов архитектуры и кода для оптимизации загружаемых компонентов и файлов. Тем более с учётом того, что тестировалась уже оптимизированная версия с ускорением более, чем в два раза.
Теперь по целям использования.
Сделаем простой и довольно примитивный расчёт. Он может не совпадать с реальностью, так как посещаемость по времени суток у всех разная.
Возьмём сайт с 10 000 просмотров в сутки. 86400 (секунд в сутках) /10000 просмотров = 8,64 секунд есть у сервера на страницу при равномерном распределении просмотров в течение суток. Ночью просмотры уменьшаются, в пиковое время увеличиваются по сравнению со средним в 10-20 раз и более. Значит в пики на страницу остаётся около 432 мс при 20-тикратном соотношении. Минимальное время создания страницы у Двойки на моём сервере 205 мс. Среднее время 300-500 мс. То есть, если использовать мой сервер только под этот сайт и не учитывать загрузку статики, то в пиковые периоды страницы уже будут отдаваться впритык или с задержкой.
В реальности цифры скорее всего будут другие. Что мы и наблюдали на графике. Тормоза начались в районе 20 одновременных просмотров страниц. Для верности будем считать, что сервер спокойно выдержал 10 просмотров в секунду. Тем более, что просматриваться будут разные страницы, а не одна, и кэширование БД и файлов будет давать меньший эффект. При соотношении пиковых и средних просмотров 20 к 1, получим средний просмотр в течение суток 1 страница в 2 секунды. То есть, за сутки такой сервер при таких условиях выдержит около 40 000 просмотров. Что по порядку близко к полученному выше раскладу, но отличается от него в несколько раз. Конечно, никто не будет держать сервер на таком предел постоянно. Поэтому в итоге выходим на максимальную цифру порядка 10-20 тысяч просмотров в сутки при вышеописанных условиях.
Значит, если Ваша цель — перенести на Инстант существующий очень посещаемый сайт (десятки тысяч просмотров в сутки), то нужно использовать достаточно мощный и оптимизированный сервер. Или подождать выхода более шустрого обновления Двойки. Или самому заняться оптимизацией движка и шаблонов под себя с последующим тестированием на своём сервере.
Если цель создать с нуля или перенести сайт с начальной небольшой посещаемостью до нескольких тысяч просмотров в сутки на начальном этапе и есть подходящий хостинг, то можно уже сейчас делать этот сайт на оптимизированной версии Двойки (или даже на коробочной версии). А по мере совершенствования Instant CMS 2, он сможет держать и бОльшую нагрузку — надеюсь разработчики в своё время подумают и об этом. В качестве резервных мер для увеличения нагрузочной способности такого сайта в будущем можно будет использовать: оптимизацию и объединение стилей, ява-скриптов и картинок (в спрайты), кэширование в CMS (даёт экономию времени до 20%), перенос статики и папки загрузок на отдельный диск/сервер. Как жёсткая, но сильная мера — оптимизация кода и шаблонов под свои цели, с отключением ненужных блоков. Ну и акселераторы PHP, конечно.
Первая ветка выдержит в несколько раз бОльшую нагрузку, чем вторая. Но Двойка всё же намного современнее и перспективнее.
P.S. Расчёты и выводы сделаны для моего хостинга и сервера. Ваш сервер может показать совсем другие результаты и дать совсем другие выводы.
P.P.S. Это лишь моё личное мнение, основанное на не сильно глубоком изучении системы. Оно может сильно не совпадать с видением разработчиков системы и других пользователей. 😊
P.P.P.S. Двойка мне очень нравится! 😊
Обещанные тесты. Три реальных сайта на одном и том же шаред-хостинге. Тестировались главные страницы этих сайтов.
На хостинге есть только одно ограничение, сформулированное поддержкой: "До 100 одновременных подключений или запросов к вэб-серверу". Проц, диски и другое железо, а также нагрузка на программы не ограничиваются и разделяются на всех пользователей сервера хостинга. Тесты делались ночью, когда нагрузка на серверы минимальна и бэкапы уже сделаны.
Характеристики сервера: процессор Intel Core i5 CPU 760 2.80GHz, HDD RAID (уровень не знаю), Apache 1.3.42, PHP 5.3.28, отдельный MySQL-сервер 5.1.73. Кеширование файловой системы в ОЗУ.
Время создания главной мерялось многократными ручными обновлениями страницы и выбиралось минимальное значение.
Увеличенное время отклика страницы на графиках объясняется тем, что данный тест ждёт загрузку всех элементов страницы, а на сайтах 1 и 2 установлены внешние счётчики. Поэтому ориентируйтесь на загиб графика вверх под нагрузкой, а не на секунды загрузки.
1.Полностью самописный движок на PHP и шаблонизаторе phptemplates, написанном на C++. Более 9000 страниц.
Создание страницы минимум за 35 мс.
2. Instant CMS 1.10 с моими оптимизациями (шустрее коробочной на треть или больше, если не ошибаюсь). До 100 страниц.
Создание страницы минимум за 31 мс.
3. Instant CMS 2.1.2 также с моими оптимизациями (см. ссылки на мой блог выше в этой теме). До 100 страниц.
Создание страницы минимум за 205 мс.
На хостинге есть только одно ограничение, сформулированное поддержкой: "До 100 одновременных подключений или запросов к вэб-серверу". Проц, диски и другое железо, а также нагрузка на программы не ограничиваются и разделяются на всех пользователей сервера хостинга. Тесты делались ночью, когда нагрузка на серверы минимальна и бэкапы уже сделаны.
Характеристики сервера: процессор Intel Core i5 CPU 760 2.80GHz, HDD RAID (уровень не знаю), Apache 1.3.42, PHP 5.3.28, отдельный MySQL-сервер 5.1.73. Кеширование файловой системы в ОЗУ.
Время создания главной мерялось многократными ручными обновлениями страницы и выбиралось минимальное значение.
Увеличенное время отклика страницы на графиках объясняется тем, что данный тест ждёт загрузку всех элементов страницы, а на сайтах 1 и 2 установлены внешние счётчики. Поэтому ориентируйтесь на загиб графика вверх под нагрузкой, а не на секунды загрузки.
1.Полностью самописный движок на PHP и шаблонизаторе phptemplates, написанном на C++. Более 9000 страниц.
Создание страницы минимум за 35 мс.
2. Instant CMS 1.10 с моими оптимизациями (шустрее коробочной на треть или больше, если не ошибаюсь). До 100 страниц.
Создание страницы минимум за 31 мс.
3. Instant CMS 2.1.2 также с моими оптимизациями (см. ссылки на мой блог выше в этой теме). До 100 страниц.
Создание страницы минимум за 205 мс.
Смогу это сделать только через сутки ночью.Если у тебя есть рабочий Инстант — выложи скрин, интересно как он грузится в реальном режиме)
А есть где-нибудь на форуме что-то вроде подборки советов для двойки, как снизить нагрузку на сервер?
Класс расширенной отладки для InstantCMS 2.1.2 (v.8) + оптимизация скорости — последняя версия
Класс расширенной отладки для InstantCMS 2.1.0-2.1.1 (v.7) + оптимизация скорости — тут таблица сравнения обычной и оптимизированной версии, скрины и отзывы.
Использование расширенной отладки для определения проблем на сервере. Часть 1
Конкретные советы по оптимизации именно Ваших сайтов можно получить после их тестирования по ссылкам, которые дал Александр выше в этой теме.
Так речь как раз о том, что когда Fuze и R2 решатся собрать команду (конечно же полностью на их условиях и под их контролем), тогда у них появится больше времени или за то же время с командой они смогут сделать намного больше. Вопрос лишь в готовности Fuze и R2 к такому же толковому руководству командой, как они сейчас толково программируют.Fuze… с R2 обсуждали, что неплохо было бы обновить сайт. НО! Нет времени
Спасибо, Александр, картинка интересная. И правда, странное время получилось для ДЛЕ.
И за список полезных сайтов на Хабре тоже спасибо!
И за список полезных сайтов на Хабре тоже спасибо!
Я понаблюдал за работой реального сайта на оптимизированной Двойке на том хостинге, где установлена вышеописанная оптимизированная демка с минимальным временем создания главной 70 мс. Так как на сервере файловая система и запросы к БД хорошо кэшированы, минимальное время достигается только при повторном открытии той же страницы. А при первом открытии время значительно выше. Например, главная может создаваться до 500 мс. Среднее время создания разных страниц со статьями при обычном просмотре сайта около 250-300 мс.
alkokrolik, Вы правы, рассчитывать нужно лишь на готовое.
Но, пожалуйста, перечитайте мой пост, на который Вы ответили. Там нет претензий по поводу нереализованных "хотелок". Там есть мысль о том, что всем — и разработчикам, и пользователям, будет выгоднее когда разработчики начнут информировать сообщество о своих планах.
Но, пожалуйста, перечитайте мой пост, на который Вы ответили. Там нет претензий по поводу нереализованных "хотелок". Там есть мысль о том, что всем — и разработчикам, и пользователям, будет выгоднее когда разработчики начнут информировать сообщество о своих планах.
Да, отсутствие хоть какой-то информации — это с одной стороны проявление неуважения к пользователям, с другой — отталкивание многих толковых разработчиков и участников сообщества. На мой взгляд, это одна из основных причин, почему сообщество Инстанта развивается гораздо медленнее, чем могло бы при всей уникальности и толковости CMS. Общепринятая практика при разработке бесплатных/свободных приложений показывает, что и разработчикам, и пользователям выгоднее, когда озвучен какой-то план, хотя бы самый ближайший. И даже если сроки в плане отсутствуют или несколько раз перенесены, это всё равно воспринимается проще и позитивнее, чем полная неизвестность. Достаточно просто без обидняков сообщить, что по некоторым причинам сроки сдвинулись на столько-то и люди в основном нормально относятся к трудностям разработчиков и спокойно будут ждать. К сожалению, разработчики Инстанта пока это не понимают и отсутствием информации стараются защититься от возможных упрёков по поводу переносов сроков или от комментариев пользователей, которые не увидят в планах своих "хотелок". Тем самым вызывают ещё больше недоумения и недовольства от своих пользователей. Нам приходится просто это учитывать как "особенность" талантливых разработчиков и набираться терпения, не имея возможности спланировать свою деятельность.Плохо что нет ни прессрелизов ни хотя бы каких-то примерных планов по развитию.
Александр, загрузите, пожалуйста, эту картинку в полном разрешении в Ваши файлы на этом сайте или на хостинг картинок. Хочется прочитать надписи.Этот график я делал на одном из онлайн сервисов
Я бы дождался ближайшего обновления Двойки, если проект не горит. А потом либо доделал сам отсутствующие мелочи, либо заплатил толковому программеру за доработку. Насколько я понял, Вы готовы вкладывать некоторую сумму денег в свой сайт, значит для Вас это подходящий вариант. Зато получите современную и удобную CMS. А как только r2 исправит ошибки и добавит в ядро основные "хотелки" пользователей, тогда за год разные разработчики наделают массу полезных компонентов и тем. А пока можно изучать систему и экспериментировать на локалке. Это Вам пригодится и для новых будущих проектов. На мой взгляд, выгоднее досконально изучить одну перспективную систему и делать всё на ней, чем по чуть-чуть изучать разные и потом мучаться с каждой мелочью на каждом сайте.
В Альто есть свои плюсы, кроме поддержки. Но их все полностью перекрывают плюсы Двойки, на мой взгляд. Да ещё и с избытком.думал altocms более приятный, простой и удобный двиг, чем оказался на самом деле
Если Вы вдруг по каким-то причинам выберете другую CMS, не Двойку, не сочтите за труд, отпишитесь тут с пояснениями этих причин.
Дополнение по производительности ICMS2. Если у вас на сайте не используются какие-то функции системы, то их можно попытаться отключить. Даже если придётся сделать несколько правок в ядре, то при большой нагрузке и желании сэкономить это может быть подходящим вариантом. Это, конечно, не рекомендуемый способ, автоматических обновлений уже не будет, зато Вы достигнете своей цели — большой производительности. Если это сделать на оптимизированной версии движка, можно получить ускорение раза в три. Со временем r2 доделает отключение неиспользуемых модулей из админки. И может быть когда-то (как раз когда Ваш сайт наберёт большие обороты) разработчики сделают полноценное управление кэшем, и можно будет включить кэширование только того, что Вам нужно, отключив остальное — вот ещё будущая возможность для ускорения сайта. Это же уменьшит потребеление памяти, если оно важно для Вашего хостинга.
И ещё хорошо помогает объединение всех стилей и скриптов в один файл. А также использование спрайтов для графики сайта. На недорогих хостингах могут быть ограничения по количеству одновременных запросов к сайту и такие меры могут в несколько раз поднять допустимую нагрузку (посещаемость) при той же производительности железа и CMS.
Например, для при загрузке авторизованным пользователем обычной статьи тестового сайта из коробки выполняется 43 запроса к серверу (не считая запросов к Яндексу за панелькой кнопок). По простым прикидкам, объединение стилей, скриптов и служебных рисунков оставит всего 13 запросов. Значит сервер сможет выдержать в три раза больше загрузок страниц за то же время.
m0skit, Двойка из коробки по времени выдачи страницы минимум в пару раз медленнее первой ветки. На моём шаровом хостинге с хорошим кэшированием на уровне файловой системы главная страница только что установленного сайта создаётся более 160 мс. При оптимизации движка можно добиться ускорения работы сайта без потери функциональности примерно в 2-2.5 раза. Оптимизированный демо-сайт на том же хостинге создаёт ту же главную страницу за время от 70 мс, что очень прилично.
Потребление памяти у Двойки зависит в первую очередь от используемых контроллера и виджетов. Для главной это около 7 МБ.
Дополнительную нагрузку на сервер создают также все запросы файлов со страницы: картинки, стили, скрипты. Они статические и отдаются быстрее.
Пример всех цифр есть в этом блоге. Какие цифры будут на Вашем хостинге, Вы можете узнать поставив на него демку с оптимизацией и выводом дополнительной инфы отладки отсюда. Сравнив время отдачи страницы Двойки и Вашего сайта на ДЛЕ на одном и том же хостинге, вы сами сделаете выводы о примерной разнице в скорости движков. Реальный сайт можно делать на оптимизированном движке. Или на стандартном с учётом увеличения времени создания страницы.
Потребление памяти у Двойки зависит в первую очередь от используемых контроллера и виджетов. Для главной это около 7 МБ.
Дополнительную нагрузку на сервер создают также все запросы файлов со страницы: картинки, стили, скрипты. Они статические и отдаются быстрее.
Пример всех цифр есть в этом блоге. Какие цифры будут на Вашем хостинге, Вы можете узнать поставив на него демку с оптимизацией и выводом дополнительной инфы отладки отсюда. Сравнив время отдачи страницы Двойки и Вашего сайта на ДЛЕ на одном и том же хостинге, вы сами сделаете выводы о примерной разнице в скорости движков. Реальный сайт можно делать на оптимизированном движке. Или на стандартном с учётом увеличения времени создания страницы.
При выборе CMS для своих проектов я сравнивал InstantCMS 2 с LiveStreet и с его форком — Alto CMS, сделанным по новым технологиям и принципам. Двойка из коробки по скорости создания страниц примерно совпадает с этими двумя системами. Но при этом в неё изначально заложено больше возможностей. И программировать в ней мне показалось удобнее и проще. А поскольку после оптимизации скорость ICMS2 выросла более, чем в два раза, то Двойка по всем пунктам вышла на первое место. Единственное, в чём несомненный плюс Альто — это поддержка от разработчиков. На офсайте Альто есть очень тесный контакт разработчиков с сообществом и пользователями. Даже в период формулирования идеи и принципов работы CMS велась бурная дискуссия на сайте и в переписке. Разработчики учитывали пожелания будущих пользователей, а также отвечали на вопросы, поясняя свой выбор того или иного решения. Обнаруженные ошибки очень быстро устранялись, исправления выходили оперативно. Также пользователям Альто изначально понятно в какую сторону будет развиваться система и что будет сделано в ближайшее время. Просто там над движком работает команда из нескольких человек, насколько я понял, а не один, как r2 с Двойкой. Как сейчас с поддержкой в Альто — не знаю, давно не интересовался этой системой. Но думаю, всё так же хорошо. Так что, m0skit, если Вам по какой-то причине захочется рассмотреть другие CMS, то присмотритесь к Alto, а не LiveStreet. Хотя я таких причин не нахожу. 😊попробуйте лайвстрит