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
