Board logo

标题: Unix/Linux 系统自动化管理 内存管理篇(2) [打印本页]

作者: look_w    时间: 2018-6-13 15:14     标题: Unix/Linux 系统自动化管理 内存管理篇(2)

系统内存监控命令系统管理员除了需要对特定的进程内存占用情况跟踪观察外,更多的时候需要监控整个系统的内存使用信息。 vmstat 和 svmon 能够帮助我们轻易的获得这方面的数据。
vmstat        
vmstat(Virtual Memory Statistics) 命令能够帮助我们监控内核进程,虚拟内存,磁盘和处理器统计信息。 它是对系统的整体情况进行统计,不足之处就是无法对某个特定进程做分析。 vmstat 的输出可以是以百分比表示的平均值,也可以是其统计的总和。
如果没有指定任何的参数,vmstat 将会输出系统从开机启动之后所有的虚拟内存活动。
我们经常使用类似 vmstat 5 5 的命令参数,代表着表示在 5 秒时间做 5 次采样。
清单 4. vmstat5 5 命令监控内存资源使用状况
1
2
3
4
5
6
7
8
System Configuration: lcpu=4 mem=1024MB

kthr    memory              page              faults        cpu
----- ----------- ------------------------ ------------ -----------
r  b   avm   fre  re  pi  po  fr   sr  cy  in   sy  cs us sy id wa
0  0 208817 44828   0   0   0   0    0   0   3   60 220  0  0 99  0
0  0 208817 44828   0   0   0   0    0   0   2   27 225  0  0 99  0
0  0 208817 44828   0   0   0   0    0   0   4   29 219  0  0 99  0




下面将对输出的结果中涉及到的内存管理相关字段进行说明:
memory:物理内存和虚拟内存的使用信息。如果虚拟内存被访问,那么将被认为是活动的。.
page:缺页异常和分页活动信息。此数值是间隔时间内的平均值,以秒为单位。
内存的瓶颈问题我们可以通过 sr( 页面扫描频率 ) 来观察,如果扫描频率过高,始终维持高于 200 页说明存在内存瓶颈,同样的道理如果 page 项中的 pi( 调入的页面数 ) 和 po( 调出的页面数 ) 不为 0,说明系统必须经常性被动的通过页面的调入调出程序来维持系统的稳定运行,表明也有可能存在内存瓶颈。解决的方法可以通过简单的增加内存或者优化设计应用程序来减少对内存的使用率。
svmon
svmon 命令提供了一个更加深入的内存使用情况的分析,比起 vmstat 和 ps 命令,它带有更多的信息量。-i 选项能够间隔性的捕获一个内存状态的快照。
svmon 命令可以生成 9 种不同的报告结果,这里我们选用比较有代表性的带 -G 标志来监视内存全局使用情况。
清单 5. svmon 命令显示当前内存全局使用状况
1
2
3
4
5
6
7
8
9
10
11
12
# svmon -G
              size       inuse        free         pin     virtual
memory       262144      208128       54016       72891      163644
pg space     131072        1912

              work        pers        clnt       other
pin           62497           0           0       10394
in use       163644           0       44484

PageSize   PoolSize       inuse        pgsp         pin     virtual
s    4 KB         -      128032        1912       24667       83548
m   64 KB         -        5006           0        3014        5006




这里 svmon 只是提供了更加精确的结果,具体的内存调试优化可以参照以上 vmo, ps 和 smstat 命令中所涉及到的方法。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0