Linux 内存使用率

以M为单位查看内存

free -m 

在这里插入图片描述

Linux/Unix系统是非常稳健的,虽然内存占用显示90%以上,但依然可保证365天以上无须重启。对于Linux系统,评估其压力的主要指标是最近5分钟的负载指数:比如用w命令或者top去看,可以看到“0.70 0.35 0.01”这样的数字,分别表示5分钟内的、10分钟内的、15分钟内排队的进程数,只要第一个数字即5分钟内的负载不大于5,系统就是健康的,不用做任何维护;如果这个数字大于了5,那么通常系统速度就会变慢,一般有如下几种可能:

1) 有程序占用大量CPU,使用top命令来检查(看看是否有java程序锁死之类的故障)

2) 有程序占用大量内存,使得内存真正不够用了(这个才是真正需要加内存的时候),比如由于MySQL在较大负载下运行容量为GB级别的数据库导致内存不够用,需要给服务器插入更多物理内存

3) 磁盘系统读写故障,IO吞吐错误造成CPU负载上升,需要光盘引导进入单用户模式扫描修复磁盘,修不好就只能更换新硬盘了

因此,对于Linux/Unix系统内存占用的百分比,无须过于关心,一般检查系统负载参数即可

首先cat /proc/sys/vm/drop_caches的值,默认为0
手动执行sync命令(描述:sync 命令运行 sync 子例程。如果必须停止系统,则运行 sync 命令以确保文件系统的完整性。sync 命令将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件)
然后手动释放缓存echo 3 > /proc/sys/vm/drop_caches
生产环境不推荐直接释放缓存

MEM应用使用率计算

mem可用=memfree+buffers+cached
memusd utl =(memtotal - memfree-buffers-cached)/memtotal
#或者
100 -  (memfree+buffers+cached)/memtotal =memuse utl

计算:写个内存使用率的脚本结果输出到文件

vim memuseutl.sh
#!/bin/bash
memfree=`free -m | grep -w Mem | awk '{print $4}'`
membuff=`free -m | grep -w Mem | awk '{print $6}'`
#可用的等于memfree+buffers+cached
#memcache=`free -m | grep -w Mem | awk '{print $7}'`
memtotal=`free -m | grep -w Mem | awk '{print $2}'`
memmsg=`echo "scale=2;($memtotal-$memfree-$membuff)/$memtotal*100" | bc`
memuse=`echo $memmsg | awk -F "." '{print $1}'`
echo -e 内存使用率: $memuse% >> /mnt/script/memutl

查看执行结果
在这里插入图片描述

free -m | grep -w Mem | awk '{print ($2-$4-$6)/$2*100}' |awk -F "." '{print $1}
#其中$2是total $4是free $6(cache+free)

在这里插入图片描述

显示内存使用量最高的前 10 个进程

top -o %MEM -bn1 | head -n 17
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值