You are viewing a plain text version of this content. The canonical link for it is here.
Posted to bugs@httpd.apache.org by bu...@apache.org on 2003/03/09 00:23:14 UTC
DO NOT REPLY [Bug 17808] New: -
High CPU utilization in master process
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=17808>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND
INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=17808
High CPU utilization in master process
Summary: High CPU utilization in master process
Product: Apache httpd-2.0
Version: 2.0.44
Platform: PC
OS/Version: Linux
Status: NEW
Severity: Normal
Priority: Other
Component: Core
AssignedTo: bugs@httpd.apache.org
ReportedBy: daniele@orlandi.com
I'm experiencing high CPU utilization in the master process with httpd 2.0.44
compiled from scratch with prefork mpm under RedHat Linux 8.0 (gcc 3.2) with the
lates errata kernel. All my httpds run in a chroot jail, some with mod_tls and
mod_php and some without.
Server version: Apache/2.0.44
Server built: Feb 24 2003 17:40:02
Server's Module Magic Number: 20020903:0
Architecture: 32-bit
Server compiled with....
-D APACHE_MPM_DIR="server/mpm/prefork"
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D HTTPD_ROOT="/opt/apache2"
-D SUEXEC_BIN="/opt/apache2/bin/suexec"
-D DEFAULT_PIDLOG="logs/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_LOCKFILE="logs/accept.lock"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="conf/mime.types"
-D SERVER_CONFIG_FILE="conf/httpd.conf"
I'm assuming that the CPU utilization of the master process should be lower than
the one for the childs so I'm reporting this. If my assumption is wrong... well
sorry :)
The utilization is proportional to the requests rate and much higher than the
utilization for the childs. The server is responsive and quick.
# ps xaf|grep httpd
7880 ? S 1:53 /bin/httpd -f /conf/httpd.conf
11343 ? S 0:30 \_ /bin/httpd -f /conf/httpd.conf
24704 ? S 0:02 \_ /bin/httpd -f /conf/httpd.conf
24887 ? S 0:01 \_ /bin/httpd -f /conf/httpd.conf
24901 ? S 0:01 \_ /bin/httpd -f /conf/httpd.conf
.....[20 more childs follow]
This is a strace of the master process for some second:
select(0, NULL, NULL, NULL, {0, 54684}) = 0 (Timeout)
wait4(-1, 0xbfffde00, WNOHANG|WUNTRACED, NULL) = 0
select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout)
wait4(-1, 0xbfffde00, WNOHANG|WUNTRACED, NULL) = 0
select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout)
write(70, "!", 1) = 1
socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 83
fcntl64(83, F_GETFL) = 0x2 (flags O_RDWR)
fcntl64(83, F_SETFL, O_RDWR|O_NONBLOCK) = 0
connect(83, {sin_family=AF_INET, sin_port=htons(80),
sin_addr=inet_addr("212.110.160.123")}}, 16) = -1 EINPROGRESS (Operation now in
progress)
poll([{fd=83, events=POLLOUT, revents=POLLOUT}], 1, 3000) = 1
getsockopt(83, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
close(83) = 0
wait4(-1, 0xbfffde00, WNOHANG|WUNTRACED, NULL) = 0
select(0, NULL, NULL, NULL, {1, 0}) = ? ERESTARTNOHAND (To be restarted)
--- SIGCHLD (Child exited) ---
select(0, NULL, NULL, NULL, {0, 990171}) = 0 (Timeout)
write(70, "!", 1) = 1
socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 83
fcntl64(83, F_GETFL) = 0x2 (flags O_RDWR)
fcntl64(83, F_SETFL, O_RDWR|O_NONBLOCK) = 0
connect(83, {sin_family=AF_INET, sin_port=htons(80),
sin_addr=inet_addr("212.110.160.123")}}, 16) = -1 EINPROGRESS (Operation now in
progress)
poll([{fd=83, events=POLLOUT, revents=POLLOUT}], 1, 3000) = 1
getsockopt(83, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
close(83) = 0
wait4(-1, [WIFEXITED(s) && WEXITSTATUS(s) == 0], WNOHANG|WUNTRACED, NULL) = 26029
gettimeofday({1047165258, 98807}, NULL) = 0
wait4(-1, 0xbfffde00, WNOHANG|WUNTRACED, NULL) = 0
select(0, NULL, NULL, NULL, {1, 0}) = ? ERESTARTNOHAND (To be restarted)
--- SIGCHLD (Child exited) ---
select(0, NULL, NULL, NULL, {0, 990171}) = 0 (Timeout)
write(70, "!", 1) = 1
socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 83
fcntl64(83, F_GETFL) = 0x2 (flags O_RDWR)
fcntl64(83, F_SETFL, O_RDWR|O_NONBLOCK) = 0
connect(83, {sin_family=AF_INET, sin_port=htons(80),
sin_addr=inet_addr("212.110.160.123")}}, 16) = -1 EINPROGRESS (Operation now in
progress)
poll([{fd=83, events=POLLOUT, revents=POLLOUT}], 1, 3000) = 1
getsockopt(83, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
close(83) = 0
wait4(-1, [WIFEXITED(s) && WEXITSTATUS(s) == 0], WNOHANG|WUNTRACED, NULL) = 26075
gettimeofday({1047165259, 99400}, NULL) = 0
wait4(-1, 0xbfffde00, WNOHANG|WUNTRACED, NULL) = 0
select(0, NULL, NULL, NULL, {1, 0}) = ? ERESTARTNOHAND (To be restarted)
--- SIGCHLD (Child exited) ---
select(0, NULL, NULL, NULL, {0, 996030}) = 0 (Timeout)
wait4(-1, [WIFEXITED(s) && WEXITSTATUS(s) == 0], WNOHANG|WUNTRACED, NULL) = 26256
gettimeofday({1047165260, 98021}, NULL) = 0
wait4(-1, 0xbfffde00, WNOHANG|WUNTRACED, NULL) = 0
select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout)
wait4(-1, 0xbfffde00, WNOHANG|WUNTRACED, NULL) = 0
select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout)
wait4(-1, 0xbfffde00, WNOHANG|WUNTRACED, NULL) = 0
select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout)
wait4(-1, 0xbfffde00, WNOHANG|WUNTRACED, NULL) = 0
select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout)
write(70, "!", 1) = 1
socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 83
fcntl64(83, F_GETFL) = 0x2 (flags O_RDWR)
fcntl64(83, F_SETFL, O_RDWR|O_NONBLOCK) = 0
connect(83, {sin_family=AF_INET, sin_port=htons(80),
sin_addr=inet_addr("212.110.160.123")}}, 16) = -1 EINPROGRESS (Operation now in
progress)
poll([{fd=83, events=POLLOUT, revents=POLLOUT}], 1, 3000) = 1
getsockopt(83, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
close(83) = 0
wait4(-1, 0xbfffde00, WNOHANG|WUNTRACED, NULL) = 0
select(0, NULL, NULL, NULL, {1, 0}) = ? ERESTARTNOHAND (To be restarted)
--- SIGCHLD (Child exited) ---
select(0, NULL, NULL, NULL, {0, 994077}) = 0 (Timeout)
wait4(-1, [WIFEXITED(s) && WEXITSTATUS(s) == 0], WNOHANG|WUNTRACED, NULL) = 26199
gettimeofday({1047165265, 96741}, NULL) = 0
wait4(-1, 0xbfffde00, WNOHANG|WUNTRACED, NULL) = 0
select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout)
wait4(-1, 0xbfffde00, WNOHANG|WUNTRACED, NULL) = 0
select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout)
write(70, "!", 1) = 1
socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 83
fcntl64(83, F_GETFL) = 0x2 (flags O_RDWR)
fcntl64(83, F_SETFL, O_RDWR|O_NONBLOCK) = 0
connect(83, {sin_family=AF_INET, sin_port=htons(80),
sin_addr=inet_addr("212.110.160.123")}}, 16) = -1 EINPROGRESS (Operation now in
progress)
poll([{fd=83, events=POLLOUT, revents=POLLOUT}], 1, 3000) = 1
getsockopt(83, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
close(83) = 0
wait4(-1, 0xbfffde00, WNOHANG|WUNTRACED, NULL) = 0
select(0, NULL, NULL, NULL, {1, 0}) = ? ERESTARTNOHAND (To be restarted)
--- SIGCHLD (Child exited) ---
select(0, NULL, NULL, NULL, {0, 996030}) = 0 (Timeout)
wait4(-1, [WIFEXITED(s) && WEXITSTATUS(s) == 0], WNOHANG|WUNTRACED, NULL) = 26228
gettimeofday({1047165268, 97936}, NULL) = 0
wait4(-1, 0xbfffde00, WNOHANG|WUNTRACED, NULL) = 0
select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout)
write(70, "!", 1) = 1
socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 83
fcntl64(83, F_GETFL) = 0x2 (flags O_RDWR)
fcntl64(83, F_SETFL, O_RDWR|O_NONBLOCK) = 0
connect(83, {sin_family=AF_INET, sin_port=htons(80),
sin_addr=inet_addr("212.110.160.123")}}, 16) = -1 EINPROGRESS (Operation now in
progress)
poll([{fd=83, events=POLLOUT, revents=POLLOUT}], 1, 3000) = 1
getsockopt(83, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
close(83) = 0
wait4(-1, 0xbfffde00, WNOHANG|WUNTRACED, NULL) = 0
select(0, NULL, NULL, NULL, {1, 0}) = ? ERESTARTNOHAND (To be restarted)
--- SIGCHLD (Child exited) ---
select(0, NULL, NULL, NULL, {0, 990171}) = 0 (Timeout)
wait4(-1, [WIFEXITED(s) && WEXITSTATUS(s) == 0], WNOHANG|WUNTRACED, NULL) = 26097
gettimeofday({1047165270, 99926}, NULL) = 0
wait4(-1, 0xbfffde00, WNOHANG|WUNTRACED, NULL) = 0
select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout)
wait4(-1, 0xbfffde00, WNOHANG|WUNTRACED, NULL) = 0
select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout)
wait4(-1, 0xbfffde00, WNOHANG|WUNTRACED, NULL) = 0
select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout)
wait4(-1, 0xbfffde00, WNOHANG|WUNTRACED, NULL) = 0
select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout)
gettimeofday({1047165274, 98473}, NULL) = 0
fork() = 26277
wait4(-1, 0xbfffde00, WNOHANG|WUNTRACED, NULL) = 0
select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout)
wait4(-1, 0xbfffde00, WNOHANG|WUNTRACED, NULL) = 0
select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout)
gettimeofday({1047165276, 99665}, NULL) = 0
fork() = 26284
wait4(-1, 0xbfffde00, WNOHANG|WUNTRACED, NULL) = 0
select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout)
wait4(-1, 0xbfffde00, WNOHANG|WUNTRACED, NULL) = 0
select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout)
gettimeofday({1047165278, 101233}, NULL) = 0
fork() = 26288
wait4(-1, 0xbfffde00, WNOHANG|WUNTRACED, NULL) = 0
select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout)
wait4(-1, 0xbfffde00, WNOHANG|WUNTRACED, NULL) = 0
select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout)
wait4(-1, 0xbfffde00, WNOHANG|WUNTRACED, NULL) = 0
select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout)
wait4(-1, 0xbfffde00, WNOHANG|WUNTRACED, NULL) = 0
select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout)
wait4(-1, 0xbfffde00, WNOHANG|WUNTRACED, NULL) = 0
select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout)
wait4(-1, 0xbfffde00, WNOHANG|WUNTRACED, NULL) = 0
select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout)
wait4(-1, 0xbfffde00, WNOHANG|WUNTRACED, NULL) = 0
select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout)
wait4(-1, 0xbfffde00, WNOHANG|WUNTRACED, NULL) = 0
select(0, NULL, NULL, NULL, {1, 0}) = 0 (Timeout)
---------------------------------------------------------------------
To unsubscribe, e-mail: bugs-unsubscribe@httpd.apache.org
For additional commands, e-mail: bugs-help@httpd.apache.org