如何查看linux服务器内存使用情况

1. free命令

free 命令显示系统使用和空闲的内存情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。

直接输入free命令,显示如下

 

free命令默认是显示单位kb,可以采用free -m和free -g命令查看,分别表示MB和GB

另外,free -h会自动选择以适合理解的容量单位显示

 

Mem:表示物理内存统计,如果机器剩余内存非常小,一般小于总内存的20%,则判断为系统物理内存不够
Swap: 表示硬盘上交换分区的使用情况,如剩余空间较小,需要留意当前系统内存使用情况及负载,当Swap的used值大于0时,则表示操作系统物理内存不够,已经开始使用硬盘内存了。
第1行数据11G表示物理内存总量;
6.5G表示总计分配给缓存(包含buffers与cache)使用的数量,但其中可能部分缓存并未实际使用;
1.3G表示未被分配的内存;
shared表示共享内存;
4.0G表示系统分配但未被使用的buffers数量;
4.7G表示系统分配但未被使用的available数量


今天被叫着看一个性能问题,发现了一个很有意思的事情,当Linux的物理内存快被耗尽时,系统会把一些进程占用的内存转移swap区,当物理内存被释放一部分时,swap区的一些内存占用又慢慢回到mem区,但是mem区却不再是之前的满负荷状态,而是有一部分free的内存!

 

【17G大小进程压力测试结果】

 

【总结】

1.当物理内存快被耗尽时,系统并没有崩溃,而是拿swap做临时内存,当两者都耗尽,系统OutofMemory
2.物理内存到达峰值,系统中可能一些不常用的进程内存占用被踢到swap区
3.当Mem区的资源进行释放时,被挪到swap的内存并不会全部回来的,随着系统或者程序的唤醒才会慢慢回到mem区
4.Swap是内存不够时磁盘虚拟出来的内存,磁盘主要是I/O级别的操作并不是系统内核级别的操作,处理速度跟Mem区不是一个等级
---------------------
 

2.哪些应用程序占的内存比较多

ps -eo pmem,pcpu,rss,vsize,args | sort -k 1 -r | less

执行以上命令可查看各个程序进程内存使用的内存情况,如下图所示,第一列为进程占用的内存百分比,可以看到哪些应用程序占的内存比较多,用于排查问题:
 

2.top命令排查内存

top 命令查看系统的实时负载, 包括进程、CPU负载、内存使用等等;

直接输入top命令

 

 

下面表示整体信息

列表的含义

 

 

进入top的实时界面后,默认按照CPU的使用率排序,通过“shift+m”按键将进程按照内存使用情况排序,可以查看哪些进程是当前系统中的内存开销“大户”。

top命令中,按下 f 键,进入选择排序列的界面,这里可以选择要显示的信息列,要按照哪些信息列进行排序等

参照红框的说明来选择是否显示那些列就行,标*的就是显示

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值