RHEL/Apache - WCHAN="semtim" 的含义

RHEL/Apache - WCHAN="semtim" 的含义

WCHAN="semtim" 是什么意思?

ps -ylC httpd

S   UID   PID  PPID  C PRI  NI    RSS     SZ WCHAN  TTY      TIME CMD
S     0 25330     1  0  78   0  16168 170563 -      ?    00:00:14 httpd
R    48 16566 25330  4  76   0  36864 174156 -      ?    00:00:02 httpd
S    48 31450 25330  2  75   0 109992 186745 -      ?    00:02:24 httpd
S    48 31460 25330  2  75   0 115724 186745 semtim ?    00:02:11 httpd
S    48 23069 25330  1  75   0 116812 186745 semtim ?    00:02:13 httpd
S    48 12335 25330  2  75   0 117444 186745 -      ?    00:03:48 httpd
S    48 23130 25330  1  75   0 118616 200530 -      ?    00:01:54 httpd
S    48 23205 25330  2  77   0 119044 187769 semtim ?    00:02:50 httpd
S    48 23138 25330  2  75   0 120436 186745 semtim ?    00:02:39 httpd
S    48 23194 25330  1  75   0 120544 186745 semtim ?    00:02:16 httpd
S    48 12309 25330  2  75   0 120604 186745 semtim ?    00:03:00 httpd
S    48 23204 25330  2  75   0 120848 186489 semtim ?    00:02:41 httpd
S    48 23202 25330  3  76   0 121584 186745 semtim ?    00:03:45 httpd
S    48 31454 25330  2  75   0 122516 200530 semtim ?    00:02:12 httpd

有问题的服务器是 Red Hat 4.1.2-52 系统(内核 2.6.18),运行带mpm_prefork模块的 Apache 2.2.3。

查看该boot/System.map-2.6.18-308.1.1.el5文件我可以发现:

ffffffff80122b12 T compat_sys_semtimedop
ffffffff80125203 T sys_semtimedop

但我不确定其中是否有一个 semtim,也不semtim知道它们或意味着什么。

答案1

它是一个 semtimedop 系统调用。

信号量是用于维持进程间同步的值。

在您的示例中,“semtimedop”意味着 apache 正在等待信号量变为零,并等待直到值变为零或发生超时,因此该过程被阻塞。

您还没有提到这对您来说是否是个问题,因此我能补充的并不多。

相关内容