不同内核版本Linux TOP工具的差异
1,652 Views『作者:RickyZhu 转载务必注明出处和作者』
Tag:testing
我去年做性能测试,利用TOP命令取性能数据,偶尔会发生数据不准确或者错误的情况,之前一直以为是TOP的bug,现在发现了问题的根本原因.
目前在我们测试的系统中,主流的server有两种, 875和3003, 区别在于server的主板芯片. 两种server的操作系统都是Linux但是内核却差别很大,
[root@ME_14-101 root]# uname -a
Linux ME_14-101
[root@ME_14-101 root]#
[root@ME_99_141 ~]# uname -a
Linux ME_99_141
[root@ME_99_141 ~]#
875的内核一般是:
3003的内核一般是:
[root@ME_14-101 root]# rpm -qa procps
procps-
[root@ME_14-101 root]#
[root@ME_99_141 ~]# rpm -qa procps
procps-
[root@ME_99_141 ~]#
TOP命令是其中的一个RPM包procps的一个组件, 著名的vmstat, ps等也是其中的组件.
但是在不同procps版本中提供的TOP命令的输出格式不同,我们之前因为要统筹考虑,统一处理,所以就用了高版本的TOP命令,在需要取性能数据的时候把这个版本的TOP命令上传到被测server上,然后执行.
在高版本内核的server上这样是没有问题的,但是在低版本内核server上会有一些问题,导致一些无法解释的现象,比如内存或者CPU偶尔会超过100%的现象等等.
如果用低版本的TOP,在低版本内核server上正常的,但是在高版本内核的server上,也会导致一些问题. 这个问题困扰了我们N久.
综合以上所说,不同版本的TOP只能稳定运行于对应内核的server上.
