linux进程内存变化,linux – 进程的峰值内存使用情况

您可以在以下位置获取某个进程的峰值内存使用情况:

grep VmPeak /proc/$PID/status

(将$PID更改为您正在寻找的实际进程ID).

VmPeak是进程自启动以来使用的最大内存量.

为了跟踪进程的内存使用情况,您可以使用名为munin的工具进行跟踪,并向您显示内存使用情况随时间变化的精确图表.

Munin附带了许多用于跟踪系统资源的默认插件,但它没有附带跟踪Peak内存使用的插件 – 幸运的是,它非常容易为它编写插件.

这是一个munin插件的示例,用于跟踪apache进程的VmPeak,VmRSS和VmSize内存使用情况.您可以根据需要进行更改(只需指向正确的PID文件并根据需要更改组件名称).

它输出的图形看起来像这样(VmPeak和VmSize在这个例子中是相同的,所以你只看到其中一个):

注意:这仅监视主apache进程,并且不显示其子进程的内存使用情况.

#!/bin/bash

#

# Parameters:

#

# config (required)

# autoconf (optional - used by munin-config)

#

COMPONENT_NAME="Apache"

COMPONENT_PID_FILE="/var/run/apache2.pid"

if [ "$1" = "autoconf" ]; then

if [ -r /proc/stat ]; then

echo yes

exit 0

else

echo "no (/proc/stat not readable)"

exit 1

fi

fi

if [ "$1" = "config" ]; then

echo "graph_title $COMPONENT_NAME memory usage"

echo 'graph_vlabel'

echo "graph_category Processes"

echo "graph_info This graph shows the amount of memory used by the $COMPONENT_NAME processes"

echo "${COMPONENT_NAME}_vmpeak.label $COMPONENT_NAME VmPeak"

echo "${COMPONENT_NAME}_vmsize.label $COMPONENT_NAME VmSize"

echo "${COMPONENT_NAME}_vmRSS.label $COMPONENT_NAME VmRSS"

echo 'graph_args --base 1024'

exit 0

fi

check_memory ()

# $1 - PID location

# $2 - process_label

{

pid_location=$1

process_label=$2

read pid < $pid_location

procpath="/proc/$pid/status"

if [ ! -e $procpath ] || [ -z $pid ]

then

echo "${process_label}_vmpeak.value 0"

echo "${process_label}_vmsize.value 0"

echo "${process_label}_vmRSS.value 0"

exit 0

fi

VmPeak=`grep VmPeak /proc/$pid/status|awk '{print $2}'`

VmSize=`grep VmSize /proc/$pid/status|awk '{print $2}'`

VmRSS=`grep VmRSS /proc/$pid/status|awk '{print $2}'`

echo "${process_label}_vmpeak.value $(( $VmPeak * 1024 ))"

echo "${process_label}_vmsize.value $(( $VmSize * 1024 ))"

echo "${process_label}_vmRSS.value $(( $VmRSS * 1024 ))"

}

check_memory $COMPONENT_PID_FILE $COMPONENT_NAME

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值