通過什么方法來排查是否linux服務器的負載過大?
再對此Linux服務器性能分析之前,先了解下Linux系統Load average負載的知識,負載均值在uptime 或者top 命令中可以看到,它們可能會顯示成這個樣子:load average: 0.15, 0.14, 0.11
很多人會這樣理解負載均值:三個數分別代表不同時間段的系統平均負載(一分鐘、五分鐘、以及十五分鐘),它們的數字當然是越小越好。數字越高,說明服務器的負載越大,這也可能是服務器出現某種問題的信號。
一個單核的處理器可以形象得比喻成一條單車道。如果前面沒有車輛在等待,那么你可以告訴后面的司機通過。如果車輛眾多,那么需要告知他們可能需要稍等一會。
0.00 表示目前橋面上沒有任何的車流。實際上這種情況與0.00 和1.00 之間是相同的,總而言之很通暢,過往的車輛可以絲毫不用等待的通過。
1.00 表示剛好是在這座橋的承受范圍內。這種情況不算糟糕,只是車流會有些堵,不過這種情況可能會造成交通越來越慢。
超過1.00,那么說明這座橋已經超出負荷,交通嚴重的擁堵。那么情況有多糟糕?例如2.00 的情況說明車流已經超出了橋所能承受的一倍,那么將有多余過橋一倍的車輛正在焦急的等待。3.00 的話情況就更不妙了,說明這座橋基本上已經快承受不了,還有超出橋負載兩倍多的車輛正在等待。
從上圖的top命令可以了解到,Linux服務器運行了5天23小時20分,在load average的數據來看,這臺快吧Linux無盤服務器可以說是壓力為零,運行十分流暢。
方法二:輸入iostat -x -k -t說明:%util:一秒中有百分之多少的時間用于I/O操作,或者說一秒中有多少時間I/O隊列是非空的。
即delta(use)/s/1000 (因為use的單位為毫秒)
如果%util接近100%,說明產生的I/O請求太多,I/O系統已經滿負荷,該磁盤可能存在瓶頸。
方法三:
如果玩游戲很卡,可以用hdparm –t /dev/磁盤名稱來測試磁盤性能是否達標,下圖是單個希捷1T的盤測試的結果說明:sd表示硬盤是SATA,SCSI或者SAS,a表示串口的第一塊硬盤本文轉摘自:http://www.flybaaa.com/help/69_1.html
一直以來以為通過top然后按數字1鍵,查到的cpu個數是服務器的物理cpu個數,今天在看服務器的硬件配置清單中發現一服務器的物理cpu個數是4個,我就奇怪了,這臺機子我的影響很深,明明是48啊,當時通過top 1查看cpu信息還提示 “Sorry ,terminal is not big enough”。想當初服務器只能識別到32個。還是重新編譯內核搞定的。后來經過查詢原來不是這樣滴,top 1查看的是邏輯cpu個數,一下為記。
查看Linux服務器的CPU詳細情況
判斷Linux服務器CPU情況的依據如下:
具有相同core id的CPU是同一個core的超線程。(Any cpu with the same core id are hyperthreads in the same core.)
具有相同physical id的CPU是同一個CPU封裝的線程或核心。(Any cpu with the same physical id are threads or cores in the same physical socket.)
下面舉例說明。
物理CPU個數如下:
[root@dbabc.net ~]# cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l 4
每個物理CPU中core的個數(即核數)如下:
[root@dbabc.net ~]# cat /proc/cpuinfo| grep "cpu cores"| uniq cpu cores : 12
邏輯CPU的個數如下:
[root@dbabc.net ~]#cat /proc/cpuinfo| grep "processor"| wc -l 48
按理說物理CPU個數×核數就應該等于邏輯CPU的
Dbabc.Net [http://dbabc.net]
本文鏈接:http://dbabc.net/archives/2012/02/13/linux-cpu-info-count.shtml