linux确认工作在SMP环境中

在一次troubleshooting的过程中,需要确认系统是否已经工作在SMP环境中,并查看各个cpu的负载情况,下面总结了一下方法。

第一:确认安装的redhat5.8是开启了SMP(SymmetricMulti-Processing对称多处理结构)服务的。

[root@cepsvr1~]#uname-a

Linuxcepsvr12.6.18-308.el5#1SMPFriJan2717:17:51EST2012x86_64x86_64x86_64GNU/Linux

内核标志中“SMP”,代表支持SMP

第二:确认是否开启了irqbalance服务:

该服务能够在多个CPU之间均衡分配硬件中断,能够帮助SMP系统CPU负载均衡的目的。

[root@cepsvr1~]#serviceirqbalancestatusirqbalance(pid30948)isrunning...

通过cat/proc/interrupts能看到硬件中断信息在各个cpu上面的分配情况

第三:查看(pid=4539)的这个java进程运行在哪几个cpu上面:

[root@cepsvr1~]#taskset-p4539

pid4539'scurrentaffinitymask:f

[root@cepsvr1~]#

说明:

CpuID号码,对应的16进制数为:

Zero-basedCPUID:76543210

DecimalValue:1286432168421

我们的系统中cpuID的为(0,1,2,3),

pid4539'scurrentaffinitymask:f的值为cpuID16进制的值的和(1+2+4+8=f)

这个说明了(pid=4539)的这个java进程工作在cpuID分别为0,1,2,3这个四个cpu上面的。

第四:top命令查看各个cpu的使用情况:

通过键入:

1.top-d1

2.1

可以看到各个CPU的使用情况。

3.再键入大写的i。

关闭top的Irixmode模式,是其工作在Solarismode模式下,真正的SMP环境中,此模式下cpu的使用率会被除以cpu的个数。

本文为原创,转载请注明出处。

相关推荐