Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> mod_perl + Catalyst для хостинга 
:(
    Опции темы
gcc
Дата 13.12.2010, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



нужно прикрутить к серверам mod_perl + Catalyst

проблема: в том что при каждом http запросе, Catalyst полностью перегружает все модули и притормаживает 1-1.5 сек!

как бы исправить, что он не перегружался все время по новой?
тут надо в конфиге что-то поменять?

конфиг основной:
Код

srv0# more /usr/local/etc/apache22/Includes/httpd-perl.conf
# mod_perl

LoadModule perl_module libexec/apache22/mod_perl.so

<IfModule perl_module>
        AddHandler perl-script .pl
        PerlResponseHandler ModPerl::Registry
</IfModule>



.htaccess   
Код

SetHandler perl-script
PerlSendHeader On
PerlRequire /home/h14364/data/www/h14364.srv3.test-hf.ru/startup.pl
#PerlRequire /home/h14364/data/www/h14364.srv3.test-hf.ru/MyApp/lib/MyApp.pm

#PerlSwitches -I/home/h14364/data/www/h14364.srv3.test-hf.ru/MyApp/lib
#PerlModule MyApp
PerlResponseHandler MyApp



startup.pl      
Код

use lib qw(/home/h14364/data/www/h14364.srv3.test-hf.ru/MyApp/lib /home/h14364/data/www/h14364.srv3.test-hf.ru/MyApp/lib/-local); 1;



в итого: в отладке видно, что он все время перегружается полностью. как бут-то работает в CGI и в top, видно что грузит CPU сервера

сайт тестовый: http://h14364.srv3.test-hf.ru/

отладка:
Код
[Sun Dec 12 22:04:11 2010] [notice] Apache/2.2.17 (FreeBSD) mod_ssl/2.2.17 OpenSSL/0.9.8n PHP/5.2.15 with Suhosin-Patch mod_perl/2.0.4 Perl/v5.10.1 configured -- resuming normal operations
Subroutine end redefined at /home/h14364/data/www/h14364.srv3.test-hf.ru/MyApp/lib/MyApp/Controller/Root.pm line 92.
[debug] Debug messages enabled
[debug] Statistics enabled
[debug] Loaded plugins:
.----------------------------------------------------------------------------.
| Catalyst::Plugin::ConfigLoader  0.30                                       |
'----------------------------------------------------------------------------'

[debug] Loaded dispatcher "Catalyst::Dispatcher"
[debug] Loaded engine "Catalyst::Engine::Apache2::MP20"
[debug] Found home "/home/h14364/data/www/h14364.srv3.test-hf.ru/MyApp"
[debug] Loaded Config "/home/h14364/data/www/h14364.srv3.test-hf.ru/MyApp/myapp.conf"
[debug] Loaded components:
.-----------------------------------------------------------------+----------.
| Class                                                           | Type     |
+-----------------------------------------------------------------+----------+
| MyApp::Controller::Root                                         | instance |
'-----------------------------------------------------------------+----------'

[debug] Loaded Private actions:
.----------------------+--------------------------------------+--------------.
| Private              | Class                                | Method       |
+----------------------+--------------------------------------+--------------+
| /privet              | MyApp::Controller::Root              | privet       |
| /default             | MyApp::Controller::Root              | default      |
| /end                 | MyApp::Controller::Root              | end          |
| /index               | MyApp::Controller::Root              | index        |
'----------------------+--------------------------------------+--------------'

[debug] Loaded Path actions:
.-------------------------------------+--------------------------------------.
| Path                                | Private                              |
+-------------------------------------+--------------------------------------+
| /                                   | /index                               |
| /                                   | /default                             |
| /privet                             | /privet                              |
'-------------------------------------+--------------------------------------'

[info] MyApp powered by Catalyst 5.80029
[info] *** Request 1 (1.000/s) [60312] [Sun Dec 12 22:16:44 2010] ***
[debug] "GET" request for "privet/sdf" from "193.201.81.18"
[debug] Path is "privet"
[debug] Arguments are "dsfsdf"
[debug]
[info]
[warn]
[error]
[fatal]
[debug] Response Code: unknown; Content-Type: text/html; charset=utf-8; Content-Length: 5665
[info] Request took 0.012458s (80.270/s)
.------------------------------------------------------------+-----------.
| Action                                                     | Time      |
+------------------------------------------------------------+-----------+
| /privet                                                    | 0.000879s |
| /end                                                       | 0.000926s |
'------------------------------------------------------------+-----------'

Subroutine end redefined at /home/h14364/data/www/h14364.srv3.test-hf.ru/MyApp/lib/MyApp/Controller/Root.pm line 92.
[debug] Debug messages enabled
[debug] Statistics enabled
[debug] Loaded plugins:
.----------------------------------------------------------------------------.
| Catalyst::Plugin::ConfigLoader  0.30                                       |
'----------------------------------------------------------------------------'

[debug] Loaded dispatcher "Catalyst::Dispatcher"
[debug] Loaded engine "Catalyst::Engine::Apache2::MP20"
[debug] Found home "/home/h14364/data/www/h14364.srv3.test-hf.ru/MyApp"
[debug] Loaded Config "/home/h14364/data/www/h14364.srv3.test-hf.ru/MyApp/myapp.conf"
[debug] Loaded components:
.-----------------------------------------------------------------+----------.
| Class                                                           | Type     |
+-----------------------------------------------------------------+----------+
| MyApp::Controller::Root                                         | instance |
'-----------------------------------------------------------------+----------'

[debug] Loaded Private actions:
.----------------------+--------------------------------------+--------------.
| Private              | Class                                | Method       |
+----------------------+--------------------------------------+--------------+
| /privet              | MyApp::Controller::Root              | privet       |
| /default             | MyApp::Controller::Root              | default      |
| /end                 | MyApp::Controller::Root              | end          |
| /index               | MyApp::Controller::Root              | index        |
'----------------------+--------------------------------------+--------------'

[debug] Loaded Path actions:
.-------------------------------------+--------------------------------------.
| Path                                | Private                              |
+-------------------------------------+--------------------------------------+
| /                                   | /index                               |
| /                                   | /default                             |
| /privet                             | /privet                              |
'-------------------------------------+--------------------------------------'

[info] MyApp powered by Catalyst 5.80029
Subroutine end redefined at /home/h14364/data/www/h14364.srv3.test-hf.ru/MyApp/lib/MyApp/Controller/Root.pm line 92.
[debug] Debug messages enabled
[debug] Statistics enabled
[debug] Loaded plugins:
.----------------------------------------------------------------------------.
| Catalyst::Plugin::ConfigLoader  0.30                                       |
'----------------------------------------------------------------------------'

[debug] Loaded dispatcher "Catalyst::Dispatcher"
[debug] Loaded engine "Catalyst::Engine::Apache2::MP20"
[debug] Found home "/home/h14364/data/www/h14364.srv3.test-hf.ru/MyApp"
[debug] Loaded Config "/home/h14364/data/www/h14364.srv3.test-hf.ru/MyApp/myapp.conf"
[debug] Loaded components:
.-----------------------------------------------------------------+----------.
| Class                                                           | Type     |
+-----------------------------------------------------------------+----------+
| MyApp::Controller::Root                                         | instance |
'-----------------------------------------------------------------+----------'

[debug] Loaded Private actions:
.----------------------+--------------------------------------+--------------.
| Private              | Class                                | Method       |
+----------------------+--------------------------------------+--------------+
| /privet              | MyApp::Controller::Root              | privet       |
| /default             | MyApp::Controller::Root              | default      |
| /end                 | MyApp::Controller::Root              | end          |
| /index               | MyApp::Controller::Root              | index        |
'----------------------+--------------------------------------+--------------'

[debug] Loaded Path actions:
.-------------------------------------+--------------------------------------.
| Path                                | Private                              |
+-------------------------------------+--------------------------------------+
| /                                   | /index                               |
| /                                   | /default                             |
| /privet                             | /privet                              |
'-------------------------------------+--------------------------------------'

[info] MyApp powered by Catalyst 5.80029
Subroutine end redefined at /home/h14364/data/www/h14364.srv3.test-hf.ru/MyApp/lib/MyApp/Controller/Root.pm line 92.
[debug] Debug messages enabled
[debug] Statistics enabled
[debug] Loaded plugins:
.----------------------------------------------------------------------------.
| Catalyst::Plugin::ConfigLoader  0.30                                       |
'----------------------------------------------------------------------------'

[debug] Loaded dispatcher "Catalyst::Dispatcher"
[debug] Loaded engine "Catalyst::Engine::Apache2::MP20"
[debug] Found home "/home/h14364/data/www/h14364.srv3.test-hf.ru/MyApp"
[debug] Loaded Config "/home/h14364/data/www/h14364.srv3.test-hf.ru/MyApp/myapp.conf"
[debug] Loaded components:
.-----------------------------------------------------------------+----------.
| Class                                                           | Type     |
+-----------------------------------------------------------------+----------+
| MyApp::Controller::Root                                         | instance |
'-----------------------------------------------------------------+----------'

[debug] Loaded Private actions:
.----------------------+--------------------------------------+--------------.
| Private              | Class                                | Method       |
+----------------------+--------------------------------------+--------------+
| /privet              | MyApp::Controller::Root              | privet       |
| /default             | MyApp::Controller::Root              | default      |
| /end                 | MyApp::Controller::Root              | end          |
| /index               | MyApp::Controller::Root              | index        |
'----------------------+--------------------------------------+--------------'

[info] MyApp powered by Catalyst 5.80029
[info] *** Request 1 (1.000/s) [60308] [Sun Dec 12 22:17:34 2010] ***
[debug] "GET" request for "privet/lissyara" from "193.201.81.18"
[debug] Path is "privet"
[debug] Arguments are "lissyara"
[debug]
[info]
[warn]
[error]
[fatal]
[debug] Response Code: unknown; Content-Type: text/html; charset=utf-8; Content-Length: 5665
[info] Request took 0.013270s (75.358/s)
.------------------------------------------------------------+-----------.
| Action                                                     | Time      |
+------------------------------------------------------------+-----------+
| /privet                                                    | 0.000955s |
| /end                                                       | 0.000967s |
'------------------------------------------------------------+-----------'

Subroutine end redefined at /home/h14364/data/www/h14364.srv3.test-hf.ru/MyApp/lib/MyApp/Controller/Root.pm line 92.
[debug] Debug messages enabled
[debug] Statistics enabled
[debug] Loaded plugins:
.----------------------------------------------------------------------------.
| Catalyst::Plugin::ConfigLoader  0.30                                       |
'----------------------------------------------------------------------------'

[debug] Loaded dispatcher "Catalyst::Dispatcher"
[debug] Loaded engine "Catalyst::Engine::Apache2::MP20"
[debug] Found home "/home/h14364/data/www/h14364.srv3.test-hf.ru/MyApp"
[debug] Loaded Config "/home/h14364/data/www/h14364.srv3.test-hf.ru/MyApp/myapp.conf"
[debug] Loaded components:
.-----------------------------------------------------------------+----------.
| Class                                                           | Type     |
+-----------------------------------------------------------------+----------+
| MyApp::Controller::Root                                         | instance |
'-----------------------------------------------------------------+----------'

[debug] Loaded Private actions:
.----------------------+--------------------------------------+--------------.
| Private              | Class                                | Method       |
+----------------------+--------------------------------------+--------------+
| /privet              | MyApp::Controller::Root              | privet       |
| /default             | MyApp::Controller::Root              | default      |
| /end                 | MyApp::Controller::Root              | end          |
| /index               | MyApp::Controller::Root              | index        |
'----------------------+--------------------------------------+--------------'

[debug] Loaded Path actions:
.-------------------------------------+--------------------------------------.
| Path                                | Private                              |
+-------------------------------------+--------------------------------------+
| /                                   | /index                               |
| /                                   | /default                             |
| /privet                             | /privet                              |
'-------------------------------------+--------------------------------------'

[info] MyApp powered by Catalyst 5.80029
Subroutine end redefined at /home/h14364/data/www/h14364.srv3.test-hf.ru/MyApp/lib/MyApp/Controller/Root.pm line 92.
[debug] Debug messages enabled
[debug] Statistics enabled
[debug] Loaded plugins:
.----------------------------------------------------------------------------.
| Catalyst::Plugin::ConfigLoader  0.30                                       |
'----------------------------------------------------------------------------'

[debug] Loaded dispatcher "Catalyst::Dispatcher"
[debug] Loaded engine "Catalyst::Engine::Apache2::MP20"
[debug] Found home "/home/h14364/data/www/h14364.srv3.test-hf.ru/MyApp"
[debug] Loaded Config "/home/h14364/data/www/h14364.srv3.test-hf.ru/MyApp/myapp.conf"
[debug] Loaded components:
.-----------------------------------------------------------------+----------.
| Class                                                           | Type     |
+-----------------------------------------------------------------+----------+
| MyApp::Controller::Root                                         | instance |
'-----------------------------------------------------------------+----------'

[debug] Loaded Private actions:
.----------------------+--------------------------------------+--------------.
| Private              | Class                                | Method       |
+----------------------+--------------------------------------+--------------+
| /privet              | MyApp::Controller::Root              | privet       |
| /default             | MyApp::Controller::Root              | default      |
| /end                 | MyApp::Controller::Root              | end          |
| /index               | MyApp::Controller::Root              | index        |
'----------------------+--------------------------------------+--------------'

[debug] Loaded Path actions:
.-------------------------------------+--------------------------------------.
| Path                                | Private                              |
+-------------------------------------+--------------------------------------+
| /                                   | /index                               |
| /                                   | /default                             |
| /privet                             | /privet                              |
'-------------------------------------+--------------------------------------'

[info] MyApp powered by Catalyst 5.80029



как бы исправить, что он не перегружался все время по новой?
тут надо в конфиге что-то поменять?



Это сообщение отредактировал(а) gcc - 13.12.2010, 14:55
PM WWW ICQ Skype GTalk Jabber   Вверх
ginnie
Дата 13.12.2010, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

Репутация: 38
Всего: 49



gcc, к сожалению, нет опыта с Catalyst'ом, поэтому дам общий совет: обрати внимание на PID процесса, проверь, что модули каждый раз компилируются внутри одного процесса httpd, т.к. в приведенном логе данные из разных процессов (60312 и 60308).

Это сообщение отредактировал(а) ginnie - 13.12.2010, 19:00


--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
gcc
Дата 13.12.2010, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



у меня на сервер, он не перегружает, но pid разные, может это не влияет...?

Код

info] *** Request 1 (0.001/s) [80052] [Fri Oct 29 08:45:56 2010] ***
[debug] "GET" request for "robots.txt" from "67.195.37.162"
[debug] Arguments are "robots.txt"
[debug] Redirecting to "http://lissyara.org.ua/robots.txt"
[info] Request took 0.074456s (13.431/s)
.------------------------------------------------------------+-----------.
| Action                                                     | Time      |
+------------------------------------------------------------+-----------+
| /begin                                                     | 0.006789s |
| /end                                                       | 0.001566s |
'------------------------------------------------------------+-----------'

