查看Linux系統的平均負載

一、Linux系統的平均負載的概念
  有時候咱們會以爲系統響應很慢,可是又找不到緣由,這時就要查看平均負載了,看它是否有大量的進程在排隊等待。特定時間間隔內運行隊列中的平均進程數能夠反映系統的繁忙程度,因此咱們一般會在本身的網站或系統變慢時第一時間查系統的負載,即CPU的平均負載。
  二、查看平均負載
  究竟應該如何查看平均負載呢?最簡單的命令是uptime,以下所示:
  • [root@localhost ~]# uptime  
  •  11:31:11 up 11 days, 19:01, 2 users, load average: 0.02, 0.01, 0.00
  •   目前的主流服務器都是雙四核,有至關強悍的CPU,作通常的應用服務的話,Linux系統的負載這塊倒不用咱們擔憂。
      還能夠用w命令來查看,順即可以查看一下系統當前有哪些用戶,他們佔用了哪些終端,以下所示:
  • [root@localhost ~]# w  
  •  11:33:00 up 11 days, 19:03, 2 users, load average: 0.00, 0.00, 0.00  
  • USER TTY FROM LOGIN@  IDLE  JCPU  PCPU WHAT  
  • root pts/1113.57.224.3 09:032:11m 0.04s 0.04s -bash  
  • root pts/2113.57.224.3 11:310.00s 0.02s 0.00s w
  •   另外,還有動態命令top,這個命令也能夠反映系統負載狀況。在下面的命令提示中,咱們只關心加粗字體部分。
  • [root@localhost ~]# top  
  • top - 11:37:47 up 11 days, 19:08, 2 users, load average: 0.00, 0.00, 0.00  
  • Tasks: 122 total,  1 running, 121 sleeping,  0 stopped,  0 zombie  
  • Cpu(s): 0.1%us, 0.0%sy, 0.0%ni, 99.9%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st  
  • Mem:  4044136k total, 1435504k used, 2608632k free,  274740k buffers  
  • Swap: 8193140k total,0k used, 8193140k free,  941884k cached
  •   上面加粗字體顯示的內容是什麼意思呢?再經過uptime查看一下。
  • [root@localhost ~]# uptime  
  •  11:39:36 up 11 days, 19:16, 1 user, load average: 0.09, 0.03, 0.01
  •   原來它所表示的是過去的1分鐘、5分鐘和15分鐘內進程隊列中的平均進程數量。
      那麼,如何衡量當前系統是否負載太高呢?能夠從如下幾點來考慮。
      若是每一個CPU(能夠按CPU核心的數量計算)當前的活動進程數不大於3,則系統性能良好。
      若是每一個CPU當前的活動進程數不大於4,表示能夠接受。
      若是每一個CPU當前的活動進程數大於5,則系統性能問題嚴重。
      還能夠結合vmstat命令來判斷咱們的系統是否過於繁忙,若是肯定很繁忙的話,就要考慮是否更換服務器或增長CPU的個數了。總結以下:
      若是r常常大於3或4,且id常常少於50,則表示CPU的負荷很重。
      在上面例子中,個人服務器是PowerEdge 2850,CPU是雙核雙線程的,則0.09/2=0.045(即負載值/真實CPU個數),此係統的CPU負載基本能夠忽略了。事實上,如今主流服務器的CPU都很強悍,若是不是應用虛擬化等特殊場景,基本上負載都很小。
      按照前面的計算公式,我所配置Nagios報警的CPU負載閾值爲CPU核心的數量(即CPU的物理個數×核數)。仍是以個人服務器PowerEdge 2850爲例,其CPU核心的數量爲2×2=4,則設置報警值爲4。這樣設置是合理的,由於畢竟不是每一個應用服務器的CPU都支持多核心,畢竟整個網站中還有些性能比較弱的服務器是用來作備份的。
    相關文章
    相關標籤/搜索