那些年珍藏的linux監控命令

如果只會用個top和ps,豈不是太大材小用了,而且很多參數都沒用上。

下面是一些實際的解決方案,本文非講解參數或原理,具體參數含義有興趣自行查詢。

查看內存佔用最多的進程

實際一般只需要知道內存佔用,及其進程啓動命令,知道是哪個程序就好。

ps大法

# ps -eo pmem,pcpu,vsize,pid,cmd | sort -k 1 -nr | head -5
 9.3  0.1 9031172 16090 java -jar start.jar
 8.3  0.0 8487956 26303 java -jar web.jar

如果更詳細內容:

# ps aux --sort -rss | head
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root     16090  0.1  9.3 9031172 1534136 ?     Sl   Mar26  10:48 java -jar start.jar
root     26303  0.0  8.3 8487956 1376960 ?     Sl   Mar23   7:38 java -jar web.jar

下面更容易理解,但是命令顯示不全

# ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head -10
  PID  PPID CMD                         %MEM %CPU
16090     1 java -jar start.jar          9.3  0.1
26303     1 java -jar web.jar  8.3  0.0

top大法好

# top -b -o +%MEM | head -n 14
top - 19:40:37 up 16 days,  7:21,  3 users,  load average: 0.50, 0.51, 0.42
Tasks: 156 total,   1 running, 155 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  1.0 sy,  0.0 ni, 99.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem : 16432412 total,  3776164 free, 11291864 used,  1364384 buff/cache
KiB Swap:  8388604 total,  4448996 free,  3939608 used.  4711392 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
16090 root      20   0 9031172 1.463g   8308 S   0.0  9.3  10:49.47 java
26303 root      20   0 8487956 1.313g   5928 S   0.0  8.4   7:39.10 java
 1967 root      20   0 5810680 1.166g   5600 S   0.0  7.4 390:36.74 java
24983 root      20   0 9010736 988.6m  15032 S   0.0  6.2   2:03.30 java
30677 root      20   0 20.868g 796216  32420 S   0.0  4.8   4:48.23 java
21704 root      20   0 8949684 710076  13308 S   0.0  4.3   1:27.42 java
 9851 just      20   0 6189964 484484   4944 S   0.0  2.9 183:57.37 java

htop

top的升級版,界面非常好看,誰用誰知道。

查看佔用空間最多的文件(夾)

當前目錄佔用最多的文件夾或文件(不包括子文件夾):

# du -hs * | sort -rh | head -n 5
452M	lib
127M	cache
125M	ftp
93M	log
260K	spool

如果要包括子文件夾:

# du -Sh | sort -rh | head -n 5
173M	./lib/mysql
125M	./ftp
101M	./lib/rpm
89M	./log
53M	./lib/mysql/jobserver

只查看佔用空間最多的文件:

# find -type f -exec du -Sh {} + | sort -rh | head -n 5
125M	./ftp/dependencies.jar
92M	./lib/rpm/Packages
76M	./lib/mysql/ibdata1
48M	./lib/mysql/ib_logfile1
48M	./lib/mysql/ib_logfile0

如果要指定路徑,只需修改find參數:

# find /var/ftp -type f -exec du -Sh {} + | sort -rh | head -n 5
125M	/var/ftp/dependencies.jar
4.0K	/var/ftp/tmp.txt
4.0K	/var/ftp/pub/tmp.txt

網絡

查看某端口對應的進程

# lsof -i TCP:8080
COMMAND   PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
java    31876 root  269u  IPv6 1897559      0t0  TCP *:webcache (LISTEN)

IO

iotop

查看實時磁盤讀寫

iostat

查看硬盤讀寫速率,一般用於排查磁盤性能問題

# iostat
Linux 3.10.0-693.el7.x86_64 (host) 	03/30/2020 	_x86_64_	(6 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           5.48    0.00    0.32    0.35    0.01   93.84

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               7.57       120.45      1012.41  170193222 1430505193

未完待續~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章