Посты с тагом производительность
29
декабря
2007

Оптимизация работы веб-приложений: введение

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

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

Производительность любой программной системы оценивается по двум критериям: это скорость и ресурсоемкость. В контексте веб-приложений, скорость определяется максимальным количеством запросов, которое система может стабильно обрабатывать за единицу времени. Основными же показателями ресурсоемкости является нагрузка на процессор (обычно это наиболее ценный ресурс сервера) и объем используемой оперативной памяти.

Рассмотрим этапы работы типового веб-приложения, а затем выделим из них типовые операции, которые в наибольшей степени влияют на производительность системы вцелом. Читать далее →

30
ноября
2007

Gigabyte i-RAM

Недавно мне попалось на глаза описание интересного устройства, позволяющего организовать виртуальный диск на основе модулей оперативной памяти. Девайс представляет собой PCI плату с четырьмя слотами под DDR SDRAM, аккумулятором для автономного питания и SATA интерфейсом.

gc-ramdisk.jpg
(фотография с сайта ixbt.com)

Преимущества, которые дает установка такой штуки в системный блок достаточно очевидны: благодаря высокому быстродействию DDR, такой «диск» можно задействовать под задачи, требующие активного чтения и записи данных. Например, под хранение своп-файла операционной системы или Photoshop (наиболее оправданное применение в большинстве случаев). Или для локального кэша браузера. При большом желании, можно так же использовать i-RAM для хранения дампа памяти при hibernate, но в таком случае за повышенную скорость включения компьютера в данном случае придется платить дополнительным риском потери сессии ОС (вместе со всем, что не было сохранено на HDD), если аккумулятор не «дотерпит» до следующего включения.

Если задуматься, использование i-RAM для хранения свопов делает устройство аппаратной «заплаткой» для улучшения работы механизма распределения виртуальной памяти в ОС. Во многих случаях такая дополнительная память была бы не нужна, если бы основная часть оперативки распределялась бы более адекватно текущим потребностям. Конкретный пример: в системе стоит 2 Gb; запущенный Фотошоп и еще несколько программ все вместе отъедают 600 Mb. При этом своп — 800 Mb и растет при манипуляциях в Фотошопе с тяжелыми RAW. Возникает естесственный вопрос — почему бы не держать в физической оперативной все, что лежит в свопе, пока есть такая возможность?

Было бы здорово видеть устройства типа i-RAM, продаваемые в уже «заряженном» модулями памяти виде, как опциональное дополнение к retail дистрибутивам коммерческих ОС. Если такую штуку целенаправленно специализировать на повышении производительности работы системы и скрыть от пользователя все «лишние» детали, оставив минимальные настройки (Вкл./Откл.), такие железки раскупались бы как горячие пирожки. Для профессиональной рабочей станции, расчитанной на CAD/CAM, обработку видео, графический дизайн или другие «тяжелые» задачи, увеличение цены на 300-400$ — вопрос не очень существенный. Особенно, если за эти деньги производительность вырастает в разы.

В качестве иллючтрации к посту, прикладываю видеоролик с демонстрацией работы i-RAM. Показано, как с виртуального диска загружается Windows XP и Photoshop. В принципе, установка ОС и рабочих программ на такую штуку — абсолютно безбашенный шаг, но скорость впечатляет. Читать далее →