我的linux服务器“创建的进程数”和“上下文切换”的增长速度非常快

时间:2012-12-01 17:33:10

标签: linux multithreading context-switching

编辑:更详细的答案:https://serverfault.com/questions/454192/my-linux-server-number-of-processes-created-and-context-switches-are-growing

我的服务器中有一个奇怪的行为: - /。是VPS。当我cat /proc/stat时,我可以看到每秒约50-100个进程是如何创建的,并且发生了大约800k-1200k的上下文切换!所有这些信息都与服务器完全空闲,没有流量或程序运​​行。

Top显示0个负载平均值和100%空闲CPU。

我关闭了所有不需要的服务(httpd,mysqld,sendmail,nagios,名为......),问题仍然存在。我每秒都ps -ALf,我也看不到任何变化,每次只创建一个新的ps进程,并且PID与之前的+1相同,所以新的进程是没有创建,所以我认为在cat /proc/stat中增长的进程​​必须是线程(是的,似乎processes中的/proc/stat计算线程创建,因为这表明:http://webcache.googleusercontent.com/search?q=cache:8NLgzKEzHQQJ:www.linuxhowtos.org/System/procstat.htm&hl=es&tbo=d&gl=es&strip=1)。< / p>

我已更改为/proc dir并完成cat [PID]\status所有PID列出ls(包括内核)以及任何进程voluntary_ctxt_switches或{{ 1}}以与nonvoluntary_ctxt_switches相同的速度增长(仅几十秒/秒)。

我已经对所有进程执行了cat /proc/stat所以我可以看到是否有任何进程正在创建线程或其他进程,但是唯一有一点运动的进程是strace -p PID并且该运动是ssh / read操作因为数据正在发送到我的终端。

之后,我完成了write并看到vmstat -s forks正以processes的速度/proc/stat增长。正如http://linux.die.net/man/2/fork所说,每个fork()都会创建一个新的PID,但我的服务器PID没有增长!

我能想到的最后一件事是,proc/statvmstat -s显示的所有流程数据都与同一台机器中存储的所有其他VPS共享,但我不知道是否这是正确的......如果有人能对此有所了解,我将非常感激。

0 个答案:

没有答案