我的服务器似乎有点慢,所以我决定安装 munin 来查看发生了什么。一个突出的统计数据是服务器每秒分叉 50 次,这对于我的服务器来说似乎有点过分。
我如何找出一直在分叉的是什么?我正在使用 nginx、postgres 和 uwsgi,但我不明白为什么它们中的任何一个会导致这么多。
我如何才能找出导致这种情况的进程?我试过谷歌,但我只能找到vmstat -f
告诉我当前数字的 - 所以除了 munin 之外没有其他信息给我。
该盒子是一个使用 Centos 5 的虚拟机(它已经运行了 4 年,所以有点旧了,我只是没有时间重新配置更新的东西)
答案1
您可以使用 strace 附加到各种进程,然后查找对 fork/vfork/clone 的调用。
答案2
我知道我很久以前就问过这个问题,但答案是这个数字来自物理机而不是虚拟机。因此,物理服务器上的所有虚拟机每秒处理分叉 50 次。那么作为统计数据,这真的相当不错