每天一個linux命令(九月)
2014-09-02
top 即時顯示系統中各個進程的資源佔用狀況,類似於Windows的工作管理員 命令參數: -b 批處理 -c 顯示完整的治命令 -I 忽略失效過程 -s 保密模式 -S 累積模式 -i<時間> 設定間隔時間 -u<使用者名稱> 指定使用者名稱 -p<進程號> 指定進程 -n<次數> 迴圈顯示的次數 執行個體: 1.top 2.top -p 574 顯示指定的進程資訊 3.top -d 3 設定資訊更新時間 4.top -n 2 設定資訊更新次數,說明更新2次後自動終止 5.top -c 顯示 完整命令 top 詳解 第一行,任務隊列資訊,同 uptime 命令的執行結果,具體參數說明情況如下: 14:06:23 — 當前系統時間 up 70 days, 16:44 — 系統已經運行了70天16小時44分鐘(在這期間系統沒有重啟過的吆!) 2 users — 當前有2個使用者登入系統 load average: 1.15, 1.42, 1.44 — load average後面的三個數分別是1分鐘、5分鐘、15分鐘的負載情況。 load average資料是每隔5秒鐘檢查一次活躍的進程數,然後按特定演算法計算出的數值。 如果這個數除以邏輯CPU的數量,結果高於5的時候就表明系統在超負荷運轉了。 第二行,Tasks — 任務(進程),具體資訊說明如下: 系統現在共有206個進程,其中處於運行中的有1個,205個在休眠(sleep),stoped狀態的有0個,zombie狀態(殭屍)的有0個。 第三行,cpu狀態資訊,具體屬性說明如下: 5.9%us — 使用者空間佔用CPU的百分比。 3.4% sy — 核心空間佔用CPU的百分比。 0.0% ni — 改變過優先順序的進程佔用CPU的百分比 90.4% id — 空閑CPU百分比 0.0% wa — IO等待佔用CPU的百分比 0.0% hi — 硬中斷(Hardware IRQ)佔用CPU的百分比 0.2% si — 非強制中斷(Software Interrupts)佔用CPU的百分比 備忘:在這裡CPU的使用比率和windows概念不同,需要理解linux系統使用者空間和核心空間的相關知識! 第四行,記憶體狀態,具體資訊如下: 32949016k total — 實體記憶體總量(32GB) 14411180k used — 使用中的記憶體總量(14GB) 18537836k free — 空閑記憶體總量(18GB) 169884k buffers — 緩衝的記憶體量 (169M) 第五行,swap交換分區資訊,具體資訊說明如下: 32764556k total — 交換區總量(32GB) 0k used — 使用的交換區總量(0K) 32764556k free — 空閑交換區總量(32GB) 3612636k cached — 緩衝的交換區總量(3.6GB) 備忘: 第四行中使用中的記憶體總量(used)指的是現在系統核心控制的記憶體數,空閑記憶體總量(free)是核心還未納入其管控範圍的數量。 納入核心管理的記憶體不見得都在使用中,還包括過去使用過的現在可以被重複利用的記憶體, 核心並不把這些可被重新使用的記憶體交還到free中去,因此在linux上free記憶體會越來越少,但不用為此擔心。 如果出於習慣去計算可用記憶體數,這裡有個近似的計算公式: 第四行的free + 第四行的buffers + 第五行的cached, 按這個公式此台伺服器的可用記憶體:18537836k +169884k +3612636k = 22GB左右。 對於記憶體監控,在top裡我們要時刻監控第五行swap交換分區的used,如果這個數值在不斷的變化, 說明核心在不斷進行記憶體和swap的資料交換,這是真正的記憶體不夠用了。 第六行,空行。 第七行以下:各進程(任務)的狀態監控,項目列資訊說明如下: PID — 進程id USER — 進程所有者 PR — 進程優先順序 NI — nice值。負值表示高優先順序,正值表示低優先順序 VIRT — 進程使用的虛擬記憶體總量,單位kb。VIRT=SWAP+RES RES — 進程使用的、未被換出的實體記憶體大小,單位kb。RES=CODE+DATA SHR — 共用記憶體大小,單位kb S — 進程狀態。D=不可中斷的睡眠狀態 R=運行 S=睡眠 T=跟蹤/停止 Z=殭屍進程 %CPU — 上次更新到現在的CPU時間佔用百分比 %MEM — 進程使用的實體記憶體百分比 TIME+ — 進程使用的CPU時間總計,單位1/100秒 COMMAND — 進程名稱(命令名/命令列)
2014-09-01
watch 周期性的執行程式,並全螢幕顯示執行結 (execute a program periodically, showing output fullscreen) 參數:-n或--interval watch預設每2秒運行一下程式,可以用-n或-interval來指定間隔的時間。-d或--differences 用-d或--differences 選項watch 會高亮顯示變化的地區。 而-d=cumulative選項會把變動過的地方(不管最近的那次有沒有變動)都高亮顯示出來。i執行個體:1. watch -n 1 -d date 每秒高亮顯示時間變化2. watch -n 1 -d 'ls -al' 每秒高亮顯示目錄檔案的變化