服務負載測試

1.查看當前物理cpu的個數緩存

cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l服務器

2.查看當前每一個cup的core(核數)性能

cat /proc/cpuinfo| grep "cpu cores"| uniqui

3.邏輯cpu個數 = 物理cpu個數 * 每一個cpu的核數spa

 cat /proc/cpuinfo| grep "processor"| wc -l線程

4.查看當前系統負載blog

使用命令:w隊列

第一行從左面開始顯示的信息依次爲:時間,系統運行時間,登陸用戶數,平均負載。進程

第二行開始以及下面全部的行,告訴咱們的信息是,當前登陸的都有哪些用戶,以及他們是從哪裏登陸的等等。內存

load average:後面的三個數值:

第一個數值表示1分鐘內系統的平均負載值;

第二個數值表示5分鐘內系統的平均負載值;

第三個數值表示15分鐘系統的平均負載值。

這個值的意義是,單位時間段內CPU活動進程數。固然這個值越大就說明你的服務器壓力越大。通常狀況下這個值只要不超過服務器的cpu數量就沒有關係,若是服務器cpu數量爲8,那麼這個值若小於8,就說明當前服務器沒有壓力,不然就要關注一下了。

5.監控系統的狀態

使用命令:vmstat

上面講的 w 查看的是系統總體上的負載,經過看那個數值能夠知道當前系統有沒有壓力,可是具體是哪裏(CPU, 內存,磁盤等)有壓力就沒法判斷了。經過 vmstat 就能夠知道具體是哪裏有壓力。vmstat命令打印的結果共分爲6部分:procs, memory, swap, io, system, cpu:

1)procs 顯示進程相關信息

r :表示運行和等待cpu時間片的進程數,若是長期大於服務器cpu的個數,則說明cpu不夠用了;

b :表示等待資源的進程數,好比等待I/O, 內存等,這列的值若是長時間大於1,則須要關注一下了;

2)memory 內存相關信息

swpd :表示切換到交換分區中的內存數量 ;

free :當前空閒的內存數量;

buff :緩衝大小,(即將寫入磁盤的);

cache :緩存大小,(從磁盤中讀取的);

3)swap 內存交換狀況

si :由交換區寫入到內存的數據量;

so :由內存寫入到交換區的數據量;

4)io 磁盤使用狀況

bi :從塊設備讀取數據的量(讀磁盤);

bo: 從塊設備寫入數據的量(寫磁盤);

5)system 顯示採集間隔內發生的中斷次數

in :表示在某一時間間隔中觀測到的每秒設備中斷數;

cs :表示每秒產生的上下文切換次數;

6)CPU 顯示cpu的使用狀態

us :顯示了用戶下所花費 cpu 時間的百分比;

sy :顯示系統花費cpu時間百分比;

id :表示cpu處於空閒狀態的時間百分比;

wa :表示I/O等待所佔用cpu時間百分比;

st :表示被偷走的cpu所佔百分比(通常都爲0,不用關注);

注意: 

咱們使用 vmstat 查看系統狀態的時候,一般都是使用這樣的形式來看的:

vmstat 1 5
vmstat 1

前面表示,每隔一秒鐘打印一次狀態,共打印5次,然後面的表示每隔1秒打印一次狀態,一直打印,除非咱們按 Ctrl + c 結束。

 

 

 

經過top命令來查看服務器負載
 再對此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 的話狀況就更不妙了,說明這座橋基本上已經快承受不了,還有超出橋負載兩倍多的車輛正在等待。
    上面的狀況和處理器的負載狀況很是類似。一輛汽車的過橋時間就比如是處理器處理某線程的實際時間。Unix 系統定義的進程運行時長爲全部處理器內核的處理時間加上線程在隊列中等待的時間。
    和收過橋費的管理員同樣,你固然但願你的汽車(操做)不會被焦急的等待。因此,理想狀態下,都但願負載平均值小於1.00 。固然不排除部分峯值會超過1.00,但久而久之保持這個狀態,就說明會有問題,這時候你應該會很焦急。
      「因此你說的理想負荷爲1.00 ?」
    嗯,這種狀況其實並不徹底正確。負荷1.00 說明系統已經沒有剩餘的資源了。在實際狀況中,有經驗的系統管理員都會將這條線劃在0.70:
      「須要進行調查法則」:若是長期你的系統負載在0.70 上下,那麼你須要在事情變得更糟糕以前,花些時間瞭解其緣由。
      「如今就要修復法則」:1.00 。若是你的服務器系統負載長期徘徊於1.00,那麼就應該立刻解決這個問題。不然,你將半夜接到你上司的電話,這可不是件使人愉快的事情。
      「凌晨三點半鍛鍊身體法則」:5.00。若是你的服務器負載超過了5.00 這個數字,那麼你將失去你的睡眠,還得在會議中說明這狀況發生的緣由,總之千萬不要讓它發生。
    那麼多個處理器呢?個人均值是3.00,可是系統運行正常!哇喔,你有四個處理器的主機?那麼它的負載均值在3.00 是很正常的。在多處理器系統中,負載均值是基於內核的數量決定的。以100% 負載計算,1.00 表示單個處理器,而2.00 則說明有兩個雙處理器,那麼4.00 就說明主機具備四個處理器。
  回到咱們上面有關車輛過橋的比喻。1.00 我說過是「一條單車道的道路」。那麼在單車道1.00 狀況中,說明這橋樑已經被車塞滿了。而在雙處理器系統中,這意味着多出了一倍的負載,也就是說還有50% 的剩餘系統資源- 由於還有另外條車道能夠通行。

因此,單處理器已經在負載的狀況下,雙處理器的負載滿額的狀況是2.00,它還有一倍的資源能夠利用。

相關文章
相關標籤/搜索