1. 程式人生 > >2018-1-22 Linux學習筆記

2018-1-22 Linux學習筆記

mem 網卡流量 img 9.png 哪些 數字 內存交換 內存大小 以及

10.1 使用w查看系統負載
  • w命令用於顯示已經登陸系統的用戶列表,並顯示用戶正在執行的指令。執行這個命令可得知目前登入系統的用戶有那些人,以及他們正在執行的程序。單獨執行w命令會顯示所有的用戶,也可指定用戶名稱,僅顯示某位用戶的相關信息。
    技術分享圖片
  • 該命令顯示的信息, 第一行從左面開始顯示的信息依次為:運行命令時的時間,系統運行時間,登錄用戶數,平均負載。
  • 第二行開始以及下面所有的行,告訴我們的信息是,當前登錄的都有哪些用戶,以及他們是從哪裏登錄的等等(tty1之類是在服務器終端直接登錄的用戶,pts/0之類則是通過遠程連接登錄的用戶)。其中應重點關註第一行中的 ‘load average:’ 後面的三個數值。
  • 第一個數值表示1分鐘內系統的平均負載值;第二個數值表示5分鐘內系統的平均負載值;第三個數值表示15分鐘系統的平均負載值。這個值的意義是,單位時間段內CPU活動進程數。這個值越大說明你的服務器壓力越大。一般情況下這個值只要不超過服務器的cpu數量就沒有關系,如果服務器cpu數量為8,那麽這個值若小於8,就說明當前服務器沒有壓力,否則就要關註一下了.

  • uptime命令也可以查看系統負載,但也僅有系統負載相關信息,不夠w命令來的豐富.
    技術分享圖片

備註:
cat /proc/cpuinfo ----->查看cpu核數
技術分享圖片

10.2 vmstat命令

  • vmstat命令的含義為顯示虛擬內存狀態(“Viryual Memor Statics”),但是它可以報告關於進程、內存、I/O等系統整體運行狀態。w 命令能查看系統整體上的負載,通過看那個數值可以知道當前系統有沒有壓力,但是具體是哪裏(CPU, 內存,磁盤等)有壓力就無法判斷了。而通過 vmstat 就可以知道具體是哪裏有壓力。
  • vmstat命令打印的結果共分為6部分:procs, memory, swap, io, system, cpu. 要重點關註一下r b si so bi bo幾列。
    技術分享圖片
    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 查看系統狀態的時候,通常都是使用這樣的形式來看的:
    [root@localhost ~]# vmstat 1 5
    技術分享圖片
    或者:
    [root@localhost ~]# vmstat 1
    前面表示,每隔一秒鐘打印一次狀態,共打印5次,而後面的表示每隔1秒打印一次狀態,一直打印,除非我們按 Ctrl + c 結束
    技術分享圖片

    10.3 top命令

  • top命令用於動態監控進程所占系統資源,每隔3秒變一次,該命令的特點是把占用系統資源(CPU,內存,磁盤IO等)最高的進程放到最前面.
  • top應重點查看的還是下半部分的進程使用系統資源詳細狀況,重點需要關註%CPU, %MEM, COMMAND幾項 ,RES 這一項為進程所占內存大小,而 %MEM 為使用內存百分比.
  • 在 top 狀態下,按 “shift + m”, 可以按照內存使用大小排序. 按 “shift + p”, 可以按照CPU使用大小排序. 按數字 ‘1’ 可以列出各顆cpu的使用狀態。
    技術分享圖片

top -bn1命令表示非動態打印系統資源使用情況,可以用在shell腳本中.和 top 命令唯一的區別就是, 它一次性全部把所有信息輸出出來而非動態顯示.
技術分享圖片

10.4 sar命令

  • sar 命令可以監控系統所有資源狀態,比如平均負載、網卡流量、磁盤狀態、內存使用等等。它不同於其他系統狀態監控工具的地方在於,它可以打印歷史信息,可以顯示當天從零點開始到當前時刻的系統狀態信息。
  • 如果系統中沒有安裝這個命令,請使用 yum install -y sysstat 命令安裝。
  • 初次使用sar命令會報錯,那是因為sar工具還沒有生成相應的數據庫文件(可等約10分鐘後再查看就不報錯了).它的數據庫文件在 “/var/log/sa/” 目錄下,默認保存一個月.
  • /var/log/sa/目錄下有類似sa22, sar22文件(此處僅為舉例說明之用,其22表示日期22日),其區別是sa22是二進制文件,只能通過sar命令形式去查看,而sar22是可以直接通過cat命令來查看的.
    1)查看網卡流量 sar -n DEV
    技術分享圖片
  • IFACE這列表示設備名稱,rxpck/s 表示每秒進入收取的包的數量,txpck/s 表示每秒發送出去的包的數量,rxkB/s 表示每秒收取的數據量,txkB/s 表示每秒發送的數據量。如果有一天你所管理的服務器丟包非常嚴重,那麽你就應該看一看這個網卡流量是否異常了.rxpck/s 數據量幾千是比較正常的,上萬啥的就要關註了,可能是被攻擊了.正常的服務器網卡流量不會這麽高,除非是你自己在拷貝數據.
  • 此外也可以查看某一天的網卡流量歷史,使用-f選項,後面跟文件名
    sar -f /var/log/sa/saxx
    技術分享圖片

2)查看歷史負載 sar -q
這個命令用於查看服務器在過去的某個時間的負載狀況.
技術分享圖片


3) 查看磁盤讀寫 sar -a
這個命令用於查看磁盤讀寫狀況.
技術分享圖片

10.5 nload命令

nload命令也能用於動態查看當前網卡流量.默認nload命令是沒安裝的,需要先運行yum instal epel-release安裝epel-release包後,再運行yum instal nload安裝nload包.
技術分享圖片
備註:
nload命令狀態下, 可按q退出nload命令, 按左右方向鍵可在不同網卡中切換,以查看各網卡流量情況.

2018-1-22 Linux學習筆記