作为一个phper,会一点运维不过分吧!
php-fpm 进程数和内存占用
命令行
ps aux | awk '$11 ~ /^php-fpm/ {num++;size+=$6} END {printf "进程总数: %d\n占用内存: %dm\n平均内存: %.2fm\n", num, size/1048, size/1048/num}'
写成一个小脚本
#!/usr/bin/env bash
# 显示php-fpm进程占用
function printRed() {
echo -e "\033[0;91m$*\033[0m"
}
# 也可以直接使用命令
ps_info=$(ps aux | awk '$11 ~ /^php-fpm/ {num++;size+=$6} END {printf "进程总数: %d\n占用内存: %dm\n平均内存: %.2fm\n", num, size/1048, size/1048/num}')
printRed "$ps_info"
灵活的awk脚本
# ps_memmory.awk 显示匹配进程的运行内存
# 需要传入变量 pattern, 匹配命令名称
# usage: awk -f ps_memory.awk pattern=php-fpm
BEGIN {
if (pattern == 0) {
print "没有传入变量 pattern"
print "Usage: ps aux | awk -v pattern=php-fpm -f ps_memory.awk"
exit
} else {
print "匹配模式: "pattern
}
}
$11 ~ pattern {
num++
cpu+=$3
mem+=$4
vsz+=$5
rss+=$6
}
END {
if (num) {
printf "进 程 数: %d\n总 内 存: %dMb\n内存占比: %.1f%%\n平均内存: %.1fMb\n CPU: %.1f%%\n",
num, rss/1048, mem, rss/1048/num, cpu
} else {
print "没有找到进程"
}
}