在一次troubleshooting的过程中,需要确认系统是否已经工作在SMP环境中,并查看各个cpu的负载情况,下面总结了一下方法。
第一:确认安装的redhat 5.8是开启了SMP(Symmetric Multi-Processing对称多处理结构)服务的。
[root@cepsvr1 ~]# uname -a
Linux cepsvr1 2.6.18-308.el5 #1 SMP Fri Jan 27 17:17:51 EST 2012 x86_64 x86_64 x86_64 GNU/Linux
内核标志中“SMP”,代表支持SMP
第二:确认是否开启了irqbalance服务:
该服务能够在多个CPU之间均衡分配硬件中断,能够帮助SMP系统CPU负载均衡的目的。
[root@cepsvr1 ~]# service irqbalance status irqbalance (pid 30948) is running...
通过cat /proc/interrupts能看到硬件中断信息在各个cpu上面的分配情况
第三:查看(pid=4539)的这个java进程运行在哪几个cpu上面:
[root@cepsvr1 ~]# taskset -p 4539
pid 4539's current affinity mask: f
[root@cepsvr1 ~]#
说明:
Cpu ID 号码,对应的16进制数为:
Zero-based CPU ID: 7 6 5 4 3 2 1 0
Decimal Value: 128 64 32 16 8 4 2 1
我们的系统中cpu ID 的为(0,1,2,3),
pid 4539's current affinity mask:f的值为cpu ID 16进制的值的和(1+2+4+8=f)
这个说明了(pid=4539)的这个java进程工作在cpu ID 分别为0,1,2,3这个四个cpu上面的。
第四:top命令查看各个cpu的使用情况:
通过键入:
1. top -d 1
2.1
可以看到各个CPU的使用情况。
3.再键入大写的i。
关闭top的Irix mode模式,是其工作在Solaris mode模式下,真正的SMP环境中,此模式下cpu的使用率会被除以cpu的个数。
本文为原创,转载请注明出处。
分享到:
相关推荐
在SMP机器上,Linux的启动过程是怎样的? 在SMP机器上,Linux的进程调度如何进行? 在SMP机器中,中断系统有何特点?
Linux内核支持SMP并行机制的分析Linux内核支持SMP并行机制的分析,Linux内核支持SMP并行机制的分析
嵌入式Linux系统移植中SMP的实现研究.pdf
Linux SMP HOWTO 描述在linux下进行SMP编程
Booting ARM linux on SMP
嵌入式Linux在SMP系统上的移植研究与实现.pdf
Linux_SMP体系网络处理性能研究.pdf
Linux操作系统内核对SMP(对称多处理器)的支持.pdf
linux内核知识系列:SMP 华嵌智能提供 www.embedded-cn.com http://embedded-cn.taobao.com
Linux从2.0版本开始增加对于SMP的支持,最初的实现较为简单,以后随着版本更新,SMP的实现也逐步趋于完善。本文主要对Linux 2.6版本的内核信号量机制进行深入分析。
Linux系统对SMP并行处理的支持.pdf
Linux2.6内核对SMP系统支持的研究.pdf
linux smp 不错的学习资料,免费下载啊
首先声明文档是自己原创的,通过刻苦阅读linux源代码和翻阅xilinx zynq datasheet写出来的总结文档,对于想了解linux系统启动到多核加载过程的童鞋,有一定帮助,由于是呕心原创,所以分数较高,望见谅
Linux原子加锁中关于SMP的困惑.docx
基于SMP的Linux内核自旋锁分析.pdf
SMP Linux中进程与CPU绑定的实现.pdf
嵌入式LINUX的SMP实现.pdf
并行算法的queen问题实现。在smp环境下使用mpi编写.zip