松花皮蛋的黑板报
  • 分享在京东工作的技术感悟,还有JAVA技术和业内最佳实践,大部分都是务实的、能看懂的、可复现的

扫一扫
关注公众号

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

博客首页文章列表 松花皮蛋me 2019-03-10 11:23

一、性能指标

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

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

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


二、性能工具

三、套路

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

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

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