linux内存耗尽分析

Posted harry1989

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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测试工具

参考

  • linux下哪些进程在消耗我们的cache
  • grep中使用"d"匹配数字不成功的原因
  • linux命令 --lsof命令 一切皆文件
  • 参数代换命令xargs使用小结
  • xargs命令教程 阮一峰

以上是关于linux内存耗尽分析的主要内容,如果未能解决你的问题,请参考以下文章

POWERSHELL.EXE进程经常将电脑内存耗尽。

Linux Kernel模块内存泄露分析

在 32 位 Linux 中无法耗尽物理内存

linux内核中内存耗尽OOM killer

如何使用 JDBC 将大量数据加载到文件中而不会耗尽内存?

Linux下swap耗尽该怎么办?如何释放swap