UNIX
online
pulse
logo
| unixonline.ru | услуги | оптимизация |
услуги
   поддержка
   резервирование
   мониторинг
   оптимизация

цены
контакты
 

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

Путь в тысячу миль
начинается с первого шага.

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

RPSmax = 2 * CPU / t

где:

  • t - время генерации страницы в секундах;
  • CPU - количество процессоров или ядер процессора;
  • 2 - поправочный коэффициент на то, что веб-сервер некоторое время проводит в ожидании ресурсов и не потребляет процессорного времени;
  • RPSmax - максимальное количество запросов в секунду.

Т.о., при среднем времени создания страницы в 300 ms и стандартной 4-х ядерной конфигурации сервера получаем производительность приблизительно в 25 запросов в секунду или 250 тыс. хитов в сутки из за неравномерности распределения нагрузки в течении суток.

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

  • 90% запросов выполняются менее 300ms;
  • 99% запросов выполняются менее 500ms;
  • Пиковая загрузка CPU не более 80%.

Для контроля соблюдения качества работы веб-приложения может использоваться система мониторинга (мониторинг SLA).

Для всех клиентов, которые приобретают услугу технической поддержки, мы проводим:

  • Аудит качества работы веб-приложений с учетом их особенностей - так, например, сайт спортивной тематики может получать пиковую посещаемость во время проведения футбольных матчей, но в остальное время не загружать сервер более чем на десятую часть.
  • Экстенсивную оптимизацию, связанную с настройкой оборудования и программного обеспечения - так, например, поведение MySQL может меняться кардинальным образом в условиях недостатка памяти.
  • Составление рекомендаций по проведению интенсивной оптимизации, связанной с изменением логики работы приложения, кода - так, например, использование memcached для кэширования редкоменяющихся блоков веб-страниц позволяет существенно уменьшить время генерации динамической страницы.