1. 监控内存
- vmstat
如下是执行vmstat后的输出:
fengxi@ubuntu:~/bash$ vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 167516 35040 354276 0 0 469 28 101 373 4 5 89 1 0
- cat /proc/meminfo
fengxi@ubuntu:~/bash$ cat /proc/meminfo
MemTotal: 1023924 kB
MemFree: 167276 kB
MemAvailable: 554148 kB
Buffers: 35408 kB
Cached: 354304 kB
SwapCached: 0 kB
- top
top命令显示动态实时地内存,CPU的使用情况。当然,该命令也会打印出系统的负载情况。
top - 06:59:42 up 19 min, 2 users, load average: 0.00, 0.04, 0.14
Tasks: 226 total, 1 running, 225 sleeping, 0 stopped, 0 zombie
%Cpu(s): 4.8 us, 4.1 sy, 0.0 ni, 91.1 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem: 1023924 total, 843696 used, 180228 free, 35440 buffers
KiB Swap: 1046524 total, 0 used, 1046524 free. 354448 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
947 root 20 0 158948 40128 19720 S 5.3 3.9 0:23.42 Xorg
1775 fengxi 20 0 249984 85572 60384 S 3.3 8.4 0:06.78 compiz
2180 fengxi 20 0 116208 33152 25724 S 1.3 3.2 0:04.40 gnome-termi+
1791 fengxi 20 0 30508 7424 6880 S 0.3 0.7 0:00.38 ibus-engine+ <span style="font-family: Arial, Helvetica, sans-serif;"> </span>
通过按M,则会以占用内存从大到小排列;按P,则会以占用CPU从大到小排列。
- ps
ps命令则静态地显示内存,CPU等的使用情况。
fengxi@ubuntu:~/bash$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.1 0.4 23944 4780 ? Ss 06:40 0:02 /sbin/init auto
root 2 0.0 0.0 0 0 ? S 06:40 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 06:40 0:00 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< 06:40 0:00 [kworker/0:0H]
其中输出的第三列为CPU的占比,第四列为内存的占比。
如果我想要杀掉占用内存最多的5个进程,那么我们简单地写一个脚本实现此功能。
#!/bin/bash
pids=$(ps aux | sort -k4nr | head -5 | awk '{print $2}')
for pid in $pids
do
kill -9 $pid
done
这里sort的参数含义为:-k4以第四列为排序标准,-n为以字符串排序,-r为reverse的简称,因为sort默认是从小到大排序,加上-r则为从大到小排序。如果以数字大小为排序准则,则要用-g参数。
- free
free命令显示系统中使用和空闲的内存数。
fengxi@ubuntu:~/bash$ free
total used free shared buffers cached
Mem: 1023924 936728 87196 6356 76040 402712
-/+ buffers/cache: 457976 565948
Swap: 1046524 6940 1039584
2. 监控CPU
- vmstat
- top
- ps
上述命令往往既能显示内存的使用率,也可以显示CPU的使用率。
3. 监控硬盘
- df
fengxi@ubuntu:~/bash$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 484M 0 484M 0% /dev
tmpfs 100M 5.6M 95M 6% /run
/dev/sda1 19G 5.8G 12G 33% /
tmpfs 500M 156K 500M 1% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 500M 0 500M 0% /sys/fs/cgroup
cgmfs 100K 0 100K 0% /run/cgmanager/fs
tmpfs 100M 44K 100M 1% /run/user/1000