I am using ruby-fcgi (http://sugi.nemui.org/prod/ruby-fcgi/) with apache
1.3x.
under heavy load, apache begins to start other processes of my fcgi-script.
since I am caching some basic code in this main process, I want every
request to be handled by the same fcgi-script. So how can I force this
behaviour?
Any ideas?
benny
--
> hi,
>
> I am using ruby-fcgi (http://sugi.nemui.org/prod/ruby-fcgi/) with apache
> 1.3x.
>
> under heavy load, apache begins to start other processes of my
> fcgi-script. since I am caching some basic code in this main process, I
> want every request to be handled by the same fcgi-script.
errr! meant to say "I want every request to be handled by the same
*process*"
benny
Apache directives should do the trick:
FastCgiServer -processes 1
FastCgiConfig -minProcesses 1 -maxProcesses 1
See http://www.fastcgi.com/mod_fastcgi/docs/mod_fastcgi.html
I assume you have some state you are trying to maintain?
In general, I would have to waggle my finger in warning
against such practice :)
I will hopefully have my scgi code finished soon, I was
thinking about including an option to run a persistent
sort of an app on it. We shall see.
>benny
E
--
template<typename duck>
void quack(duck& d) { d.quack(); }
>
> Le 24/4/2005, "benny" <lis...@marcrenearns.de> a écrit:
>>benny wrote:
>>
>>> hi,
>>>
>>> I am using ruby-fcgi (http://sugi.nemui.org/prod/ruby-fcgi/) with apache
>>> 1.3x.
>>>
>>> under heavy load, apache begins to start other processes of my
>>> fcgi-script. since I am caching some basic code in this main process, I
>>> want every request to be handled by the same fcgi-script.
>>
>>errr! meant to say "I want every request to be handled by the same
>>*process*"
>
> Apache directives should do the trick:
>
> FastCgiServer -processes 1
> FastCgiConfig -minProcesses 1 -maxProcesses 1
>
> See http://www.fastcgi.com/mod_fastcgi/docs/mod_fastcgi.html
>
in case, anyone other should need it:
the complete syntax is (apache 1.3.x)
<IfModule mod_fastcgi.c>
FastCgiServer /path/to/script.fcgi -processes 1
FastCgiConfig -minProcesses 1 -maxProcesses 1 -processSlack 1
</IfModule>
> I assume you have some state you are trying to maintain?
> In general, I would have to waggle my finger in warning
> against such practice :)
why? its simply that I have build a framework around the fcgi-script and
want to avoid this framework to be reloaded. In fact this was propagaded as
advantage of fastcgi: that a script doesn't have to be loaded on each
request.
my framework got so large that I don't want it so be several times in RAM.
but I am very interested to hear what disadvantages this configuration might
have to me.
is it simply an issue of threads-performance vs. RAM overhead?
benny
google fastcgi and folows links to apache config directive for how to do this.
a warning : caching state is __exactly__ analogous to memory leak under nearly
all circumstances. consider which, if any, guarantee the cached data is
scrubbed and what limits the cache size.
cheers.
-a
--
===============================================================================
| email :: ara [dot] t [dot] howard [at] noaa [dot] gov
| phone :: 303.497.6469
| although gold dust is precious, when it gets in your eyes, it obstructs
| your vision. --hsi-tang
===============================================================================
I use 2 * number of CPUs after doing some benchmarking.
The disadvantage to your configuration is that if you have more than 1
CPU. You might find 1 * number of CPUs more to your liking...
> my framework got so large that I don't want it so be several times in RAM.
>
> but I am very interested to hear what disadvantages this configuration might
> have to me.
> is it simply an issue of threads-performance vs. RAM overhead?
You'll only be able to serve one client at a time, unless I misunderstand fcgi's
process loop model.
--
'This must be Thursday. I never could get the hang of Thursdays.'
-- Arthur Dent
Rasputin :: Jack of All Trades - Master of Nuns