ActivePerl в Windows / проблемы с производительностью Apache - PullRequest
0 голосов
/ 08 июня 2011

Я хотел бы попросить вас о помощи. В нашей компании мы установили Bugzilla 4.0 на Windows-машину. Для запуска perl мы в настоящее время используем ActivePerl.

Проблема в том, что около 50 пользователей периодически запрашивают веб-сервис Bugzilla, а сервер не может принять эту нагрузку. Мы выяснили, что это вызвано perl.exe, который запускается при каждом запросе. На пиках нагрузка на серверы составляет 90%.

Вы когда-нибудь сталкивались с такими проблемами? Есть ли какая-нибудь возможная конфигурация, которую мы можем сделать, чтобы улучшить производительность?

Мы используем: Apache 2.2.17 и ActivePerl 5.8.9 b829. Заранее большое спасибо, это доставляет нам (особенно мне) массу хлопот.

Ответы [ 2 ]

2 голосов
/ 08 июня 2011

Это довольно распространенная проблема по мере роста сайтов.И это не ограничивается Perl.Есть решения.Как упомянул один человек, есть mod_perl, который по сути устанавливается как модуль Apache.Его можно использовать в простой версии через Apache :: Registry, или вы можете пройти весь путь, написав компоненты, которые взаимодействуют с API Apache на каждом этапе запроса.Какой бы подход вы ни использовали для mod_perl, есть несколько общих замечаний: это постоянный процесс, означающий (в простых терминах), что Perl остается резидентным от одного запроса к следующему, чтобы исключить затраты на запуск.Сценарии CGI часто не могут быть перенесены непосредственно в mod_perl без некоторой очистки и рефакторинга.Так как скрипт выполняется в постоянной среде, глобальные переменные не сбрасываются между запросами, например.Есть целый список «ошибок», которые нужно преодолеть.С этой целью Apache :: Registry несколько проще в среде mod_perl за счет отсутствия 100% мощности, которую может обеспечить программирование для API напрямую.Тем не менее, это довольно хороший компромисс.

Другим вариантом будет FastCGI, о котором вы можете прочитать на сайте FastCGI.

Хорошо написанные CGI-скрипты могут быть портированным на mod_perl или FastCGI с некоторыми усилиями.По этой причине это, вероятно, наименее болезненные подходы.Некоторые сценарии могут быть преобразованы с очень маленькой очисткой.Другим может потребоваться много работы, но это все еще возможно.

К счастью, в CPAN есть множество полезных модулей, которые помогут вам использовать mod_perl или FastCGI.Например, в иерархии Apache :: * на CPAN вы найдете множество инструментов, предназначенных для работы с mod_perl.Что касается FastCGI, вы даже найдете модули, связанные с Catalyst и Mojolicious, которые помогут объединить два, хотя последние два предложения, вероятно, потребуют некоторого реального рефакторинга.

Я обнаружил, что Practical mod_perl будет полезен в качестве начальноготочка (книга О'Рейли).

0 голосов
/ 08 июня 2011

Пища для размышлений: mod_perl

...