1. 程式人生 > >Linux學習--Linux系統日常管理1

Linux學習--Linux系統日常管理1

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程序/任務
r :表示執行和等待cpu時間片的程序數,和1分鐘平均負載值類似,如果長期大於伺服器cpu的個數,則說明cpu不夠用了;
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這就是併發。也即同一時刻伺服器處理的請求。