linux – 进程的峰值内存使用情况
发布时间:2020-05-23 20:29:17 所属栏目:Linux 来源:互联网
导读:像top和ps这样的工具可以为我提供当前分配给进程的内存量,但我感兴趣的是测量自创建以来或在给定时间间隔内分配给进程的最大内存量.有关如何找出的任何建议? 您可以在以下位置获取某个进程的峰值内存使用情况: grep VmPeak /proc/$PID/status (将$PID更改为
|
像top和ps这样的工具可以为我提供当前分配给进程的内存量,但我感兴趣的是测量自创建以来或在给定时间间隔内分配给进程的最大内存量.有关如何找出的任何建议? 解决方法您可以在以下位置获取某个进程的峰值内存使用情况: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 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 在Linux上寻找odbc.ini和odbcinst.ini文件的良好文档
- 如何分配页面大小对齐的内存?
- linux – 使用rsync只删除无关的文件
- pthread条件变量vs win32事件(linux vs windows-ce)
- linux – 使用perl读取系统文件,而不在打开时发出额外的搜索
- 适用于Linux的可重复的自定义分发构建系统
- linux – 在什么时候服务器被认为是空闲的?
- linux – 在运行pvmove之前忘了创建分区
- Linux只检测2GB内存,安装了4个 – i386 Debian Lenny
- linux – Jenkins Slave Issue – 无效的流标题:099EACED
