当前位置: 首页 > news >正文

关于linux查询free内存消耗命令

1、查询docker的镜像消耗free总和
 

docker stats --no-stream --format "table {{.Container}}\t{{.Name}}\t{{.MemUsage}}" | awk '
NR==1 { print; next }
{split($3, a, "/");mem = a[1];if (mem ~ /MiB/) {mem_mb = substr(mem, 1, length(mem)-3);} else if (mem ~ /GiB/) {mem_mb = substr(mem, 1, length(mem)-3) * 1024;} else {mem_mb = 0;}printf "Container: %s, Name: %s, MemUsage: %.2f MB\n", $1, $2, mem_mb;total_mem += mem_mb;
}
END { printf "Total MemUsage: %.2f MB\n", total_mem }
'

解释

  • docker stats --no-stream --format "table {{.Container}}\t{{.Name}}\t{{.MemUsage}}":获取所有容器的内存使用情况,并以表格格式输出容器 ID、容器名称和内存使用。
  • awk
    • NR==1 { print; next }:打印表头(第一行)。
    • split($3, a, "/"); mem = a[1];:拆分内存使用字段,提取实际使用的内存部分。
    • if (mem ~ /MiB/) { ... } else if (mem ~ /GiB/) { ... }:根据内存单位(MiB 或 GiB)转换为 MB。
    • printf "Container: %s, Name: %s, MemUsage: %.2f MB\n", $1, $2, mem_mb; total_mem += mem_mb;:打印每个容器的内存使用,并累加总内存使用。
    • END { printf "Total MemUsage: %.2f MB\n", total_mem }:在处理完所有记录后,输出总内存使用。

2、查询java -cp命令的free总和

ps -eo pid,user,vsz,rss,comm,args | grep 'java -cp' | grep -v grep | sort -k4 -nr | awk '
BEGIN { total_rss = 0 }
{rss_mb = $4 / 1024;printf "PID: %d, USER: %s, VSZ: %.2f MB, RSS: %.2f MB, COMMAND: %s, ARGS: %s\n", $1, $2, $3 / 1024, rss_mb, $5, substr($0, index($0, $6));total_rss += rss_mb;
}
END { printf "Total RSS: %.2f MB\n", total_rss }
'

解释

  • ps -eo pid,user,vsz,rss,comm,args:列出所有进程的信息,包含 PID、用户、虚拟内存、常驻内存、命令和完整的命令行参数。
  • grep java:筛选出包含 java 的行。
  • grep -v grep:排除包含 grep 的行,以免抓到本次 grep java 命令自身。
  • sort -k4 -nr:按第4列(RSS)降序排列。
  • awk
    • BEGIN { total_rss = 0 }:在处理记录之前初始化 total_rss 为 0。
    • { rss_mb = $4 / 1024; printf "PID: %d, USER: %s, VSZ: %.2f MB, RSS: %.2f MB, COMMAND: %s, ARGS: %s\n", $1, $2, $3 / 1024, rss_mb, $5, substr($0, index($0, $6)); total_rss += rss_mb; }:处理每条记录,将 RSS 从 KB 转换为 MB,并将其累加到 total_rss 中。
    • END { printf "Total RSS: %.2f MB\n", total_rss }:在处理完所有记录后输出 total_rss

3、查询java -cp的各个进程的占用内存 

ps -eo pid,user,vsz,rss,comm,args | grep 'java -cp' | grep -v grep | sort -k4 -nr | awk '{ printf "PID: %d, USER: %s, VSZ: %.2f MB, RSS: %.2f MB, COMMAND: %s, ARGS: %s\n", $1, $2, $3/1024, $4/1024, $5, substr($0, index($0,$6)) }'

