Linux 了解内存使用情况
2021/8/12 7:07:44
本文主要是介绍Linux 了解内存使用情况,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
通常我们是这样看内存的剩余情况的:
[root@lw home]# free -m total used free shared buff/cache available Mem: 3790 3416 144 21 229 114 Swap: 3967 1526 2441
那么这个信息是如何解读的呢,以下这个图解释的挺清楚的!
上面的情况下我们总的内存有48262M,用掉了7913M。 其中buffer+cache总共14+267=281M, 由于这种类型的内存是可以回收的,虽然我们用掉了7913M,但是实际上我们如果实在需要的话,这部分buffer/cache内存是可以放出来的。
我们来演示下:
$ sudo sysctl vm.drop_caches=3 vm.drop_caches = 3 $ free -m [root@172-13-0-113 home]# free -m total used free shared buff/cache available Mem: 3790 3416 144 21 3 41 Swap: 3967 1526 2441
我们把buffer/cache大部分都清除干净了,只用了44M,所以我们这次used的空间是7676M。
到现在我们比较清楚几个概念:
1. 总的内存多少
2. buffer/cache内存可以释放的。
3. used的内存的概率。
统计所有进程占用的物理内存总和:
#/bin/bash for PROC in `ls /proc/|grep "^[0‐9]"` do if [ ‐f /proc/$PROC/statm ]; then TEP=`cat /proc/$PROC/statm | awk '{print ($2)}'` RSS=`expr $RSS + $TEP` fi done RSS=`expr $RSS \* 4 / 1024 / 1024` echo $RSS"GB"
关于内存的去向主要有3个:1. 进程消耗。 2. slab消耗 3.pagetable消耗。统计这三个使用的内存:
#/bin/bash for PROC in `ls /proc/|grep "^[0-9]"` do if [ -f /proc/$PROC/statm ]; then TEP=`cat /proc/$PROC/statm | awk '{print ($2)}'` RSS=`expr $RSS + $TEP` fi done RSS=`expr $RSS \* 4` PageTable=`grep PageTables /proc/meminfo | awk '{print $2}'` SlabInfo=`cat /proc/slabinfo |awk 'BEGIN{sum=0;}{sum=sum+$3*$4;}END{print sum/1024/1024}'` echo $RSS"KB", $PageTable"KB", $SlabInfo"MB" printf "rss+pagetable+slabinfo=%sMB\n" `echo $RSS/1024 + $PageTable/1024 + $SlabInfo|bc` free -m
查看内存使用情况,查slab,/proc/meminfo
也可以使用 nmon工具内存统计显示更加直观
cat /proc/meminfo
查看超过100M的 slab 缓存组件
cat /proc/slabinfo |awk '{if($3*$4/1024/1024 > 100){print $1,$3*$4/1024/1024 "MB"} }
回收slab占用的内存
echo 2 > /proc/sys/vm/drop_caches
这篇关于Linux 了解内存使用情况的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-18git仓库有更新,jenkins 自动触发拉代码怎么配置的?-icode9专业技术文章分享
- 2024-12-18Jenkins webhook 方式怎么配置指定的分支?-icode9专业技术文章分享
- 2024-12-13Linux C++项目实战入门教程
- 2024-12-13Linux C++编程项目实战入门教程
- 2024-12-11Linux部署Scrapy教程:新手入门指南
- 2024-12-11怎么将在本地创建的 Maven 仓库迁移到 Linux 服务器上?-icode9专业技术文章分享
- 2024-12-10Linux常用命令
- 2024-12-06谁看谁服! Linux 创始人对于进程和线程的理解是…
- 2024-12-04操作系统教程:新手入门及初级技巧详解
- 2024-12-04操作系统入门:新手必学指南