3

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

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

顶部显示 0 平均负载和 100% 空闲 CPU。

我已经关闭了所有不需要的服务(httpd、mysqld、sendmail、nagios、named...),但问题仍然存在。我也是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 )。

我已更改为/procdir 并完成cat [PID]\status了与ls(包括内核)列出的所有 PID,并且在任何进程中voluntary_ctxt_switches也没有nonvoluntary_ctxt_switches以相同的速度增长cat /proc/stat(仅几十/秒)。

我也完成strace -p PID了所有进程,因此我可以查看是否有任何进程正在创建线程或其他东西,但唯一有一点移动的进程sshread/write操作,因为数据正在发送到我的终端。

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

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

4

0 回答 0