查看进程内存真实占用情况的脚本

cadence—virtuosoic617的使用技巧收集区 cadence使用 阅读详情

#!/bin/bash
#****************************************************************#
# ScriptName: pm
# Author: osdba
# Create Date: 2010-01-31
# Modify Author:
# Modify Date: 2010-01-31
# Function: show processes memory used
#***************************************************************#


function getpidmem()
{
cat /proc/$1/smaps 2>/dev/null |awk  /
'BEGIN{
    total_size=0;
    total_rss=0;
    total_shared_clean=0;
    total_shared_dirty=0;
    total_private_clean=0;
    total_private_dirty=0;
    total_swap=0;
   
    mem_size=0;
    mem_rss=0;
    mem_shared_clean=0;
    mem_shared_dirty=0;
    mem_private_clean=0;
    mem_private_dirty=0;
    mem_swap=0;
}
{
    if($1 ~ /^Size:/)
    {
        mem_size=$2;
    }
    else if($1 ~ /^Rss:/)
    {
        mem_rss=$2;
    }
    else if($1 ~ /^Shared_Clean:/)
    {
        mem_shared_clean=$2;
    }
    else if($1 ~ /^Shared_Dirty:/)
    {
        mem_shared_dirty=$2;
    }
    else if($1 ~ /^Private_Clean:/)
    {
        mem_private_clean=$2;
    }
    else if($1 ~ /^Private_Dirty:/)
    {
        mem_private_dirty=$2;
    }
    else if($1 ~ /^Swap:/)
    {
        mem_swap=$2;
    }
    else
    {
        if(ipcmem_start==1)
        {
            ipc_size=mem_size;
            ipc_rss=mem_rss;
            ipc_shared_clean=mem_shared_clean;
            ipc_shared_dirty=mem_shared_dirty;
            ipc_private_clean=mem_private_clean;
            ipc_private_dirty=mem_private_dirty;
            ipc_swap=mem_swap;
        }
        else
        {
            total_size=total_size+mem_size;
            total_rss=total_rss+mem_rss;
            total_shared_clean=total_shared_clean+mem_shared_clean;
            total_shared_dirty=total_shared_dirty+mem_shared_dirty;
            total_private_clean=total_private_clean+mem_private_clean;
            total_private_dirty=total_private_dirty+mem_private_dirty;
            total_swap=total_swap+mem_swap;
        };
        if($6 ~ /^//SYSV/)
        {
            ipcmem_start=1;            
        }
        else
        {
            ipcmem_start=0;       
        };
    };
}
END{
    printf("%15d %15d %15d %15d %15d %15d/n",total_rss,total_private_clean,total_private_dirty,total_shared_clean,total_shared_dirty,total_swap);
}
'
}

function show_all_process_mem()
{
    TMPFILE=`/bin/mktemp -q`
    echo "   pid     RSS(KB)   PRIV_DIRTY PRIV_CLEAN SHR_DIRTY  SHR_CLEAN    SWAP     PAGETABLE      CMDLINE"
    echo "--------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------------"
    ls -ld /proc/[0-9]* |awk '{printf("%s/n",$NF)}' > $TMPFILE
    while read LINE
    do
        PID=`basename $LINE`
        cmdline=`ps -o command -p $PID |tail -1  |cut -b 1-26`
        pagetablesize=`cat /proc/$PID/status |grep "VmPTE:"|awk '{print $2}'`
        if [ "$pagetablesize" = "" ] ; then
            pagetablesize=0
        fi
       
        meminfoline=`getpidmem $PID`
        rss=`echo $meminfoline |awk '{print $1}'`
        private_clean=`echo $meminfoline |awk '{print $2}'`
        private_dirty=`echo $meminfoline |awk '{print $3}'`
        shared_dirty=`echo $meminfoline |awk '{print $4}'`
        shared_clean=`echo $meminfoline |awk '{print $5}'`
        swap=`echo $meminfoline |awk '{print $6}'`
        total_rss=$((total_rss+rss))
        total_private_clean=$((total_private_clean+private_clean))
        total_private_dirty=$((total_private_dirty+private_dirty))
        total_shared_dirty=$((total_shared_dirty+shared_dirty))
        total_shared_clean=$((total_rss+shared_clean))
        total_swap=$((total_swap+swap))
        total_pagetablesize=$((total_pagetablesize+pagetablesize))
        if [ "$1" = "-a" ] ;then
            echo $PID $meminfoline "$pagetablesize" "$cmdline"|awk /
            '{
              printf("%9d %10d %10d %10d %10d %10d %10d %10d %-26s/n",$1,$2,$3,$4,$5,$6,$7,$8,$9);
            }'
        fi
    done <$TMPFILE
    /bin/rm $TMPFILE

    echo $total_rss $total_private_clean $total_private_dirty $total_shared_dirty $total_shared_clean $total_swap $total_pagetablesize |awk /
    '{
        printf("   ALL    %10d %10d %10d %10d %10d %10d %10d/n",$1,$2,$3,$4,$5,$6,$7);
    }'
}


