快速定位系统内存异常的套路

博客首页文章列表 松花皮蛋me 2019-03-10 03:23
文章首发于公众号 松花皮蛋的黑板报松花皮蛋的黑板报,作者就职于京东,在稳定性保障、敏捷开发、高级JAVA、微服务架构有深入的理解

一、性能指标

1、内存使用情况,比如已用内存、共享内存(tmpfs)、可用内存、缓存(磁盘读取文件的页缓存和slab分配器可回收的内存)和缓冲区的用量(缓存将要写入磁盘的数据)等

2、进程内存使用情况。进程的虚拟内存(进程代码段和数据段等)、常驻内存、共享内存以及Swap内存(通过swap换出到磁盘)等

3、缺页异常。系统调用内存分配请求后,并不会立刻为其分配物理内存,而是在请求首次时,通过缺页异常来分配。如果缺页异常需要IO介入,有可能导致内存访问变慢


二、性能工具

三、套路

1、先用fre和top查看系统整体的内存使用情况

2、再用vmstat和pidstat,查看一段时间的趋势,从而判断内存问题的类型

3、最后进行详细分析,比如内存分配分析、缓存和缓冲区分析、具体进程的内存使用分析等