linux確認工作在SMP環境中

在一次troubleshooting的過程中,需要確認系統是否已經工作在SMP環境中,並查看各個cpu的負載情況,下面總結了一下方法。


第一:確認安裝的redhat 5.8是開啓了SMP(Symmetric Multi-Processing對稱多處理結構)服務的。
# 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負載均衡的目的。
# service irqbalance status irqbalance (pid 30948) is running...
通過cat /proc/interrupts能看到硬件中斷信息在各個cpu上面的分配情況


第三:查看(pid=4539)的這個java進程運行在哪幾個cpu上面:
# taskset -p 4539
pid 4539's current affinity mask: f
#
說明:
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的個數。


本文爲原創,轉載請註明出處。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章