linux確認工作在SMP環境中 在一次troubleshooting的過程中,需要確認系統是否已經工作在SMP環境中,並查看各個cpu的負載情況,下面總結了一下方法。 www.2cto.com
第一:確認安裝的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 識別碼,對應的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的個數。 來源 http://yangyoupeng-cn-fujitsu-com.iteye.com/blog/1722514