function print_usage()
{
    echo "usage:"
    echo "  pm.sh -a : display all process memory info"
    echo "  pm.sh -s : display total memory info"
    echo "  pm.sh -p <pid> : display pid memory info"
}

total_rss=0
total_private_clean=0
total_private_dirty=0
total_shared_dirty=0
total_shared_clean=0
total_swap=0
total_pagetablesize=0

if [ $# -lt 1 ];then
   print_usage;
   exit 1
fi

if [ "$1" = "-a" ];then
    show_all_process_mem $1;
    exit 0
fi
if [ "$1" = "-s" ];then
    show_all_process_mem $1;
    exit 0
fi

if [ "$1" = "-p" ];then
    if [ $# -ne 2 ];then
        print_usage;
        exit 1
    fi
   
    meminfoline=`getpidmem $2`
    cmdline=`ps -o command -p $2 |tail -1  |cut -b 1-26`
    pagetablesize=`cat /proc/$2/status |grep "VmPTE:"|awk '{print $2}'`
    if [ "$pagetablesize" = "" ]; then
        pagetablesize=0
    fi
       
    echo "   pid     RSS(KB)   PRIV_DIRTY PRIV_CLEAN SHR_DIRTY  SHR_CLEAN    SWAP     PAGETABLE     CMDLINE"
    echo "--------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------------"
    echo $2 $meminfoline "$pagetablesize" "$cmdline"|awk /
    '{
        printf("%9d %10d %10d %10d %10d %10d %10d %10d %-26s/n",$1,$2,$3,$4,$5,$6,$7,$8,$9);
    }'
    exit 0
fi

张力控制速度闭环控制算法 这个算法的核心思想是通过比较实际速度和期望速度的差异来调整控制信号,以达到稳定的速度控制。比例项用于直接根据误差调整输出,积分项用于积累误差并进行补偿,微分项用于预测误差的变化趋势并进行调整。张力控制是在许多工程和工业应用中非常重要的一个过程,它涉及到通过调节力的大小来实现稳定的工作状态。通过合理设置比例、积分和微分系数,并结合实际系统的特性进行调试和优化,可以实现准确稳定的张力控制。速度闭环控制算法通过比较实际速度和期望速度之间的差异,并根据差异调整系统的输出,以保持速度稳定。 阅读详情

相关推荐

RISC-V内核移植实战:从零开始手把手实现RT-Thread上下文切换(附GD32VF103代码解析)

本文详细解析了在RISC-V架构上移植RT-Thread实时操作系统的核心步骤,重点聚焦于上下文切换机制的实现。通过对比ARM Cortex-M与RISC-V在中断处理和寄存器管理上的关键差异,并以GD32VF103开发板为例,手把手指导开发者完成libcpu抽象层适配、线程栈初始化以及三种上下文切换方式的代码编写与调试,为嵌入式开发者从ARM转向RISC-V平台提供了实战指南。

fern8的博客 739

linux task mem rss 解释

RSS is the Resident Set Size and is used to show how much memory is allocated to that process and is in RAM. It does not include memory that is swapped out. It does include memory from shared libraries as long as the pages from those libraries are actually

shenhuxi_yu的专栏 1264

IPD实战指南:如何运用SPAN模型精准定位高潜力市场并优化资源配置

本文是IPD实战指南,详细解析了如何运用SPAN模型进行市场分析与战略决策。文章通过四步实战法,指导企业科学定义细分市场、量化评估吸引力与竞争力,并绘制矩阵以制定精准的资源配置策略,从而跳出红海竞争,将资源聚焦于高潜力市场。

weixin_29306317的博客 73

Linux 内存管理中的 RSS 、VSZ等的含义

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 133310 0.3 0.3 1562108 28740 pts/2 Sl+ 18:06 0:00 VSZ:虚拟内存占用大小,单位:kb(killobytes) RSS:实际内存占用大小,单位:kb(killobytes) %CPU:进程占用CPU百分比 %MEM:进程占用内存百分比 TTY:终端类型 STAT:进程状态 ST

teaczjf的博客 4643

【AI实践】Dify调用本地和在线模型服务

Ollama可以本地部署模型,如何集成私有数据、如何外部应用程序对接,因此需要有一个应用开发框架。ip地址需要换成自己电脑的IP地址;模型名称需要和Ollama模型名称保持一致;docker是虚拟环境的主机,Ollama部署在本地主机,无法通过本机访问。找到Ollama,配置本地Ollama已经验证的模型,如phi3。在docker页面里面,也可以看到running。docker已经安装完成的情况下。,打开dify,注册登录后。在工作区选择调用即可。

AI_Gump的博客 4855

《全连接到卷积神经网络:图像识别的演变历程》

这篇文章会从传统全连接层面临的困境说起,揭示卷积神经网络(CNN)成为图像识别核心动力的原因,探究其背后蕴含的设计思想与技术创新。但是回顾历史,CNN的出现提醒我们:技术的突破往往是由对自然规律的模仿和重新构建得来的。也许,当机器真的学会“像人一样看世界”的时候,它们的“眼睛”早就超过生物视觉的限制了。例如,用5×5的核处理224×224的输入时,只要25个参数(而不是全连接那种百万级的)。* 局部性:网络的底层只需留意局部的地方(像边缘、纹理这样的地方),不用管那些全局像素之间复杂的关系。

2401_82434295的博客 673

开发中VSS、RSS、PSS、USS的区别

Android开发中VSS、RSS、PSS、USS的区别

luo_boke的博客 9206

[ensp报错:USG6000V错误代码45解决方案]

[ensp报错:USG6000V:错误代码45解决] [ensp报错:USG6000V:错误代码45解决] 第一种处理方式: ensp的45错误帮助文档里的解决方法:(这里就不说了,上华为爸爸的图) ensp的45错误:如果你的45错误不是描述的那个,可能是ensp与virtualbox不兼容了。 错误描述:具体表现为在virtualbox里没有vfw_usg的条目,虚拟介质管理器里也没有相应的条目: 就是vfw_usg_vdi这个 这种情况下你把ensp卸载重装多少次都没用,原因在两个软件的兼容

weixin_45456536的博客 3万+

V8 内存管理

一、内存查看 console.log( '\n node分配到的总内存 rss: ' + mem.rss, '\n 堆内存 heapTotal: ' + mem.heapTotal, '\n 已使用的内存 heapUsed: ' + mem.heapUsed, '\n node中额外申请到的c++内存: ' + mem.external, '...

qq_28773159的博客 516

生物信息学名词解释 | K-mer (长度为k的短序列)

K-mer 何谓K-mer 所谓Kmer,即为一段长度为k的DNA片段,是由测序reads剪切一部分得到的。k为一个奇数,k=几,就为几mer。 比如:我的测序reads长度为100bp,我将这100bp打断成17bp的短片段,打断后的17bp段片段就叫17mer,可以获得(100-17+1)条k-mer序列。 Table1 k-mers for GTAGAGCTGT. k k-mers 1 G,T,A,G,A,G,C,T,G,T 3 GTA,TAG,AGA,GAG,AGC,GCT,CT

qq_50637636的博客 2万+

动态博弈、威胁与承诺(博弈论入门学习笔记四)

0 动态博弈 动态博弈:行动有先后顺序,不同的参与人在不同时点行动,先行动者的选择影响后行动者的选择空间,后行动者可以观察到先行动者做了什么选择。例如下棋、消费者和商家讨价还价、谈婚论嫁、企业之间的价格战等等。 因此,为了做出最优的行动选择,每个参与人都应该思考:如果我如此选择,对方将如何应对?如果我是他,我将会如何行动?给定他的应对,什么是我的最优选择? 动态博弈中的战略:在博弈开始之前就...

stepho的博客 1万+

深入解析Linux进程内存:VSS、RSS、PSS、USS及查看方式

VSS是虚拟耗用内存大小,是进程可以访问的所有虚拟内存的总量,包括进程独自占用的物理内存、和其他进程共享的内存、分配但未使用的内存。RSS是比例驻留内存大小,包括进程独自占用的物理内存、比例分配和其他进程共享的内存(共享库内存会均分到各个共享进程)。

mofei 1万+

槽型光电开关传感器原理图设计,已量产(光电传感器)

在嵌入式设备的位置限位、物料计数等场景中,槽型光电开关是性价比极高的传感器方案 —— 它通过遮挡发射器与接收器之间的光路实现电平切换,电路简单且抗干扰性优于漫反射式光耦。今天分享一个实际项目中落地的槽型光电开关检测电路,从器件选型到逻辑设计都做了简化适配,适合小批量原型或低成本产品的需求。

不脱发的程序猿 718

linux查询进程占用真实内存,Shell脚本查看进程内存真实占用情况

#!/bin/bash#****************************************************************## ScriptName: pm# Author: osdba# Create Date: 2010-01-31# Modify Author:# Modify Date: 2010-01-31# Function: show processes...

weixin_35476604的博客 915

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

linux查看真实内存占用,Shell脚本查看进程内存真实占用情况

#!/bin/bash#****************************************************************## scriptname: pm# author: osdba# create date: 2010-01-31# modify author:# modify date: 2010-01-31# function: show processes...

weixin_36272622的博客 984

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

mysql 查询内存消耗进程_查看进程内存真实占用情况的脚本

SRH_CLEAN:shared_clean,共享的干净内存页的大小,这里指代码页等共享的部分,而没有包括共享内存的部分;SWAP:指进程使用的swap空间的大小。PAGETABLE:指进程的虚拟地址和物理地址映射时pagetable的大小。所以对于oracle进程来说,一个进程占用内存的大小为:PRI_DIRTY+PRI_CLEAN+PAGETABLE,而SHR_CLEAN+SHR_DIRTY是...

weixin_32920055的博客 654

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

linux 真实内存 shell,Shell脚本查看进程内存真实占用情况

#!/bin/bash#****************************************************************## ScriptName: pm# Author: osdba# Create Date: 2010-01-31# Modify Author:# Modify Date: 2010-01-31# Function: show processes...

weixin_39605296的博客 156

docker mongo 查看内存_Docker查看应用的实际内存

前言 我们把应用部署到Docker里面之后,有什么办法查看这个应用占用了多少内存呢?docker本身提供了一个命令让我们可以直接看到当前时间所有容易占用的情况。docker stats --no-stream 从上面来看,这几个应用用的内存加起来已经是将近12G了。但是,这个时候看到机器使用的内存还不到2G。第一反应就是,docker 这个统计太离谱,太坑人了。查了一番资料过后,其实是计算的问题,...

weixin_30293523的博客 382

Linux机器怎么查看进程内存占用情况

场景推荐命令实时监控htop(首选)或top脚本/自动化查单个进程详情或系统整体内存free -h需要我帮你写一个一键找出内存异常进程的脚本吗?或者解释某个具体输出?欢迎继续问!😊从你提供的top输出来看,系统中运行了多个Java 进程和一个MySQL 进程,整体内存使用较高,但是否“正常”需结合物理内存总量和业务负载来判断。

qq_1342832900的博客 2054

linux记录进程内存、cpu占用的shell脚本

pid=10582 //指定进程id interval=10 //时间间隔 filename= 'mem_cpu_record.txt'//记录文件名 while true do date "+%Y-%m-%d-%H:%M:%S" | tr '\n' ' ' >>$filename //记录时间 cat /proc/$pid/status |grep -e VmRSS | tr '\n' ' ' >>$fi...

j99999999955555的博客 3619

centos7根据端口查进程_CentOS7.查看进程占用端口情况

linux下查看进程占用端口和端口占用进程命令Linux下查看进程占用端口: 查看程序对应进程号:ps–ef|grep进程名 REDHAT:查看进程号所占用的端口号:netstat–nltp|grep进程号 ubuntu:查看进程占用端 ...linux 下查看进程占用端口和端口号占用进程命令linux 下查看进程占用端口:(1)查看程序对应的进程号: ps -ef | grep 进程名...

weixin_39634576的博客 1863

Linux查看Java进程PID、端口号和内存占用脚本

原文地址【https://blog.csdn.net/CL_YD/article/details/79623297】 背景 正常情况下,一个jps -ml就可以查看机器上有多少Java进程以及它们的PID,如果还要看端口号,甚至内存占用,就还要配合netstat以及ps等查询,如果直接使用一个命令就能查出所有信息多好呀,那就试试吧。 查询PID Java自带的jps就很好用,不多说。 查询占...

gzxdale的博客 3605

linux中bash命令占用内存高,Linux实现脚本监测特定进程占用内存情况方法总结

1.Linux系统下,我们可以利用以下命令来获取特定进程的运行情况:1cat/proc/$PID/status其中PID是具体的进程号,这个命令打印出/proc/特定进程/status文件的内容,信息比较多,包含了物理内存/虚拟内存的使用状况,监控进程是否有内存泄露的问题,一般查看进程占用物理内存的情况:VmRSS: xxxkB可以采用grep命令过滤出我们需要的信息:1cat/proc/$P...

weixin_29443201的博客 1226

linux查看当前占用内存最多的进程,详解Linux如何查看当前占用CPU或内存最多的几个进程...

详解Linux如何查看当前占用CPU或内存最多的几个进程命令ps -aux | sort -k4nr | head -N命令详解:1、head:-N可以指定显示的行数,默认显示10行。2、ps:参数a指代all——所有的进程,u指代userid——执行该进程的用户id,x指代显示所有程序,不以终端机来区分。ps -aux的输出格式如下:USER PID %CPU %MEM VSZ RSS...

weixin_30753697的博客 2156

linux ps内存占用率,linux ps命令,查看某进程cpu和内存占用率情况, linux ps命令,查看进程cpu和内存占用率排序。 不指定...

背景:有时需要单看某个进程的CPU及占用情况,有时需要看整体进程的一个占用情况。一、 linux ps命令,查看某进程cpu和内存占用率情况[root@test vhost]# ps auxUSER PID%CPU%MEMVSZ RSS TTYSTATSTART TIME COMMAND解释:linux 下的ps命令USER 进程运行用户...

weixin_39640849的博客 1875

linux跑循环脚本占内存,Linux下实现脚本监测特定进程占用内存情况

Linux系统下,我们可以利用以下命令来获取特定进程的运行情况:cat /proc/$PID/status其中PID是具体的进程号,这个命令打印出/proc/特定进程/status文件的内容,信息比较多,包含了物理内存/虚拟内存的使用状况,监控进程是否有内存泄露的问题,一般查看进程占用物理内存的情况:VmRSS: xxxkB可以采用grep命令过滤出我们需要的信息:cat /proc/$PID/s...

weixin_26849971的博客 434
上一篇: mysql导入txt数据
下一篇: 密码的恢复
guowake
博客等级 码龄19年 62粉丝 66原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值