Forum Webscript.Ru

Программирование => Perl => Тема начата: frenky от 06 Апреля 2006, 19:51:23

Название: FastCgiConfig
Отправлено: frenky от 06 Апреля 2006, 19:51:23
-killInterval n (300 seconds)
Determines how often the dynamic application instance killing policy is implemented within the process manager. Smaller numbers result in a more aggressive policy, larger numbers a less aggressive policy.


Какой параметр можно выставить чтобы в памяти не висели скрипты к которым не обращаються например  минуту ?
Название: FastCgiConfig
Отправлено: NeoNox от 07 Апреля 2006, 00:08:41
Цитировать
frenky:
Какой параметр можно выставить чтобы в памяти не висели скрипты к которым не обращаються например минуту?


-killInterval 60

Тюнинг fastcgi это тема отдельного разговора и лечение больного по емейлу не производится.
Название: FastCgiConfig
Отправлено: frenky от 07 Апреля 2006, 00:29:05
спасибо :) я так и подозревал

respect тебе

а есть советы по тюнингу?

может у тебя есть авторский конфиг? :О)
Название: FastCgiConfig
Отправлено: NeoNox от 07 Апреля 2006, 00:55:20
У меня есть более чем сотня конфигов, более чем от сотни клиентов. Но ни один из них тебе не подойдет. Строй свой конфиг сам, если будут вопросы - спрашивай.
Название: FastCgiConfig
Отправлено: frenky от 23 Июля 2006, 16:49:12
Вот такой конфиг в апаче:


AddHandler fastcgi-script .fpl
FastCgiIpcDir /var/run/fastcgi
FastCgiConfig -killInterval 10


но .fpl не хотят убиваться через 10 сек, а висят там оч долго

