gpt4 book ai didi

python - 获取用户内存消耗的脚本或命令

转载 作者:太空宇宙 更新时间:2023-11-03 19:27:52 25 4
gpt4 key购买 nike

我的主机为我的网站提供了有限的 RAM,我想通过在 cron 中运行脚本来监控内存消耗。

我已经编写了这个命令:

ps -u xxxxxx -o rss,command | grep -v peruser | awk '{sum+=$1} END {print sum/1024}'

但是我的主机计算内存的方式有一个特殊性。它会忽略运行时间少于 5 分钟的进程。

你知道有一个命令或 Python 脚本可以显示忽略短期进程的总已用内存吗?

最佳答案

使用etime来查找进程所花费的时间。然后,您可以修改 awk 命令来检查该时间是否大于 5 分钟。

ps -u xxxxxx -o rss,etime,command | ...

耗时的格式为[[dd-]hh:]mm:ss。这意味着时间可以是 00:30、12:57:39 甚至 4-08:27:12。您可以使用 awk 解析此时间格式并将其转换为秒。每隔几秒检查一次是否超过 5 分钟,如果超过,则将其添加到 rss 的运行总计中。

这是执行此操作的示例脚本:

ps -u xxxxxx -o rss,etime,command | grep -v peruser | grep -v RSS | sed 's/^ *//g' | awk '{
split($2,arr,":") #split time on :
len=0
for(i in arr) len++
secs=arr[len]+60*arr[len-1] #convert to seconds
if(len>2) secs=secs+substr(arr[len-2],length(arr[len-2])-1)*60*60

if(secs>5*60) { #check if more than 5 minutes
print $0 #print out the process
sum+=$1
}
} END{print "SUM:"sum/1024}'

关于python - 获取用户内存消耗的脚本或命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7404269/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com