服务器内存使用率定位常用命令整理

服务器内存使用率定位常用命令整理笔记

生产服务器问题描述

系统提醒服务器内存使用率过高,Swap交换区内存使用率过高,系统运行速度变慢存在高风险。

问题定位方法

内存使用情况查看

free命令: 显示系统可用内存以及已经使用的内存的信息
free #默认kb单位
free -m #Mb单位
free -h #Gb单位

在这里插入图片描述
内容分析:

total : 总计物理内存的大小
used : 已使用内存的大小
free : 空闲内存的大小
shared : 多个进程共享的内存总大小
buff/cache : 磁盘缓存大小(当内存不足时此部分内存会自动释放,内存足够时不会释放)
available : 可用内存大小 , 从应用程序的角度来说:available = free + buff/cache .
top命令: 查看进程信息,动态

top命令反应的是系统进程动态信息,默认10s更新一次。
top 命令详解,请参考http://www.jb51.net/article/40807.htm
基本命令:

按键盘数字“1”,可监控每个逻辑CPU的状况:
键盘“b”(打开/关闭加亮效果)
键盘“x”(打开/关闭排序列的加亮效果)
”shift + >”或”shift + <”可以向右或左改变排序列
敲击“f”键,编排基本视图中的显示字段
s,改变画面更新频率
l,关闭或开启第一部分第一行 top 信息的表示
t,关闭或开启第一部分第二行 Tasks 和第三行 Cpus 信息的表示
m,关闭或开启第一部分第四行 Mem 和 第五行 Swap 信息的表示
top

在这里插入图片描述
内容分析:

  PID:进程的ID
  USER:进程所有者
  PR:进程的优先级别,越小越优先被执行
  NI:进程Nice值,代表这个进程的优先值
  VIRT:进程占用的虚拟内存
  RES:进程占用的物理内存
  SHR:进程使用的共享内存
  S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态
  %CPU:进程占用CPU的使用
  %MEM:进程使用的物理内存和总内存的百分
  TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值
  COMMAND:启动该进程的命令名称

通过查看内存占用率高的PID,查看相关进程

ps:查看进程信息,静态,即当前状态

常用命令:

ps -aux: 查看系统所有进程
ps -l: 进查看自己的bash相关进程
ps aux --sort -rss : 按照 rss 排序显示内容
ps aux --sort -rss |head -n 10: 按照 rss 排序显示前10进程内容
ps aux | grep [pid] : 查询指定pid进程的信息

在这里插入图片描述

查看Swap分区内存占用比较多的进程
for i in `cd /proc;ls | grep "^[0-9]" | awk ' $0 >100'`;do awk '/Swap:/{a=a+$2}END{print '"$i"',a/1024"M"}' /proc/$i/smaps;done 2>&1 | sort -k2nr | head

在这里插入图片描述
获取交换区内存使用比较多的PID,使用

ps aux | grep [pid]

查看具体的进程信息

如何释放swap内存
1,重启占用swap的进程
2,关闭swap分区(有时候并不能查看到哪些进程占用swap,则需要先关闭swap分区再开启)
==关闭swap分区注意事项和步骤==:
a,确保系统空闲内存大于swap已用内存
b,可以先清理内存cache,空出足够内存(echo "1" > /proc/sys/vm/drop_caches)
c,关闭swap分区(swapoff -a),这个过程需要等待
d,swap分区释放后,恢复swap分区(swapon -a)
e,恢复内存cache的设置(echo "0" > /proc/sys/vm/drop_caches)

补充其他查看内存信息命令

cat /proc/meminfo #查询内存详情
/proc/$pid/statm #查询pid内存信息
/proc/$pid/status #查询pid内存信息
vmstat -s

备注

开发主机为内网机,不方便截图,文章中涉及图片来源于其他文档,借用于下面链接:

https://www.jianshu.com/p/e9e0ce23a152

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值