Linux之我做系統效能調優時常用的一些命令
開心一笑
【1.年輕的時候,我們常常衝著鏡子做鬼臉,年老的時候,鏡子算是扯平了。2.男孩窮者養,不然不曉得奮鬥,女孩富著養,不然人家一塊蛋糕就哄走了。3.如果婚姻是愛情的墳墓,那麼我期待有一個人把我埋了。4.睡眠是是一門藝術,誰也不能阻擋我追求藝術的腳步。5.打死你我也不會說。】
提出問題
Linux伺服器檢視效能常用的命令有哪些???
解決問題
最近工作的任務就是做公司系統效能調優。其中用的比較多的命令,在這裡總結下,大多數都是參考網上大神整理的。我只是把我用到的命令提煉整理下:
輸出系統日誌最後10行 dmesg | tail
ubuntu@ubuntu:~$ dmesg | tail
[38060.138072] e1000: eno16777736 NIC Link is Down
[38068.362442] e1000: eno16777736 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
[38070.366445] e1000: eno16777736 NIC Link is Down
[38076.376947] e1000: eno16777736 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
[38084.386812] e1000: eno16777736 NIC Link is Down
[38090.411818] e1000: eno16777736 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
[38480.597723] e1000: eno16777736 NIC Link is Down
[38495.064487] e1000: eno16777736 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
[38607.910407] IPv6: ADDRCONF(NETDEV_UP): eno16777736: link is not ready
[38607.978329] e1000: eno16777736 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
該命令會輸出系統日誌的最後10行。這些日誌可以幫助排查效能問題。
top命令
top命令是進行效能分析最常使用的命令,也是最重要的命令。每個引數代表什麼意思,都必須非常清楚。
top - 07:01:15 up 10:57, 3 users, load average: 0.00, 0.04, 0.13
Tasks: 238 total, 1 running, 237 sleeping, 0 stopped, 0 zombie
%Cpu(s): 3.4 us, 3.8 sy, 0.0 ni, 92.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem: 2040024 total, 2020312 used, 19712 free, 11220 buffers
KiB Swap: 3142652 total, 927204 used, 2215448 free. 121276 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
6844 root 20 0 333020 20520 3600 S 6.0 1.0 29:48.44 Xorg
61687 ubuntu 20 0 1635056 43716 18108 S 3.6 2.1 5:00.27 compiz
5444 ubuntu 20 0 3765292 875688 10020 S 2.7 42.9 42:13.69 java
6788 root 20 0 293028 9284 1112 S 2.3 0.5 0:51.92 dockerd
5175 ubuntu 20 0 578736 22496 14888 S 1.7 1.1 0:04.60 gnome-terminal-
27 root 39 19 0 0 0 S 0.7 0.0 0:09.02 khugepaged
7932 ubuntu 20 0 3060636 16560
top命令包含了前面好幾個命令的檢查的內容。比如系統負載情況(uptime)、系統記憶體使用情況(free)、系統CPU使用情況(vmstat)等。因此通過這個命令,可以相對全面的檢視系統負載的來源。同時,top命令支援排序,可以按照不同的列排序,方便查詢出諸如記憶體佔用最多的程式、CPU佔用率最高的程式等。
但是,top命令相對於前面一些命令,輸出是一個瞬間值,如果不持續盯著,可能會錯過一些線索。這時可能需要暫停top命令重新整理,來記錄和比對資料。
第一行:
top - 07:01:15 up 10:57, 3 users, load average: 0.00, 0.04, 0.13
解釋:
07:01:15 當前時間
up 10:57 系統執行時間,格式為時:分
3 user 當前登入使用者數
load average: 0.00, 0.04, 0.13 系統負載,即任務佇列的平均長度。三個數值分別為 1分鐘、5分鐘、15分鐘前到現在的平均值。
第二行和第三行,當有多個CPU時,這些內容可能會超過兩行。內容如下:
total 程式總數
running 正在執行的程式數
sleeping 睡眠的程式數
stopped 停止的程式數
zombie 殭屍程式數
Cpu(s):
3.4% us 使用者空間佔用CPU百分比
3.8% sy 核心空間佔用CPU百分比
0.0% ni 使用者程式空間內改變過優先順序的程式佔用CPU百分比
92.8% id 空閒CPU百分比
0.0% wa 等待輸入輸出的CPU時間百分比
0.0%hi:硬體CPU中斷佔用百分比
0.0%si:軟中斷佔用百分比
0.0%st:虛擬機器佔用百分比
最後兩行為記憶體資訊。內容如下:
Mem:
2040024 total 實體記憶體總量
2020312 used 使用的實體記憶體總量
17616k free 空閒記憶體總量
11220 buffers 用作核心快取的記憶體量
Swap:
3142652 total 交換區總量
927204 used 使用的交換區總量
2215448 free 空閒交換區總量
121276 cached 緩衝的交換區總量,記憶體中的內容被換出到交換區,而後又被換入到記憶體,但使用過的交換區尚未被覆蓋,該數值即為這些內容已存在於記憶體中的交換區的大小,相應的記憶體再次被換出時可不必再對交換區寫入。
程式資訊區統計資訊區域的下方顯示了各個程式的詳細資訊。首先來認識一下各列的含義。
序號 列名 含義
a PID 程式id
b PPID 父程式id
c RUSER Real user name
d UID 程式所有者的使用者id
e USER 程式所有者的使用者名稱
f GROUP 程式所有者的組名
g TTY 啟動程式的終端名。不是從終端啟動的程式則顯示為 ?
h PR 優先順序
i NI nice值。負值表示高優先順序,正值表示低優先順序
j P 最後使用的CPU,僅在多CPU環境下有意義
k %CPU 上次更新到現在的CPU時間佔用百分比
l TIME 程式使用的CPU時間總計,單位秒
m TIME+ 程式使用的CPU時間總計,單位1/100秒
n %MEM 程式使用的實體記憶體百分比
o VIRT 程式使用的虛擬記憶體總量,單位kb。VIRT=SWAP+RES
p SWAP 程式使用的虛擬記憶體中,被換出的大小,單位kb。
q RES 程式使用的、未被換出的實體記憶體大小,單位kb。RES=CODE+DATA
r CODE 可執行程式碼佔用的實體記憶體大小,單位kb
s DATA 可執行程式碼以外的部分(資料段+棧)佔用的實體記憶體大小,單位kb
t SHR 共享記憶體大小,單位kb
u nFLT 頁面錯誤次數
v nDRT 最後一次寫入到現在,被修改過的頁面數。
w S 程式狀態(D=不可中斷的睡眠狀態,R=執行,S=睡眠,T=跟蹤/停止,Z=殭屍程式)
x COMMAND 命令名/命令列
y WCHAN 若該程式在睡眠,則顯示睡眠中的系統函式名
z Flags 任務標誌,參考 sched.h
查詢登入當前系統的使用者資訊:w命令
ubuntu@ubuntu:~$ w
20:15:44 up 11:17, 3 users, load average: 0.21, 0.16, 0.16
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
ubuntu :0 :0 Thu00 ?xdm? 30:09 1.63s /sbin/upstart --user
ubuntu pts/7 :0 Thu23 45:01m 42:57 8.80s /home/ubuntu/inno/idea-IU-162.2032.8/bin/fsnotifier64
ubuntu pts/18 :0 06:47 0.00s 0.47s 0.05s w
可查詢登入當前系統的使用者資訊,以及這些使用者目前正在做什麼操作
iostat
執行時,如果出現下面的提示資訊
ubuntu@ubuntu:~$ iostat
The program 'iostat' is currently not installed. You can install it by typing:
sudo apt-get install sysstat
執行下 sudo apt-get install sysstat 即可。
Iostat提供三個報告:CPU利用率、裝置利用率和網路檔案系統利用率,使用-c,-d和-h引數可以分別獨立顯示這三個報告。
記憶體分析命令:free m
ubuntu@ubuntu:~$ free -m
total used free shared buffers cached
Mem: 1992 672 1320 6 22 209
-/+ buffers/cache: 440 1552
Swap: 3068 403 2665
free: 檢視系統記憶體的使用情況,-m參數列示按照兆位元組展示。
最後兩列分別表示用於IO快取的記憶體數,和用於檔案系統頁快取的記憶體數。需要注意的是,第二行-/+ buffers/cache,看上去快取佔用了大量記憶體空間。這是Linux系統的記憶體使用策略,儘可能的利用記憶體,如果應用程式需要記憶體,這部分記憶體會立即被回收並分配給應用程式。因此,這部分記憶體一般也被當成是可用記憶體。如果可用記憶體非常少,系統可能會動用交換區(如果配置了的話),這樣會增加IO開銷(可以在iostat命令中提現),降低系統效能。
檢視CPU的佔用情況 mpstat
顯示每個CPU的佔用情況,如果有一個CPU佔用率特別高,那麼有可能是一個單執行緒應用程式引起的。
ubuntu@ubuntu:~$ mpstat -P ALL 1
Linux 4.2.0-16-generic (ubuntu) 04/30/2017 _x86_64_ (2 CPU)
10:57:30 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
10:57:31 PM all 1.52 0.00 0.51 0.00 0.00 0.51 0.00 0.00 0.00 97.47
10:57:31 PM 0 3.03 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 96.97
10:57:31 PM 1 0.00 0.00 0.00 0.00 0.00 1.02 0.00 0.00 0.00 98.98
讀書感悟
來自《罪與罰》
- 人這種卑鄙的東西,什麼都會習慣的。
- 我唯一擔心的是我們明天的生活能否配得上今天所承受的苦難。
- 胡扯是一切生物種只有人類享有的唯一特權。通過胡扯,可以得到真理。
- 憑良心行事,可以不惜流血。
- 貧窮不是罪惡,而極貧就是一種罪惡。
- 我可以不是英雄,但要做一名勇士。
經典故事
【那天跟老公幸運地訂到了票回婆家,上次後卻發現有位女士坐在我們的位子上,老公示意我先坐在她旁邊的位子,卻沒有請這位女士讓位。我仔細一看,發現她右腳有一點不方便,才瞭解老公為何不請它讓出位子。他就這樣從嘉義一直站到臺北,從頭到尾都沒向這位女士表示這個位子是他的,下了車之後,心疼老公的我跟他說:“讓位是善行,但從嘉義到臺北這麼久,大可中途請她把位子還給你,換你坐一下”老公說:"人家不方便是一輩子,我們就不方便三小時而已”。聽到老公這麼說,我相對感動,有這麼一位善良又為善不欲人知的好老公,讓我覺得世界變得溫柔很多。心念一轉,世界可能從此不同,人生中,每一件事情,都有轉向的能力,就看我們怎麼想,怎麼轉。】
大神文章
如何用命令檢查Linux伺服器效能
linux伺服器效能檢視
監控 Linux 效能的 18 個命令列工具
幾條簡單命令檢查Linux伺服器效能
用十條命令在一分鐘內檢查Linux伺服器效能
linux的top命令引數詳解
其他
如果有帶給你一絲絲小快樂,就讓快樂繼續傳遞下去,歡迎點贊、頂、歡迎留下寶貴的意見、多謝支援!
相關文章
- Linux系統效能調優之效能分析Linux
- Linux效能調優命令之freeLinux
- (3)Linux效能調優之Linux檔案系統Linux
- linux調優效能命令Linux
- Linux系統效能調優技巧Linux
- Linux中監控系統效能常用的命令!Linux
- Linux 常用系統效能監控命令Linux
- linux 效能調優工具perf + 火焰圖 常用命令Linux
- 效能調優命令之jstackJS
- Linux常用的一些核心引數(調優)Linux
- 如何利用 JuiceFS 的效能工具做檔案系統分析和調優UI
- (2)Linux效能調優之Linux記憶體體系Linux記憶體
- 在Linux中,如何進行系統效能調優?Linux
- Linux常用系統命令Linux
- Linux 效能優化之 IO 子系統Linux優化
- Linux系統調優Linux
- 我常用的Linux命令Linux
- 我的常用Linux命令Linux
- Linux系統命令彙總之系統備份常用命令(轉)Linux
- linux系統基礎的優化以及常用命令Linux優化
- (1)Linux效能調優之Linux程式管理Linux
- Linux常用效能命令Linux
- linux常用系統分析命令Linux
- Linux常用系統管理命令Linux
- 一些常用的linux命令Linux
- Linux優化之IO子系統監控與調優Linux優化
- linux系統維護常用命令之sarLinux
- 以身試水Linux系統一些常用命令整理Linux
- 我常用的那些linux命令Linux
- LINUX系統效能調諧 (zt)Linux
- LINUX系統效能調諧(轉)Linux
- linux系統效能調優第一步——效能分析(vmstat) (轉載)Linux
- Linux系統常用命令Linux
- Linux系統調優介紹Linux
- Linux常用命令:效能命令Linux
- 效能調優學習之硬體調優
- linux常用到的檢視系統命令Linux
- linux 常用的系統資訊查詢命令Linux