[info] *** Request 1 (0.001/s) [80046] [Fri Oct 29 08:45:57 2010] ***
[debug] "GET" request for "robots.txt" from "67.195.37.162"
[debug] Arguments are "robots.txt"
[info] Request took 0.082740s (12.086/s)
.------------------------------------------------------------+-----------.
| Action                                                     | Time      |
+------------------------------------------------------------+-----------+
| /begin                                                     | 0.007047s |
| /default                                                   | 0.000952s |
| /end                                                       | 0.001735s |
'------------------------------------------------------------+-----------'






только что я раскомментировал в .htaccess   
Код

#PerlModule MyApp


и сейчас в top уже не видно процесса и НЕ видно как грузится CPU!

НО в отладке он опять пишет, что перегружает полностью...! т.е. точно не понтяно...

кажется, что сейчас CPU уже не грузит.... но точно не знаю...
вообщем, буду пробовать, дальше...



Это сообщение отредактировал(а) gcc - 13.12.2010, 19:19
PM WWW ICQ Skype GTalk Jabber   Вверх
chorny
Дата 14.12.2010, 06:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 27.7.2009
Где: Молдавия

Репутация: нет
Всего: нет



Из описания ModPerl::Registry: "Run unaltered CGI scripts persistently under mod_perl". Судя по http://search.cpan.org/perldoc?Catalyst::E...::Apache2::MP20 , использовать ModPerl::Registry не рекомендуется.

