Строго как попало
Jan. 20th, 2010 03:29 pmПопробовал позавчера найти экспериментальным путём лучшее (с точки зрения производительности) количество дочерних процессов, с которыми следует запускать nginx + Catalyst::Engine::HTTP::Prefork и Apache + mod_perl.
Апач настраивал изменением параметра
Связку нгинкса с каталистовым сервером — чуть сложнее: нгинкс не трогал, а менял параметры каталистового сервера: методу
Картина получилась достаточно странная:

Хотя результат по-прежнему зависит непонятно от чего: например, сегодня оба варианта показали бóльшую производительность, но с прежним соотношением: 9 к 12.
Либо можно попытаться ускорить само каталистовое приложение (Как? Менять шаблонизатор? Оптимизировать SQL-запросы? Апгрейдить железо? Выбрасывать бэкенд на отдельную машину?) — и не забивать себе голову подобными соревнованиями.
upd/21.01.2010: Более точное тестирование показало равную производительность апача и нгинкса.
Апач настраивал изменением параметра
MaxClients в httpd.conf.Связку нгинкса с каталистовым сервером — чуть сложнее: нгинкс не трогал, а менял параметры каталистового сервера: методу
AppName->run можно, помимо прочих параметров, передать max_servers, задающий максимально допустимое количество создаваемых сервером дочерних процессов.Картина получилась достаточно странная:

Хотя результат по-прежнему зависит непонятно от чего: например, сегодня оба варианта показали бóльшую производительность, но с прежним соотношением: 9 к 12.
Либо можно попытаться ускорить само каталистовое приложение (Как? Менять шаблонизатор? Оптимизировать SQL-запросы? Апгрейдить железо? Выбрасывать бэкенд на отдельную машину?) — и не забивать себе голову подобными соревнованиями.
upd/21.01.2010: Более точное тестирование показало равную производительность апача и нгинкса.
no subject
Date: 2010-01-20 10:49 am (UTC)Как тестировал
Date: 2010-01-20 03:36 pm (UTC)То есть, например, так:
ab -n 1000 -c 50 -C имя_куки=значение http://host:port/path
no subject
Date: 2010-01-20 11:09 am (UTC)2. TT - один из самых медленных шаблонизаторов
3. Catalyst в отладочном режиме пишет тайминг, сразу видно, где тормоза.
4. Разносить фронт, бэк и SQL - хорошее решение. Если есть деньги.
По пунктам
Date: 2010-01-20 03:55 pm (UTC)уходит на шаблонизатор. Хотя та куча запросов, которую генерит
DBIx::Class, меня очень удивила: когда я писал запросы руками, я считал,
что десяток запросов — это чрезмерно много. А тут их число выходит
иногда за сотню (про
prefetchмне уже подсказали).Сейчас SQL-сервер с приложением сидят на одной машине — возможно, из-за
такого тесного соседства причина тормозов пока не в SQL.
2. Угу. Автор CTPP2 (
Результаты удручающие.
Но моментально перевести сайт c TT на CTPP не выйдет —
мы уже много всего настрогали на TT.
4. Денег не то, чтобы совсем нет (я надеюсь), но их трудно потратить.
SQL-сервер уже вынесли.
Попробую перенести базу туда и сравнить скорость.
Сейчас закончу тестирование nginx+чё-нибудь
(вроде, работает) —
попробую распараллеливание с выносом бэкендов на другие машины.
Re: По пунктам
Date: 2010-01-20 05:43 pm (UTC)Re: По пунктам
Date: 2010-01-20 05:45 pm (UTC)