解释

  • ps -eo pid,user,vsz,rss,comm,args:列出所有进程的信息,包含 PID、用户、虚拟内存、常驻内存、命令和完整的命令行参数。
  • grep java:筛选出包含 java 的行。
  • grep -v grep:排除包含 grep 的行,以免抓到本次 grep java 命令自身。
  • sort -k4 -nr:按第4列(RSS)降序排列。
  • awk '{ printf "PID: %d, USER: %s, VSZ: %.2f MB, RSS: %.2f MB, COMMAND: %s, ARGS: %s\n", $1, $2, $3/1024, $4/1024, $5, substr($0, index($0,$6)) }':格式化输出,将 VSZRSS 从 KB 转换为 MB,并显示具体的程序路径。

4、ps 命令查看进程内存使用情况
按内存使用百分比排序,并显示前几行占用内存最多的进程。

ps aux --sort=-%mem | head

用mb显示
 

ps aux --sort=-%mem | awk 'NR==1 {print; next} {printf "%s %s %s %s %.2f MB %.2f MB %s %s %s %s %s %s %s\n", $1, $2, $3, $4, $5/1024, $6/1024, $7, $8, $9, $10, $11, $12, $13}'

相关文章:

  • Vue3实战笔记(55)—Vue3.4新特性揭秘:defineModel重塑v-model,拥抱高效双向数据流!
  • 【计算Nei遗传距离】
  • 东莞酷得智能 组装机械狗电子玩具方案
  • java多态——向下转型
  • Spring boot 随笔 1 DatasourceInitializer
  • 【2024新版】银系统源码/超市收银系统/智慧新零售/ERP进销存管理/线上商城/商户助手
  • c++ QT 实现QMediaPlayer播放音频显示音频级别指示器
  • Kotlin 对象
  • 【机器学习】探索未来科技的前沿:人工智能、机器学习与大模型
  • SpringBoot六种API请求参数读取方式
  • 请描述Vue常用的修饰符
  • 太速科技-基于3U VPX 4核8线程I7 X86主板
  • 事务与并发控制
  • 【康耐视国产案例】AI视觉相机创新 加速商超物流数智化转型
  • sudo apt update sudo: apt: command not found
  • 【挥舞JS】JS实现继承,封装一个extends方法
  • CSS魔法堂:Absolute Positioning就这个样
  • HTML5新特性总结
  • jquery ajax学习笔记
  • linux学习笔记
  • MD5加密原理解析及OC版原理实现
  • windows下如何用phpstorm同步测试服务器
  • 百度小程序遇到的问题
  • 初识 beanstalkd
  • 分布式事物理论与实践
  • 构建工具 - 收藏集 - 掘金
  • 批量截取pdf文件
  • 前嗅ForeSpider采集配置界面介绍
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • 小程序开发之路(一)
  • 小试R空间处理新库sf
  • ​​​​​​​​​​​​​​Γ函数
  • ​configparser --- 配置文件解析器​
  • ​虚拟化系列介绍(十)
  • # 消息中间件 RocketMQ 高级功能和源码分析(七)
  • #gStore-weekly | gStore最新版本1.0之三角形计数函数的使用
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • $.ajax()参数及用法
  • (1)SpringCloud 整合Python
  • (苍穹外卖)day03菜品管理
  • (二)Linux——Linux常用指令
  • (四)Android布局类型(线性布局LinearLayout)
  • (转)Groupon前传:从10个月的失败作品修改,1个月找到成功
  • (自用)网络编程
  • .bat批处理(二):%0 %1——给批处理脚本传递参数
  • .naturalWidth 和naturalHeight属性,
  • .NET Core WebAPI中使用swagger版本控制,添加注释
  • .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例
  • .net反编译的九款神器
  • .Net接口调试与案例
  • .net生成的类,跨工程调用显示注释
  • .secret勒索病毒数据恢复|金蝶、用友、管家婆、OA、速达、ERP等软件数据库恢复
  • @staticmethod和@classmethod的作用与区别
  • [ vulhub漏洞复现篇 ] ECShop 2.x / 3.x SQL注入/远程执行代码漏洞 xianzhi-2017-02-82239600
  • [ACP云计算]易混淆知识点(考题总结)