Forum Webscript.Ru
Программирование => Perl => Тема начата: 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.
Какой параметр можно выставить чтобы в памяти не висели скрипты к которым не обращаються например минуту ?
-
frenky:
Какой параметр можно выставить чтобы в памяти не висели скрипты к которым не обращаються например минуту?
-killInterval 60
Тюнинг fastcgi это тема отдельного разговора и лечение больного по емейлу не производится.
-
спасибо :) я так и подозревал
respect тебе
а есть советы по тюнингу?
может у тебя есть авторский конфиг? :О)
-
У меня есть более чем сотня конфигов, более чем от сотни клиентов. Но ни один из них тебе не подойдет. Строй свой конфиг сам, если будут вопросы - спрашивай.
-
Вот такой конфиг в апаче:
AddHandler fastcgi-script .fpl
FastCgiIpcDir /var/run/fastcgi
FastCgiConfig -killInterval 10
но .fpl не хотят убиваться через 10 сек, а висят там оч долго
Возможно кто-то знает в чем проблема?
-
Попробуй -autoUpdate добавить в вызов:
FastCgiConfig -killInterval 60 -autoUpdate
Хотя, и без него у меня эта конструкция работает.
-
вобщем я в ужасе :( нифига не хочеть слушаться
главное на VPS (Virtual private server ) все работало а вот уже на реальном сервере нехочет :(
-
я ставил
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 ?
у тебя какйо стоит?
-
Раньше mod_fastcgi-SNAP-0404142202.tar.gz на апач 1.3.х
На 2-й апач патченый 2.4.2(3)(можно найти патч на форуме разработчика, насколько я помню, он не официальный).
-
поставил mod_fastcgi-2.4.2.tar без изминений, потом
mod_fastcgi-SNAP-0404142202.tar , тоже ниче не изменилось.
Может нужно где-то права поставить? а то у меня такое ощущение что у FastCgiConfig нехватает прав для реализации.... я уде не знаю что бумать
-
а можно както проверить работу этого конфига в ручную?
-
Покажи строку старта FastCgi сервиса.
frenky:
а можно както проверить работу этого конфига в ручную?
В скрипте напиши лог событий, так и проверишь.
-
frenky:
Может нужно где-то права поставить? а то у меня такое ощущение что у FastCgiConfig нехватает прав для реализации.
Если стратует FastCgi сервис - всего хватает. Иначе смотри в error_log
-
В скрипте напиши лог событий, так и проверишь.
это как??? в каком?
-
frenky:
это как??? в каком?
В своем, естественно, не в моем-же.
Есть конструкуия типа
while ($query = new CGI::Fast){ &do_something() }
Вот в &do_something() и выдавай в STDERR что и когда сделано.
Потом смотри в error_log.
-
#!/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++;
}
так пойдет?
-
frenky:
так пойдет?
Может и подойдет, только как ты сделал вывод что
но .fpl не хотят убиваться через 10 сек, а висят там оч долго
с таким скриптом? В процессах посмотрел? Еще раз задам вопрос: Покажи строку старта FastCgi сервиса.
-
Да, может ты на это не обратил внимание, процессы будут изменяться только(!) при вызове скрипта, иначе просто в ветку "new CGI::Fast" не попадет, и соответственно не будет обработаны дериктивы FastCgi.
-
Вот мои процессы
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 работет, счетчик увеличиваеться
-
NeoNox:
Да, может ты на это не обратил внимание, процессы будут изменяться только(!) при вызове скрипта, иначе просто в ветку "new CGI::Fast" не попадет, и соответственно не будет обработаны дериктивы FastCgi.
тоесть он убьеться когда к нему обратьсятья через 60 сек????
ниче не понимаю
-
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 сек????
Да. Я не могу понять зачем ты этот огород строишь, можешь пояснить?
-
в логах чисто
-
frenky:
Да. Я не могу понять зачем ты этот огород строишь, можешь пояснить?
Ну хочу настроить нормальную работу fastcgi
-
ну так он и должен динамически запускаться я его как DSO ставил, а вот почему игнорит конфиг не пойму, ведь я уже это все проделывал на VPS и все работало, скрипты сами выгружались из память после killInterval
-
frenky:
Ну хочу настроить нормальную работу fastcgi
Нормальная работа это когда созданный процесс(ы) постоянно висят в памяти. Создание процесса по времени более тяжелая процедура чем исполнение простого cgi сценария.
Как поднять сервис читать тут:
http://fastcgi.com/mod_fastcgi/docs/mod_fastcgi.html#FastCgiServerfrenky:
в логах чисто
а должен быть варнинг что сервис стартанул, типа такого
[warn] FastCGI: server "/path_to/test.fcgi" started (pid xxx)
-
Смори [warn] FastCGI: server "/path_to/test.fcgi" started (pid xxx) -- это когда запускаеться стационарный а не димамический сервер, тоесть в конфиге я должен прописать старт на все скрипты .fpl которые мне нужны (для стационарного)
Я же хочу следующего:
.fpl скрипт грузиться в память и висит там токо есл кнему обратился юзер а если юзер перестал работать то повисев определенное время выгружаеться.
Это все для того чтобы:
нарпимер одновременно 100 человек запускают 1.fpl поскольку .fpl не может один одновременно справиться с таким числом обращений запускаеться копия его тоесть в памяти уже будут висеться например 100 процессов 1.fpl
после того как некотрые юзера закончили работу некоторые копии .fpl выгружаються
-
frenky и зачем тебе FastCgi в таком случае? Что ты хочешь выиграть?
frenky:
.fpl скрипт грузиться в память и висит там токо есл кнему обратился юзер а если юзер перестал работать то повисев определенное время выгружаеться.
По скорости работы это будет медленнее компилляции обычного cgi скрипта.
frenky:
нарпимер одновременно 100 человек запускают 1.fpl поскольку .fpl не может один одновременно справиться с таким числом обращений запускаеться копия его тоесть в памяти уже будут висеться например 100 процессов 1.fpl
Каким образом они будут там висеть?! Это первый вопрос. Второй заключается в том, что ты завесишь сервер неконтролируемыми процессами, просто "закончится" память.
На самом деле, динамическая загрузка так и работает как ты описал, у меня нет мыслей почему эти процессы у тебя не умирают после отработки реквеста.
-
тоесь какой сделать вывод?
не мучиться и сделать следующее:
AddHandler fastcgi-script .fpl
FastCgiIpcDir /var/run/fastcgi
FastCgiConfig -killInterval 10
FastCgiServer путь/frviezd.fpl -processes 1
лишнии копии процессов будут выгружаться из памяти?
-
В принципе, самое трудоемкое я бы поставил в процессы, только не в один процесс а несколько. А остальное оставил как есть или пусть динамически подгружается.
-
ok сенкс, так и буду делать
хотя до сих пор оч странно, почему не слушаеться FastCgiConf
я так думаю что иногда придеться прегружать апач чтоб избавиться
от лишних копий .fpl в памяти