linux内存耗尽分析

操作系统级

  1. 查看设备整体运行状况
  • loadAverage:1分钟、5分钟、15分钟的cpu负载情况,满载情况下为CPU核数*1
  • %us:用户空间程序的cpu使用率
  • %ss:系统进程的cpu使用率
  • %id:空闲cpu
  • H/shit+h:显示线程信息
  1. 内存分析
  • free -g:查看整体内存使用情况,注意观察如下几个指标
  • 操作系统总共有多少内存
  • 已经有多少内存被使用
  • buffercached里面有多少内存被使用
  • -/+ buffers/cache:-表示从应用程序角度看系统被用掉了多少内存,+表示从应用程序角度看系统还有多少内存可用
  • 应用程序使用了多少内存/应用程序还有多少内存可以使用
  • 系统监控工具:sysstat
    • 安装:zypper in sysstat(包括iostatmpstatsarsa
  • IO负载高判断依据:
    • svctm > 15s:平均每次IO操作的服务时间
      %util接近100%:一秒中有多少时间用于IO操作

进程分析

  1. 进程排序
    ps -aux | sort -k4,4nr | awk '{sum += $1} END {print "sum=", sum}'
    sort参数解释:k后面根的数字表示第几列,n表示数字,r表示逆序排列
  2. pidstat
  • pidstat -d -p {pid}:对进程io进行采样
  • pidstat -u -p {pid}:对进程cpu占用率进行采样
  • pidstat -r -p {pid}:对进程内存占用率进行采样
  • jstack -l {pid}:查看某个进程的所有线程,-l表示检查锁
  • jstatjmap

性能测试

  • chaosblade:阿里混沌工具
  • memtester:内存测试工具
  • cpuburn:cpu测试工具

参考

posted on 2019-11-17 17:01  harry1989  阅读(1199)  评论(0编辑  收藏  举报

导航