From: Jamie C. <jca...@we...> - 2003-12-17 22:29:56
|
I've been looking into this, and it seems that there is no pure Perl way of passing file descriptors between processes, which is what is needed to support this kind of pre-launched process architecture. However, there is a Perl module called File::FDpasser that encapsulates the C code needed to do file descriptor passing, so I will probably use that. - Jamie On Thu, 2003-12-18 at 00:39, Thomas Sienkiewicz wrote: > Jamie, > Thanks, let me know if there is anything that I could do to help along > with the process. I'll try doing some research on persistency of libs > (and how to get web-lib constructs to be restored to a clean state after > each script). The sockets should not be a big problem, you could just > delegate creation of the socket to the other process directly. By that I > mean pass it the client's ip, and let it assign a persistent socket to > the client. > > Bill, > The theme is for a highly customized project, mostly for internal use, > and I don't own the code, but we have been toying with the idea of > releasing it to the community at some point. I suppose I just would have > to re-write some parts that are non-webmin specific. > > > Regards, > > Tom Sienkiewicz > > > > ------------------------- > Thomas Sienkiewicz > > International Datacasting > > > -----Original Message----- > From: "Bill James" <bub...@co...> > To: <web...@li...> > Date: Tue, 16 Dec 2003 18:31:48 -0500 > Subject: RE: [webmin-l] Keeping persistent child processes in miniserv > > > > > > -----Original Message----- > > > From: web...@li... > > > [mailto:web...@li...] On Behalf > > > Of Jamie Cameron > > > Sent: Tuesday, December 16, 2003 6:20 PM > > > To: web...@li... > > > Subject: Re: [webmin-l] Keeping persistent child processes in > > miniserv > > > > > > Thomas, > > > > > > That would definately be a nice feature, and one that > > > deserves to go on my TODO list. However, the tricky part is > > > passing new network connections from the master process to > > > the waiting subprocesses. From my understanding of Apache, > > > this FD-passing is implemented differently on all the various > > > Unix variants, so implementing it in a platform-indepent way > > > would not be simple. > > > > > > There is also the matter of loading the common function > > > libraries, like web-lib.pl. Ideally, each subprocess would > > > only need to load the library once.. but the current code > > > assumes that it will be re-run for each CGI invokation. > > > > > > Anyway, neither of these are impossible problems. I'll have a > > > look into implementing this feature at least for Linux some > > > time very soon. > > > > > > - Jamie > > > > > > On Wed, 2003-12-17 at 01:12, Thomas Sienkiewicz wrote: > > > > Hi, > > > > I use Webmin in a couple of projects, and I noticed that under a > > > > heavier load it negatively impacts performance of the > > > machines it runs > > > > on. Now, this is partly due to the fact that I am using a > > > four frame > > > > split view theme, which makes the miniserv spawn 4 new > > > processes each > > > > time a page is reloaded (! The 4-pane view was a > > > requirement for the > > > > projects). The processes don't take up the cpu time when they are > > > > actually executing, but spawning them is killer (bringing up > > another > > > > perl+miniserv+script+libs). > > > > I looked through the miniserv.pl, even found where the > > > processes are > > > > spawned, but lack the time to learn and insight into miniserv to > > > > implement the change proposed below myself in any > > > reasonable amount of > > > > time. > > > > > > > > Jamie, would it be possible to add the below outlined > > > feature to the > > > > awesome project? > > > > > > > > Task: To extend miniserv to use persistent PERL processes > > > to dispatch > > > > tasks to, instead of spawning a new process per request. > > > > > > > > > > > > Reason: This would greatly impact the performance of Webmin > > > in cases > > > > where there is either more than one client accessing the system at > > > > once, or a multi-frame theme (ala MSClinux) is used. > > > > > > > > > > > > Implementation: In the main loop, instead of spawning a > > > process, grab > > > > one from a managed pool. This would involve adding a new config > > > > variables (max processes, min processes- ala apache) and a > > > structure > > > > to hold the PIDs inside of the main loop and change to the > > > dispatching > > > > method. > > > > > > > > > > > > > > > > Regards, > > > > Tom Sienkiewicz > > > > > > > > PS. I can take care of the implementation (given time to ramp up on > > > > the > > > > miniserv) if you do not wish to work on this feature, but it would > > > > take me a while. Any notes, insight, implementation ( :-) ) > > > would be > > > > greatly appreciated. > > > > > > > > > > > > > > > > Tom, > > > > I would be actually interested in seeing this 4 pane theme if it at all > > possible > > > > > > Bill James > > > > Magic Smoke...The black smoke that has lived > > inside your electronic device that was released just after you heard a > > pop > > and the > > thing shut off > > > > From a framed plaque in the > > Mission Evaluation Room at > > Johnson Space Center, > > > > "In God we trust, all others bring data." > > > > I couldn't agree more... > > > > > > > > ------------------------------------------------------- > > This SF.net email is sponsored by: IBM Linux Tutorials. > > Become an expert in LINUX or just sharpen your skills. Sign up for > > IBM's > > Free Linux Tutorials. Learn everything from the bash shell to sys > > admin. > > Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click > > - > > Forwarded by the Webmin mailing list at > > web...@li... > > To remove yourself from this list, go to > > http://lists.sourceforge.net/lists/listinfo/webadmin-list > > > > ------------------------------------------------------- > This SF.net email is sponsored by: IBM Linux Tutorials. > Become an expert in LINUX or just sharpen your skills. Sign up for IBM's > Free Linux Tutorials. Learn everything from the bash shell to sys admin. > Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click > - > Forwarded by the Webmin mailing list at web...@li... > To remove yourself from this list, go to > http://lists.sourceforge.net/lists/listinfo/webadmin-list |