如果只会用个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