Лучше всего спросить на IRC канале Catalyst'а.

PM MAIL WWW   Вверх
NuINu
Дата 14.12.2010, 18:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 131
Регистрация: 19.7.2008

Репутация: 5
Всего: 6



PM MAIL   Вверх
gcc
Дата 14.12.2010, 22:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



NuINu

если тут в коде по пути /srv/www/vhosts/test/cgi-bin/lib будет ошибка (при котором perl не будет компилировать), то apache вообще не загрузится!
Код

PerlSwitches -I/srv/www/vhosts/test/cgi-bin/lib


у меня именно так написано, НО в данном случае я рассматриваю хостинг, где нужно чтобы весь апача не упал, работал в случае ошибок в коде...
...или я не понял что-то?

ЗЫ: конфиг который в первом посте, вродебы уже работает, и CPU не грузит (хотя конфиг почему перезаписывает, но это не важно, наверное)


Это сообщение отредактировал(а) gcc - 14.12.2010, 22:56
PM WWW ICQ Skype GTalk Jabber   Вверх
gcc
Дата 2.1.2011, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



НЕТ,  эта проблема еще есть!!

т.е. он просто перезагружает всё! весь каталист

хотя сложно сказать, в top от пользователя я не вижу чтобы было замедление...

НО например, картинки он отдает через mod_perl (Dispatch Catalyst) и видно какое-то замедление:

на сервере где картинки идут через mod_perl, такого замделения нету!

вот http://peterhost.ru/wiki/Perl-приложения/
peterhost предоставляет хостинг для каталиста, где бы узнать какой там конфиг?

как настроить для хостинга?

какие тут варианты?

Добавлено @ 16:58
NuINu

если прописать путь к модулям  через PerlSwitches и если в этих модулях будет ошибку, то apache не загрузится!
и если нужно изменять модули, то надо apache перегружать...

....это для хостинга не подходит? или я не понял?

Это сообщение отредактировал(а) gcc - 3.1.2011, 06:44
PM WWW ICQ Skype GTalk Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0852 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.