linux 进程管理分析,Linux中进程管理的详细分析

晚点 于 2006-11-22 10:22:56发表:

加入ps常用的aux参数后可以显示其他用户启动的进程(a)、查看系统中属于自己的进程(x)以及启动这个进程的用户和它启动的时间(u)。

现在还有其它更多的信息,增加了USER、 %CPU、%MEM、 VSZ、RSS、STAT和START这几个域。现在我们来看一下这些信息是什么含义。

首先,用户可以看到所有的进程,而不仅仅是运行在终端上的那些。USER域指明了是哪个用户启动了这个命令。很多进程和系统一起启动,而且会把根或者一些系统帐号列为USER。当然,其它一些进程是单独运行的。这个信息本身就可以帮助你缩小问题范围。假如某个用户启动了脚本,占用了服务器大量的I/O。如果能马上找到是谁在运行这个程序,那么就可以大大加快解决问题的速度。

%CPU、 %MEM、VSZ和RSS这几个域都与系统资源有关。首先,用户可以查看某个进程占用了多少CPU。这个信息是实时显示的,所以很难用ps捕捉峰值。可能用户会发现,为了找到引发问题的那个进程需要不停地运行ps命令。

除了CPU使用情况,还可以看到内存使用及其VSZ(虚拟内存大小)和RSS(常驻集大小)。VSZ表示如果一个程序完全驻留在内存的话需要占用多少内存空间,而RSS指明了当前实际占用了多少内存。如果能够了解一个进程当前占用了多少内存,那么就可以确定这个进程是在正常运行还是出现了异常。程序通常都会消耗比正常情况更多的内存和CPU。虽然程序员都在尽力确保代码正确地使用资源,但是有时候还是要由管理员来决定终止还是重启进程。

用户可能会注意到在ps aux命令的输出结果里,大部分TTY域有个"?"。这是因为这些程序或者在系统启动的时候就开始运行了,或者是由初始化脚本(init script)启动的。这些进程没有控制终端,所以作了标记。另外,linux-sanity-check命令有一个TTY的值为pts/14。这个命令是远程连接运行的,有与其关联的一个终端。当你的机器开放了多条连接,而你又想确定某个命令运行在哪个窗口的时候,这个信息是很有用的。

STAT显示了进程当前的状态。在我们的例子里,很多进程处在睡眠状态,STAT域里的"S"指明了这一状态。这仅仅表明这些进程在等待某些事件发生--可能是用户输入或者系统资源的可用性。linux-sanity-check命令则有一个R状态,这个状态表明进程当前正在运行。有时候你可以浏览一下这个列表然后找那些R状态的进程。如果大部分进程处在睡眠状态而又有问题发生,那么只关注那些正在运行的进程是最好的方法。那种状态不一定能说明发生了问题,但是有时候如果进程运行的时间过长可能意味着发生了某些深层次的问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值