Производительность ColdFusion MX

Один из часто задаваемых вопросов это: Какой следует использовать сервер для запуска на нем CFMX? Любой ответ такого поставщика программного обеспечения как, например, Макромедиа, будет содержать краткий перечень системных требований с описанием минимального и рекомендуемого уровня платформы для программного обеспечения. Чтобы попытаться определить, что по-настоящему нужно серверу для оптимальной работы CFMX, мы рассмотрим его реальную производительность на разных платформах.

 

Как характеристики CPU влияют на ColdFusion?

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

Когда вы запрашиваете шаблон ColdFusion, то все связанные с этим операции выполняет процессор. Чтобы осуществить эту операцию как можно быстрее, процессору нужно иметь в своем внутреннем кеше как можно больше инструкций и данных, относящихся к этой операции. В основном эти данные находятся во втором и третьем уровнях процессора. Идея разделения кэша процессора на несколько уровней придумана для повышения скорости работы памяти.

Кэш первого уровня (L1 Cache) относительно мал и содержит все данные, относящиеся к операции. Кэш второго уровня (L2 Cache) хранит остальные данные, которые не помещаются в кэше первого уровня. Однако, кэш второго уровня значительно больше.

Когда CPU занимает всю свою внутреннюю память, то он должен будет использовать такие внешние ресурсы как, например, ОЗУ, тем самым значительно замедляя обработку операции. Для сравнения, на некоторых сегодняшних серверах скорость памяти составляет 166 Mhz, в то время как внутрення память CPU обычно работает на той же скорости, что и сам процессор. Например, если у вас процессор в 2GHz, то и скорость его внутренней памяти будет 2GHz - это более чем в 12 раз быстрее памяти.

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

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

Естественно, все 200 шаблонов не поместятся в кэше процессора (L1 Cache - 128 кб, а L2 Cache - 512 кб), поэтому процессору очень често придется обращаться к памяти сервера, что понизит производительность.

Теперь, когда мы разобрались с тем, что такое кэш процессора, давайте разберемся с его тактовой частотой. Говоря простыми словами, тактовая частота - это скорость процессора, измеряемая в герцах. Таким образом, не трудно догадаться, что чем больше герц, тем быстрее будут обрабатываться ваши CFMX шаблоны. Обновив процессор с P4 1.6 Ghz до P4 2.0 Ghz вы заметите прирост производительности.

 

Тесты

Создать тестовое веб приложение, которое заставит работать CPU как можно сильнее, не так уж и просто, т.к. веб шаблоны относительно небольшого размера и требуют очень большого количества клиентских запросов.

Приведенный здесь тест основан на реальном проекте, который разработан на ColdFusion MX с использованием CFC (ColdFusion компоненты).

Результат теста был записан с помощью программы Microsoft Web Application Stress Tool, которая бесплатно распространяется и хорошо подходит для такого рода работы. Эта программа настроена на иммитацию нагрузки в 20 запросов с последующим увеличением на 1. В течении 30 минут будут симмитировано около 200-700 пользователей, в зависимости от того, как часто они будут обновлять страницу. Операционная система - Windows 2000 Server SP3, веб сервер - Apache 2.039. Никаких дополнительных настроек не производилось.

 

Настройки ColdFusion MX

ColdFusion MX хорошо работает и сразу после обычной установки, но он будет работать чуточку лучше, если произвести некоторые настройки:

Также стоит боратить внимание на JRE. В саставе ColdFusion MX присутствует JRE версии Sun 1.3.1, но JRE изменилось на BEA JRockit 8.1. Эта версия распространяется бесплатно (www.bea.com) и заметно быстрее, чем Sun JRE на целых 20%. Настройки памяти JRE установлены так: минимальное - 128 Мб, максимальное - 400 Мб (вкладка SERVER SETTINGS/Java and JVM в административной оболочке CFMX).

 

Количество обработанных шаблонов

Результат зафиксированного количества обработанных за 30 минут шаблонов смотрите на Рисунке 1.

Количество обработанных шаблонов
Рисунок 1. Количество обработанных шаблонов

Полученные рузультаты могут удивить некоторых, особенно владельцев устаревшего P3 Xeon. Как видим, победителем стал Dual AMD Athlon 1800. Несомненно, результат зависит от тактовой частоты процессора и размера его кэша второго уровня. Также мы можем заметить, что производительность ColdFusion MX повышается, если добавить еще один процессор - два процессора AMD по 1800 Mhz быстрее одного AMD в 1800 Mhz.

 

Среднее время запроса

Этот тест показывает среднее количество времени запросов во время всего теста - Рисунок 2. Опять же, чем меньше время запроса, тем больше тактовая частота процессора и размер его кэша второго уровня.

Среднее время запроса
Рисунок 2. Среднее время запроса

 

Заключение

Из приведенного теста можно отметить следующие выводы:

Если вы хотите повысить производительность своего сервера, то, может быть, следует обновить CPU?


Источник: www.sys-con.com/coldfusion/source.cfm?id=558

 


Hosted by uCoz