Linux學習--Linux系統日常管理1
阿新 • • 發佈:2018-12-25
1. 命令 w w返回的資訊,比較重要的就是負載值。 load average 後面的三個數分別是對應的1分鐘,5分鐘,15分鐘的平均負載。 load average的意義是,在這1分鐘內有多少程序正在使用cpu以及多少程序排隊將要使用cpu 例如 10個視窗可以打飯,但來了100個人。打飯的師傅是cpu,來吃飯的同學就是任務。 返回的第一行資料資訊意思如下: 系統時間 up啟動了多久時間 登入了多長時間 幾個使用者 平均負載 詳細的使用者資訊。 使用者 登入方式 從哪裡登入的 登入了多長時間 空閒時間 該終端下程序佔用cpu時間 當前命令佔用了多長cpu時間
ps:有時what下顯示的-bash,代表其在執行命令。 用uptime命令,只顯示w返回的第一行內容 1分鐘內的負載值小於核心數的時候最好。 如何看cpu有幾個核心: cat /proc/cpuinfo 檢視processor號,不管是邏輯的還是物理的cpu,有幾個就是幾個。 最直接的命令:lscpu,檢視CPU(s)這個數值,不用去查詢processor號。 如果1分鐘平均負載為12.5,而只有8個核心的話,那就是隻能執行8個任務,4.5個任務需要排隊等待使用cpu。 2. 程序不共享同一塊記憶體各用各的,執行緒共享一塊記憶體,另外 程序是同時的進行,執行緒是併發的執行 3. vmstat 1(主要看的引數是:r 、b 、si、so、bi、bo、us、sy、wa) 假如用w檢視後,發現有負載,那就可以使用vmstat 1來檢視,這些負載都是哪來的。(1代表1秒中重新整理一次) procs memory swap io system cpu 任務 記憶體 交換空間 磁碟 系統相關 cpu 通過上述引數,可以檢視到底是哪塊造成了高負載。 procs程序/任務 b :表示任務處於阻塞狀態。可能磁碟吞吐慢,網路卡,記憶體低等造成。比如等待I/O, 記憶體等,這列的值如果長時間大於1,則需要關注一下了 memory記憶體 swpd :交換了多少個塊,單位kb,這個值越大說明交換的資料越多。如果這個值很大或者這個數值一會大一會小,而且變化很快,則說明記憶體不夠用了。一般是記憶體不夠用了,才去將資料放到swpd裡。 free :剩餘記憶體空間。可以用 vmstat -S M 1來清晰檢視 buffer:緩衝剩餘空間。cpu快,磁碟讀寫慢,buffer用來平緩2者之間的速度差。資料將要寫到磁盤裡去,暫時放到記憶體裡的空間,叫buffer。 cache:快取剩餘空間。將資料從磁盤裡取出來,暫時存在記憶體裡的空間,叫cache。 swap交換空間 si (swap in):由交換區進入記憶體的數量; so (swap out):由記憶體進入交換區的數量; 一般只要記憶體夠用,這2個數值就應該為0。經常為0才正常。相對的物件為記憶體。 io磁碟 相對的物件也為記憶體。 bi(in到記憶體裡,那就是從磁碟出來,bi就是讀資料) :從塊裝置讀取資料的量(讀磁碟); bo(out從記憶體裡出來,進入磁碟,bo就是寫磁碟): 從塊裝置寫入資料的量(寫磁碟); 一般bi大於bo,讀大於寫,讀比寫頻繁,讀比寫快一些,bibo在1000以內就ok bi bo不能太大,否則代表磁碟讀寫很頻繁。 system系統 in:表示中斷的次數,表示1秒中之內中斷了多少次。 cs:上下文切換 cpu us:使用者態佔用cpu的百分比,佔用了多少cpu sy: 核心佔用cpu多少 wa :表示I/O等待所佔用cpu時間百分比. 要注意哪些程序,此塊需要補 4。 top 第一列和vmstat及w都一樣 tasks 有多少個任務 多少running多少sleeping 多少停止的 多少殭屍的(沒有人要的程序,死程序) cpu 使用者使用的cpu 系統使用的cpu 後兩行都是記憶體相關。 top -c 會顯示整個命令的全部名稱,要不只顯示程序。 pid程序號碼 user使用者 pr ni 用來衡量進行優先順序的。(pr取值範圍0~39,值越小,優先順序越高。ni取值範圍是從-19~20) virt 虛擬記憶體 res真正記憶體 shr共享記憶體 s進行狀態(s:sleep r:run) %cpucpu使用率 %mem記憶體使用率 time使用cpu多久了。 top關注 PID USER RES CPU MEM (proc裡面就是程序的號碼。) top -bn1 靜態的將所有程序資訊一次性顯示出來 top預設是按照cpu使用率排序,shift m可以切換到按照記憶體使用率排序。 5. sar 可以看所有資訊狀態。比喻為Linux的瑞士軍刀。 安裝方法:yum install -y sysstat sar -n DEV 1 10 單位是位元組 1 1秒鐘顯示 10 顯示10次 sar -n DEV 1 rxbyt/s接收的 txbyt/s使用者上傳的 receive transport 1Byte=8bit 1k=1000byte byte位元組的意思 1byte=8bit 1位元組=8位元 10Mb頻寬=1.25MB/s 10兆頻寬(這個時候的單位是bit),實際下載速度是能達到1.2M(這個時候的單位是位元組) bit就是我們平時說的頻寬多大,位元組就是我們說的實際傳輸資料的速度大小。 在我們實際上網應用中,下載軟體時常常看到諸如下載速度顯示為128KBps(KB/s),103KB/s等等寬頻速率大小字樣,因為ISP提供的線路頻寬使用的單位是位元,而一般下載軟體顯示的是位元組(1位元組=8位元),所以要通過換算,才能得實際值。然而我們可以按照換算公式換算一下: 128KB/s=128×8(Kb/s)=1024Kb/s=1Mb/s即128KB/s=1Mb/s。 資料都是存在了/var/log/sar日誌裡。最多可以記錄10天資料。 可以檢視指定某一天的資料,例如: sar -n DEV -f /var/log/sa/sa20 sar可以查cpu和硬碟資料。比如 檢視系統的歷史負載 : sar -q 檢視某一天的歷史負載:sar -q -f /var/log/sa/sa19 檢視磁碟 sar -b 1 10 主要看bread和bwrtn這兩個值。 -i 一般是指定某一個裝置 6. free 檢視記憶體的。 |
free -m 看系統還剩多少記憶體,要看途中標白的數值。 362是刨去buffers,cached後,剩餘的。 3508包括了buffer,cashed裡未使用的 362+192+2952=3508 |
4473是真正使用的記憶體。 7.ps ps aux 主要看pid cpu記憶體使用 狀態 S=sleep。 R=Running。 s=farther。 +前臺程序。 < 高優先順序的。 N低優先順序的。 l多執行緒的程序。L被鎖的程序 Z殭屍程序 D不能被中斷的程序 T被終止被暫停的程序。 主要用在,想檢視程序是否啟動了。 ps aux|grep 程序名字 pstree樹形的去檢視程序。 |
8.netstat 檢視網路狀態。 netstat -lnp 檢視整個系統都有哪些埠在被監聽著。 netstat -an 檢視系統的網路連線狀況 左邊是源,右邊是目標,最後是狀態。 netstat -an|grep -ci establish 檢視併發數 netstat -an|wc -l 不能用這個命令來查併發數,因為大多數都是time_wait狀態,建立完連線後,在等待下次傳輸。 netstat -an|grep `122.122.69.86:80`|grep -ic `estab` 檢視80埠的併發數 什麼是併發:我的資料正在傳輸、正在通訊、正在和你打交道,請求你給我發過來,建立連線 establish這就是併發。也即同一時刻伺服器處理的請求。 |