From: "Ara.T.Howard" Date: 2004-03-02T01:04:45+09:00 Subject: Re: Why ist fastcgi so slow? On 29 Feb 2004, Andreas Schwarz wrote: > Ara.T.Howard wrote: > > On 29 Feb 2004, Andreas Schwarz wrote: > > > >> Ara.T.Howard wrote: > >> > On 29 Feb 2004, Andreas Schwarz wrote: > >> > > >> >> Hi, > >> >> > >> >> I am using mod_fastcgi and ruby 1.8 with the following example script: > >> >> > >> >> #!/usr/local/bin/ruby > >> >> require 'cgi' > >> >> require 'fcgi' > >> >> FCGI.each_cgi do |cgi| > >> >> cgi.out{ "Test" } > >> >> end > >> >> > >> >> This is extremely slow, I get exactly 1.00 requests per second (measured > >> >> with ApacheBench). But why? > >> > > >> > what is the name of the file? foo.cgi or foo.fcgi? > >> > >> foo.rb, and yes, it is executed by mod_fastcgi. > > > > hmm. can you see it running with 'ps -elf'?? > > Yes. > > > can you show the assoc > > httpd.conf sections? > > I only added "AddHandler fastcgi-script" to my .htaccess. really? i needed to .... LoadModule fastcgi_module modules/mod_fastcgi.so FastCgiIpcDir logs/fastcgi .... .... ScriptAlias /fcgi-bin/ "/usr/local/httpd-2.0.47//fcgi-bin/" .... .... AllowOverride All Options None Order allow,deny Allow from all SetHandler fastcgi-script .... .... AddHandler fastcgi-script .fcgi .... i suppose the only pertinent bits are the first and last ones... did you compile the fastcgi module in statically? if not it would need loaded... > > the reason i ask it that this performance seems only > > explainable if the script we firing up the ruby interpreter each time... > > Even then it would be much faster. yeah - for me, using #!/usr/local/ruby-1.8.0/bin/ruby require 'cgi' require 'fcgi' FCGI.each_cgi do |cgi| content = '' env = [] cgi.env_table.each do |k,v| env << [k,v] end env.sort! env.each do |k,v| content << %Q(#{k} => #{v}
\n) end cgi.out{content} end i get around 20 requests per second from a very slow machine, uploading on a cable connection, to a machine behind some serious pack sniffing software in a government firewall... you've definitely got something wrong... are you perhaps using the pure ruby fastcgi version? i seem to recall there is one... -a -- =============================================================================== | EMAIL :: Ara [dot] T [dot] Howard [at] noaa [dot] gov | PHONE :: 303.497.6469 | ADDRESS :: E/GC2 325 Broadway, Boulder, CO 80305-3328 | URL :: http://www.ngdc.noaa.gov/stp/ | TRY :: for l in ruby perl;do $l -e "print \"\x3a\x2d\x29\x0a\"";done ===============================================================================