Возможно кто-то знает в чем проблема?
Название: FastCgiConfig
Отправлено: NeoNox от 24 Июля 2006, 11:33:01
Попробуй -autoUpdate добавить в вызов:
FastCgiConfig -killInterval 60 -autoUpdate
Хотя, и без него у меня эта конструкция работает.
Название: FastCgiConfig
Отправлено: frenky от 24 Июля 2006, 12:45:00
вобщем я в ужасе :( нифига не хочеть слушаться

главное на VPS (Virtual private server ) все работало а вот уже на реальном сервере нехочет :(
Название: FastCgiConfig
Отправлено: frenky от 24 Июля 2006, 12:58:16
я ставил
mod_fastcgi-2.4.0.tar

вот так:

[root@ tmp]# tar zxvf mod_fastcgi-2.4.0.tar.gz
[root@ tmp]# cd mod_fastcgi-2.4.0
[root@ mod_fastcgi-2.4.0]# apxs -o mod_fastcgi.so -c *.c
[root@ mod_fastcgi-2.4.0]# apxs -i -a -n fastcgi mod_fastcgi.so

ну и конфиг в апаче прописал может нужно ставить mod_fastcgi-2.4.2.tar ?

у тебя какйо стоит?
Название: FastCgiConfig
Отправлено: NeoNox от 24 Июля 2006, 13:13:27
Раньше mod_fastcgi-SNAP-0404142202.tar.gz на апач 1.3.х
На 2-й апач патченый 2.4.2(3)(можно найти патч на форуме разработчика, насколько я помню, он не официальный).
Название: FastCgiConfig
Отправлено: frenky от 24 Июля 2006, 13:43:13
поставил mod_fastcgi-2.4.2.tar  без изминений, потом
mod_fastcgi-SNAP-0404142202.tar , тоже ниче не изменилось.

Может нужно где-то права поставить? а то у меня такое ощущение что у FastCgiConfig нехватает прав для реализации.... я уде не знаю что бумать
Название: FastCgiConfig
Отправлено: frenky от 24 Июля 2006, 13:44:03
а можно както проверить работу этого конфига в ручную?
Название: FastCgiConfig
Отправлено: NeoNox от 24 Июля 2006, 13:51:51
Покажи строку старта FastCgi сервиса.

Цитировать
frenky:
а можно както проверить работу этого конфига в ручную?

В скрипте напиши лог событий, так и проверишь.
Название: FastCgiConfig
Отправлено: NeoNox от 24 Июля 2006, 13:52:47
Цитировать
frenky:
Может нужно где-то права поставить? а то у меня такое ощущение что у FastCgiConfig нехватает прав для реализации.

Если стратует FastCgi сервис - всего хватает. Иначе смотри в error_log
Название: FastCgiConfig
Отправлено: frenky от 24 Июля 2006, 13:54:09
Цитировать
В скрипте напиши лог событий, так и проверишь.


это как??? в каком?
Название: FastCgiConfig
Отправлено: NeoNox от 24 Июля 2006, 14:00:56
Цитировать
frenky:
это как??? в каком?

В своем, естественно, не в моем-же.
Есть конструкуия типа
while ($query = new CGI::Fast){ &do_something() }
Вот в &do_something() и выдавай в STDERR что и когда сделано.
Потом смотри в error_log.
Название: FastCgiConfig
Отправлено: frenky от 24 Июля 2006, 14:19:13
#!/usr/bin/perl -w

use CGI qw(:standard);
use CGI::Fast;

$COUNTER = 0;

while (new CGI::Fast) {

print header(-charset=>\'Windows-1251\');
open (STDERR, ">&STDOUT");
print $COUNTER;

$COUNTER++;
}

так пойдет?
Название: FastCgiConfig
Отправлено: NeoNox от 24 Июля 2006, 14:29:54
Цитировать
frenky:
так пойдет?

Может и подойдет, только как ты сделал вывод что
Цитировать

но .fpl не хотят убиваться через 10 сек, а висят там оч долго

с таким скриптом? В процессах посмотрел? Еще раз задам вопрос: Покажи строку старта FastCgi сервиса.
Название: FastCgiConfig
Отправлено: NeoNox от 24 Июля 2006, 14:31:33
Да, может ты на это не обратил внимание, процессы будут изменяться только(!) при вызове скрипта, иначе просто в ветку "new CGI::Fast" не попадет, и соответственно не будет обработаны дериктивы FastCgi.
Название: FastCgiConfig
Отправлено: frenky от 24 Июля 2006, 14:32:20
Вот мои процессы

colo2713# ps -ax
  PID  TT  STAT      TIME COMMAND
    0  ??  WLs    0:00.00 [swapper]
    1  ??  ILs    0:00.01 /sbin/init --
    2  ??  DL     0:02.07 [g_event]
    3  ??  DL     0:03.48 [g_up]
    4  ??  DL     0:03.47 [g_down]
    5  ??  DL     0:00.00 [thread taskq]
    6  ??  DL     0:00.00 [acpi_task0]
    7  ??  DL     0:00.00 [acpi_task1]
    8  ??  DL     0:00.00 [acpi_task2]
    9  ??  DL     0:00.00 [kqueue taskq]
   10  ??  DL     0:00.00 [ktrace]
   11  ??  RL   1235:33.53 [idle]
   12  ??  WL     0:00.00 [irq1: atkbd0]
   13  ??  WL     0:00.00 [irq0:]
   14  ??  WL     0:00.00 [irq3: sio1]
   15  ??  WL     0:00.00 [irq4: sio0]
   16  ??  WL     0:00.00 [irq5:]
   17  ??  WL     0:00.00 [irq6: fdc0]
   18  ??  WL     0:00.00 [irq7:]
   19  ??  WL     0:00.00 [irq8:]
   20  ??  WL     0:00.00 [irq9: acpi0]
   21  ??  WL     0:00.00 [irq10:]
   22  ??  WL     0:00.00 [irq11:]
   23  ??  WL     0:00.00 [irq12:]
   24  ??  WL     0:00.00 [irq13:]
   25  ??  WL     0:00.00 [irq14: ata0]
   26  ??  WL     0:00.00 [irq15: ata1]
   27  ??  WL     0:04.14 [irq16: bge0 uhci0]
   28  ??  WL     0:00.00 [irq17:]
   29  ??  WL     0:01.81 [irq18: atapci1]
   30  ??  WL     0:00.00 [irq19: uhci1]
   31  ??  WL     0:00.00 [irq20:]
   32  ??  WL     0:00.00 [irq21: bge1]
   33  ??  WL     0:00.00 [irq22:]
   34  ??  WL     0:00.00 [irq23: ehci0]
   35  ??  WL     0:00.00 [irq24:]
   36  ??  WL     0:00.00 [irq25:]
   37  ??  WL     0:00.00 [irq26:]
   38  ??  WL     0:00.00 [irq27:]
   39  ??  WL     0:00.00 [irq28:]
   40  ??  WL     0:00.00 [irq29:]
   41  ??  WL     0:00.00 [irq30:]
   42  ??  WL     0:00.00 [irq31:]
   43  ??  WL     0:00.00 [irq32:]
   44  ??  WL     0:00.00 [irq33:]
   45  ??  WL     0:00.00 [irq34:]
   46  ??  WL     0:00.00 [irq35:]
   47  ??  WL     0:00.00 [irq36:]
   48  ??  WL     0:00.00 [irq37:]
   49  ??  WL     0:00.00 [irq38:]
   50  ??  WL     0:00.00 [irq39:]
   51  ??  WL     0:00.00 [irq40:]
   52  ??  WL     0:00.00 [irq41:]
   53  ??  WL     0:00.00 [irq42:]
   54  ??  WL     0:00.00 [irq43:]
   55  ??  WL     0:00.00 [irq44:]
   56  ??  WL     0:00.00 [irq45:]
   57  ??  WL     0:00.00 [irq46:]
   58  ??  WL     0:00.00 [irq47:]
   59  ??  WL     1:59.97 [swi4: clock sio]
   60  ??  WL     0:00.00 [swi3: vm]
   61  ??  WL     0:03.70 [swi1: net]
   62  ??  DL     0:02.51 [yarrow]
   63  ??  WL     0:00.00 [swi6: task queue]
   64  ??  WL     0:00.00 [swi6:+]
   65  ??  WL     0:00.00 [swi5:+]
   66  ??  WL     0:00.00 [swi2: cambio]
   67  ??  DL     0:00.00 [usb0]
   68  ??  DL     0:00.00 [usbtask]
   69  ??  DL     0:00.00 [usb1]
   70  ??  DL     0:00.00 [usb2]
   71  ??  DL     0:00.19 [fdc0]
   72  ??  WL     0:00.00 [swi0: sio]
   73  ??  DL     0:00.05 [pagedaemon]
   74  ??  DL     0:00.00 [vmdaemon]
   75  ??  DL     0:05.73 [pagezero]
   76  ??  DL     0:00.22 [bufdaemon]
   77  ??  DL     0:59.30 [syncer]
   78  ??  DL     0:00.21 [vnlru]
   79  ??  IL     0:00.00 [nfsiod 0]
   80  ??  IL     0:00.00 [nfsiod 1]
   81  ??  IL     0:00.00 [nfsiod 2]
   82  ??  IL     0:00.00 [nfsiod 3]
   83  ??  DL     0:02.22 [schedcpu]
  314  ??  Is     0:00.00 /sbin/devd
  347  ??  Ss     0:00.15 /usr/sbin/syslogd -l /var/run/log -l /var/named/var/run/log -s
  412  ??  Ss     0:00.13 /usr/sbin/named -u bind -t /var/named
  488  ??  Ss     0:00.06 /usr/sbin/usbd
  529  ??  Is     0:00.01 /usr/sbin/sshd
  534  ??  Ss     0:01.12 sendmail: accepting connections (sendmail)
  548  ??  Is     0:00.14 /usr/sbin/cron -s
  569  ??  Ss     0:11.90 /usr/local/sbin/dovecot
  600  ??  S      0:01.20 dovecot-auth
  602  ??  S      0:01.26 pop3-login
  604  ??  S      0:01.35 imap-login
  605  ??  S      0:01.22 imap-login
  606  ??  S      0:01.20 imap-login
  610  ??  Ss     0:00.35 proftpd: (accepting connections) (proftpd)
  682  ??  S      1:19.91 /usr/local/libexec/mysqld --defaults-extra-file=/var/db/mysql/my.cnf --basedir=/usr/local --datadir=/var/db/mysql
  753  ??  S      0:01.04 /usr/local/ispmgr/bin//ispmgr
 1656  ??  S      0:01.17 pop3-login
 6502  ??  Ss     0:00.66 sshd: root@ttyp0 (sshd)
 8060  ??  Ss     0:00.23 /usr/local/sbin/httpd -DSSL
 8062  ??  I      0:00.01 /usr/local/sbin/httpd -DSSL
 8063  ??  S      0:00.02 /usr/local/sbin/httpd -DSSL
 8064  ??  S      0:00.01 /usr/local/sbin/httpd -DSSL
 8065  ??  S      0:00.01 /usr/local/sbin/httpd -DSSL
 8066  ??  S      0:00.02 /usr/local/sbin/httpd -DSSL
 8067  ??  S      0:00.01 /usr/local/sbin/httpd -DSSL
 8069  ??  S      0:00.01 /usr/local/sbin/httpd -DSSL
 8070  ??  S      0:00.02 /usr/local/sbin/httpd -DSSL
 8071  ??  S      0:00.01 /usr/local/sbin/httpd -DSSL
 8072  ??  S      0:00.01 /usr/local/sbin/httpd -DSSL
 8073  ??  S      0:00.09 /usr/local/sbin/httpd -DSSL
 8118  ??  I      0:00.06 /usr/bin/perl -w /home/fdm.kiev.ua/data/cgi-bin/fd/1.fpl (perl5.8.7)
 8146  ??  S      0:00.01 /usr/local/sbin/httpd -DSSL
 8162  ??  S      0:00.01 pop3-login
 8167  ??  I      0:00.10 /usr/local/bin/perl -w /home/fdm.kiev.ua/data/cgi-bin/fd/index.fpl
  671  v0  Is+    0:00.00 /usr/libexec/getty Pc ttyv0
  672  v1  Is+    0:00.00 /usr/libexec/getty Pc ttyv1
  673  v2  Is+    0:00.00 /usr/libexec/getty Pc ttyv2
  674  v3  Is+    0:00.00 /usr/libexec/getty Pc ttyv3
  675  v4  Is+    0:00.00 /usr/libexec/getty Pc ttyv4
  676  v5  Is+    0:00.00 /usr/libexec/getty Pc ttyv5
  677  v6  Is+    0:00.00 /usr/libexec/getty Pc ttyv6
  678  v7  Is+    0:00.00 /usr/libexec/getty Pc ttyv7
  589 con- I      0:00.01 /bin/sh /usr/local/bin/mysqld_safe --defaults-extra-file=/var/db/mysql/my.cnf --user=mysql --datadir=/var/db/mysql
 6505  p0  Ss     0:00.24 -csh (csh)
 8169  p0  R+     0:00.00 ps -ax

 старта FastCgi сервиса я не вижу в єтих процессах

хотя тестовый скриптик для fastcgi работет, счетчик увеличиваеться
Название: FastCgiConfig
Отправлено: frenky от 24 Июля 2006, 14:33:42
Цитировать
NeoNox:
Да, может ты на это не обратил внимание, процессы будут изменяться только(!) при вызове скрипта, иначе просто в ветку "new CGI::Fast" не попадет, и соответственно не будет обработаны дериктивы FastCgi.


тоесть он убьеться когда к нему обратьсятья через 60 сек????

ниче не понимаю
Название: FastCgiConfig
Отправлено: NeoNox от 24 Июля 2006, 16:07:01
Цитировать
frenky:
старта FastCgi сервиса я не вижу в єтих процессах

а зря:
 8167 ?? I 0:00.10 /usr/local/bin/perl -w /home/fdm.kiev.ua/data/cgi-bin/fd/index.fpl
Покажи что в error_log, похоже он у тебя динамически запускается и вся эта ерунда с killInterval просто игнорируется


Цитировать
frenky:
тоесть он убьеться когда к нему обратьсятья через 60 сек????

Да. Я не могу понять зачем ты этот огород строишь, можешь пояснить?
Название: FastCgiConfig
Отправлено: frenky от 24 Июля 2006, 16:18:31
в логах чисто
Название: FastCgiConfig
Отправлено: frenky от 24 Июля 2006, 16:19:30
Цитировать
frenky:
Да. Я не могу понять зачем ты этот огород строишь, можешь пояснить?


Ну хочу настроить нормальную работу fastcgi
Название: FastCgiConfig
Отправлено: frenky от 24 Июля 2006, 16:22:24
ну так он и должен динамически запускаться я его как DSO ставил, а вот почему игнорит конфиг не пойму, ведь я уже это все проделывал на VPS и все работало, скрипты сами выгружались из память после killInterval
Название: FastCgiConfig
Отправлено: NeoNox от 24 Июля 2006, 16:25:25
Цитировать
frenky:
Ну хочу настроить нормальную работу fastcgi

Нормальная работа это когда созданный процесс(ы) постоянно висят в памяти. Создание процесса по времени более тяжелая процедура чем исполнение простого cgi сценария.

Как поднять сервис читать тут:
http://fastcgi.com/mod_fastcgi/docs/mod_fastcgi.html#FastCgiServer
Цитировать
frenky:
в логах чисто

а должен быть варнинг что сервис стартанул, типа такого
[warn] FastCGI: server "/path_to/test.fcgi" started (pid xxx)
Название: FastCgiConfig
Отправлено: frenky от 24 Июля 2006, 16:32:13
Смори [warn] FastCGI: server "/path_to/test.fcgi" started (pid xxx)  -- это когда запускаеться стационарный а не димамический сервер, тоесть в конфиге я должен прописать старт на все скрипты .fpl которые мне нужны (для стационарного)

Я же хочу следующего:

.fpl скрипт грузиться в память и висит там токо есл кнему обратился юзер а если юзер перестал работать то повисев определенное время выгружаеться.

Это все для того чтобы:
нарпимер одновременно 100 человек запускают 1.fpl поскольку .fpl не может один одновременно справиться с таким числом обращений запускаеться копия его тоесть в памяти уже будут висеться например 100 процессов 1.fpl
после того  как некотрые юзера закончили работу некоторые копии .fpl выгружаються
Название: FastCgiConfig
Отправлено: NeoNox от 24 Июля 2006, 17:33:54
frenky и зачем тебе FastCgi в таком случае? Что ты хочешь выиграть?

Цитировать
frenky:
.fpl скрипт грузиться в память и висит там токо есл кнему обратился юзер а если юзер перестал работать то повисев определенное время выгружаеться.

По скорости работы это будет медленнее компилляции обычного cgi скрипта.

Цитировать
frenky:
нарпимер одновременно 100 человек запускают 1.fpl поскольку .fpl не может один одновременно справиться с таким числом обращений запускаеться копия его тоесть в памяти уже будут висеться например 100 процессов 1.fpl

Каким образом они будут там висеть?! Это первый вопрос. Второй заключается в том, что ты завесишь сервер неконтролируемыми процессами, просто "закончится" память.

На самом деле, динамическая загрузка так и работает как ты описал, у меня нет мыслей почему эти процессы у тебя не умирают после отработки реквеста.
Название: FastCgiConfig
Отправлено: frenky от 24 Июля 2006, 17:57:03
тоесь какой сделать вывод?

не мучиться и сделать следующее:



AddHandler fastcgi-script .fpl
FastCgiIpcDir /var/run/fastcgi
FastCgiConfig -killInterval 10
FastCgiServer путь/frviezd.fpl -processes 1




лишнии копии процессов будут выгружаться из памяти?
Название: FastCgiConfig
Отправлено: NeoNox от 24 Июля 2006, 18:12:51
В принципе, самое трудоемкое я бы поставил в процессы, только не в один процесс а несколько. А остальное оставил как есть или пусть динамически подгружается.
Название: FastCgiConfig
Отправлено: frenky от 24 Июля 2006, 18:23:10
ok сенкс, так и буду делать


хотя до сих пор оч странно, почему не слушаеться FastCgiConf

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