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