美文网首页
获取某进程cpu和内存使用率

获取某进程cpu和内存使用率

作者: 小王同学123321 | 来源:发表于2019-10-23 15:16 被阅读0次
#!/bin/bash

echo "==process_cpu_mem(process_name)"
function urldb_cpu_mem(){
number_of_urldbcpurow=$(ps waux | grep "urldb" | grep -v "grep" -c)
urldb_pid=$(ps waux | grep "urldb" | grep -v "grep" | awk '{print $2}')  #获取进程pid

if [ ${number_of_urldbcpurow} -gt 1 ];then
    total_mem=$(free -k | awk '{if(NR==2) print $2}')
    for url_pid in ${urldb_pid}
    do
       
        mem_pid=$(cat  /proc/${url_pid}/status|awk '/^VmRSS/{print $2}')    #获取内存占用
        mem_percentage=$(printf "%.3f" $(echo "scale=3;${mem_pid}/${total_mem}" | bc))
        cpu_percentage=$(top -bn 1 -p ${url_pid}|tail -2|head -1|awk '{ssd=NF-3} {print $ssd}')    #获取cpu占用
        echo "process_name=urldb_"${url_pid},"cpu_percentage="${cpu_percentage},"mem_percentage="${mem_percentage}
    done
else
    total_mem=$(free -k | awk '{if(NR==2) print $2}')
    mem_pid=$(cat  /proc/${urldb_pid}/status|awk '/^VmRSS/{print $2}')    #获取内存占用
    mem_percentage=$(printf "%.3f" $(echo "scale=3;${mem_pid}/${total_mem}" | bc))
    cpu_percentage=$(top -bn 1 -p ${urldb_pid}|tail -2|head -1|awk '{ssd=NF-3} {print $ssd}')
    echo "process_name=urldb_"${urldb_pid},"cpu_percentage="${cpu_percentage},"mem_percentage="${mem_percentage}
fi
}

main (){
    urldb_cpu_mem
}
    main

相关文章

网友评论

      本文标题:获取某进程cpu和内存使用率

      本文链接:https://www.haomeiwen.com/subject/ridkvctx.html