Seems this patch also will work with other BSD systems, 'cause these should have kvm_getprocs().
-- Marcelo Coelho marcelo at mco2.com.br ----- Mensagem Original ----- De: Marcelo Coelho <[email protected]> Para: Peruser MPM List <[email protected]> Data: Wednesday, 19 De January De 2011 19:47 Assunto: [peruser] Peruser patch (v15) - (FreeBSD only!) > Hello! > > Peruser patch (v15) - FreeBSD > > Patch from RC2: > http://opensource.mco2.net/download/apache/peruser/peruser-rc2-to-rc3-v15-freebsd.patch > > Full patch from vanilla Apache 2.2.17: > http://opensource.mco2.net/download/apache/peruser/peruser-rc3-full-v15-freebsd.patch > > Important: this patch works only with FreeBSD because cpu_usage.c uses > FreeBSD KVM Library to control CPU use. This patch will not work on Linux (I > guess). > > There is a new parameter MaxCPUUsage, to control CPU use by each processor. > It works like Linux cpulimit utility: if processor CPU use is greater than > MaxCPUUsage, sends a SIGSTOP, if lower, sends a SIGCONT. > > MaxCPUUsage defaults 0, wich means unlimited. > > Changes (from RC2): > > * (v15) Feature: /server-status with more details (CPU usage of each > processor and each ServerEnvironment). > * (v15) Feature: New configuration MaxCPUUsage > * (v15) Bug fix: some segfaults fixed. > * (v14) Bug fix: multiplexer segfault when passing big requests to processors > (URI with ~8192 bytes and big Referer header) > * (v14) Performance: faster idle server maintenance > * (v14) Clean-up: removed .orig files > * (v13) Code more "APR-ized" > * (v13) Bug fix: apachectl graceful works, even under high load. > * (v12) Not released to public > * (v11) Not released to public > * (v10) Bug fixed: fixed some segfaults > * (v10) Bug fixed: work around to a flaw in apr-util (as PR 43857) > * (v9) Not released to public > * (v8) Bug fixed: apachectl graceful now is more stable, like RC2 version > * (v8) Bug fixed: fixed some segfaults (thank you Dave Steinberg for sending > your core dumps) > * (v8) Bug fixed: server dies with infinite loop script, reported by Taavi > Sannik > * (v8) Bug fixed: "long lost child" error, reported by Taavi Sannik > * (v8) Performance: update_all_counters() rewritten without malloc() and > free() > * (v7) Bug fixed: multiplexers now can clone a processor child if all workers > are busy. > * (v6) Bug fixed: apachectl graceful now working properly, without "long lost > child" errors > * (v5) Not released to public > * (v4) Code cleanup > * (v4) Performance: childs are started in ~25ms, 40 times faster than in RC2 > (~1000ms) > * (v4) Bug fixed: now checking if total_processors is 1 (first access) to > start StartProcessors > * (v3) Performance: new child type (CHILD_TYPE_RESERVED) to avoid collision > (2 childs trying to get the same free slot) > * (v3) Bug fixed: fixed a bug in RC2, wait_timeout was always 0, never > sleeping to wait for new workers. > * (v2) Performance: StartProcessors, new configuration directive to control > the number of child processors per vhost at startup > * (v2) Performance: childs are started in ~50ms, 20 times faster than in RC2 > (~1000ms) > * (v1) Performance: faster to lookup for free slots (this is important on > busy servers, with many virtual hosts) > * (v1) Performance: faster to count processors, one single loop counts all > processors > * (v1) Bug fixed: bug when MinSpareProcessors is set to 0 (now all workers > processes are killed when idle_timeout is reached) > * (v1) Bug fixed: Free-up slots when a WORKER or PROCESSOR unexpectedly dies > > > Regards, > > -- > Marcelo Coelho > marcelo at mco2.com.br > > _______________________________________________ > Peruser mailing list > [email protected] > http://www.telana.com/mailman/listinfo/peruser > _______________________________________________ Peruser mailing list [email protected] http://www.telana.com/mailman/listinfo/peruser
