1、Linux中程序性能监控

一、内存

在Linux上运行程序时,常常遇到卡顿、内存消耗大,这时候我们需要使用free来查看内存使用情况。

free命令是显示系统内存的使用情况,一般包括了物理内存、交换内存以及内核缓冲区内存。

[root@i-7cfx3ox6 ~]# free -b
             total       used       free     shared    buffers     cached
Mem:    8254541824 7044112384 1210429440     212992  172191744 1889677312
-/+ buffers/cache: 4982243328 3272298496
Swap:   8589930496    7946240 8581984256

[root@i-7cfx3ox6 ~]# free -k
             total       used       free     shared    buffers     cached
Mem:       8061076    6878644    1182432        208     168156    1845388
-/+ buffers/cache:    4865100    3195976
Swap:      8388604       7760    8380844

[root@i-7cfx3ox6 ~]# free -m
             total       used       free     shared    buffers     cached
Mem:          7872       6717       1154          0        164       1802
-/+ buffers/cache:       4750       3121
Swap:         8191          7       8184

[root@i-7cfx3ox6 ~]# free -g
             total       used       free     shared    buffers     cached
Mem:             7          6          1          0          0          1
-/+ buffers/cache:          4          3
Swap:            7          0          7

[root@i-7cfx3ox6 ~]# free -h
             total       used       free     shared    buffers     cached
Mem:          7.7G       6.6G       1.1G       208K       164M       1.8G
-/+ buffers/cache:       4.6G       3.0G
Swap:         8.0G       7.6M       8.0G

[root@i-7cfx3ox6 ~]# free -l -h
             total       used       free     shared    buffers     cached
Mem:          7.7G       6.6G       1.1G       208K       164M       1.8G
Low:          7.7G       6.6G       1.1G
High:           0B         0B         0B
-/+ buffers/cache:       4.6G       3.0G
Swap:         8.0G       7.6M       8.0G

[root@i-7cfx3ox6 ~]# free -t -h
             total       used       free     shared    buffers     cached
Mem:          7.7G       6.6G       1.1G       208K       164M       1.8G
-/+ buffers/cache:       4.6G       3.0G
Swap:         8.0G       7.6M       8.0G
Total:         15G       6.6G       9.1G

[root@i-7cfx3ox6 ~]# free -s 10
             total       used       free     shared    buffers     cached
Mem:       8061076    6878652    1182424        208     168156    1845388
-/+ buffers/cache:    4865108    3195968
Swap:      8388604       7760    8380844

             total       used       free     shared    buffers     cached
Mem:       8061076    6878924    1182152        208     168156    1845388
-/+ buffers/cache:    4865380    3195696
Swap:      8388604       7760    8380844

二、CPU

监控CPU,我们一般可以

2-1、top命令

[root@i-7cfx3ox6 dev]# top -help
        top: procps version 3.2.8
usage:  top -hv | -abcHimMsS -d delay -n iterations [-u user | -U user] -p pid [,pid ...]

top界面程序交互常用按键说明:

当进入top命令后,按1按键即可看到每核CPU的运行指标和详细信息

CPU 的使用有多个维度的指标,下面分别说明:

一般地,我们比较关注空闲 CPU 的百分比,它可以从整体上体现 CPU 的利用情况。

统计信息区的前5行是系统整体的系统信息 Tasks: 140 total, 1 running, 139 sleeping, 0 stopped, 0 zombie

内存信息Mem:物理内存

Mem:   8061076k total,  6813244k used,  1247832k free,   168176k buffers
Swap:  8388604k total,     7760k used,  8380844k free,  1846060k cached

2-1、vmstat命令

比较关注的有下面几列:

每个进程上下文切换的具体数量,可以通过查看内存映射文件获取:

cat /proc/2788/status