实用的top命令

来源:互联网 发布:网络咨询医生好做不 编辑:程序博客网 时间:2024/05/17 02:23

对于系统级的监控来说,top命令是实用而高效的瑞士军刀。相比vmstat,sar来说提供的是实时的进程信息,对于监控性能,排查问题是很高效的。而且提供了交互式的命令模式,能够灵活的对输出结果进行组合。

如果数据库系统中存在着cpu或者内存的过度使用,或者说IO等待较高,都可以通过top命令进行一个快速的定位到系统进程信息,然后从系统级和数据库级的进程进行一个映射,从而得到数据库级的进程信息,定位可能存在的问题。

top命令是个人比较喜好的一个命令,大体的总结了下,有一些比较实用的功能。

首先简单解释下top命令的一些内容。

第1行显示了系统级的负载,平均负载有3个输出,分别代表在过去的1分钟,5分钟,15分钟时的平均负载,可以看到当前这个系统是没有任何压力的。这部分的输出和命令uptime是一致的。

第2行显示了关于进程的一些大体信息,当前的进程总数,哪些进程是运行状态,哪些睡眠,等待状态等。可以看到进程27758是运行状态的,因为标亮的进程列表中如果"S"对应的值为R代表running,如果为S则为sleeping.

第3行显示了cpu的一些负载信息,这个也是top命令的比较实用的一个功能。特别是%id和%wa这两个指标尤为重要,很多的性能问题中,如果%id过低,%wa也很低,说明cpu使用率很高,可能有一些sql语句消耗了大量的cpu资源,如果%wa很高的话,很可能是系统IO出现了问题。在以往的系统升级中,如果发现%wa过于10%,就说明IO等待很高了,可以通过dd等方式做一个简单的测试。

第4行显示了内存的一些使用情况。如果内存使用情况存在明显的异常,可以通过标亮的进程信息中查找%MEM消耗比较高的进程。

第5行显示了交换区的一些情况,如果内存足够或者系统负载不高,这个部分的数据没有什么大的变化。

 

 


 

-B 选项

输入top,然后在屏幕中直接输入B,就会打开或者关闭表中重要数字的加粗显示,如果你仔细比较会发现确实有一些数据是做了加粗的显示,这样也更方便你对问题进行排查。


 

 

-C 选项

直接输入top -c或者(输入top,然后在屏幕中直接输入c)会切换显示进程的命令名或者是完成的命令行输入信息。

进程28751就可以看到进程对应的命令行输入信息


 

-o选项

如果你想定制显示top命令的输出顺序,比如默认是按照pid,user的顺序来显示进程信息的,如果你想根据user,pid来显示,可以使用c选项

输入top,然后在显示屏幕上输入o,就会弹出一个交互界面。我想先显示列USER,就输入E,然后回车,结果就进行了重排。


修改后显示的列的顺序就相应的进行了调整。


 

-<,>选项

top命令的输出还是比较多的,可以使用<或者>来进行灵活的翻页,毕竟进程数很多,有些进程信息在一个屏幕里还显示不到,可以前后翻页来查看。

输入top,然后直接在屏幕中输入<或者>就可以分页的显示出进程的信息了。

 

-F或者O选项

可以根据需要对某个列进行排序,默认是对%CPU进行排序

输入top,然后在输出屏幕上输入F或者O,选择相应的列进行排序即可,比如我们对PPID进行排序。


输出结果如下,对于一些可能由递归调用中问题可以使用这个方法进行排查。


 

 

-i选项

这个选项对于一些性能问题的排查是如虎添翼,比如我们只是看看哪些进程在运行状态,不需要看到哪些睡眠状态的,可以使用-i选项。

输入top -i或者输入top,然后在屏幕中直接输入i,就会显示出正在那些运行中的进程。


 

-z选项

如果想显示的结果能够更加清晰,可以使用-z选项切换彩色模式或者单色模式

输入top然后在屏幕总输入i就会显示出比较清晰的进程信息,可以根据自己的需要来决定是否启用。


 

-u选项

如果你只是想查看某个用户的进程信息,可以使用u选项。


输出结果就比较清晰,只是显示ora11g的进程。


 

-d或者s选项

因为top命令的输出是动态的,会平均每3秒进行一次刷新,如果想调节刷新的频率,可以使用d或者s选项。

输入top,然后再输入d或者s,自行设定刷新频率即可。


0 0