如何找到 Apache Web 服务器专用的总 RAM?

如何找到 Apache Web 服务器专用的总 RAM?

我想要弄清楚我的 Apache Web 服务器当前使用了多少 RAM 以及允许使用多少 RAM。

Linux 中的 ps 命令可以提供每个子进程的内存使用情况:

ps aux | grep apache2
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root      1130  0.0  0.1 149080 10600 ?        Ss   12:36   0:00 /usr/sbin/apache2 -k start
www-data  2051  0.0  0.3 163608 23592 ?        S    16:46   0:00 /usr/sbin/apache2 -k start
www-data  2506  0.0  0.1 149376  7952 ?        S    16:47   0:00 /usr/sbin/apache2 -k start
www-data  5149  0.0  0.1 149416  7980 ?        S    16:49   0:00 /usr/sbin/apache2 -k start
www-data  5175  0.0  0.1 149368  7876 ?        S    16:49   0:00 /usr/sbin/apache2 -k start
www-data 10212  0.0  0.1 149368  7848 ?        S    16:53   0:00 /usr/sbin/apache2 -k start
www-data 19114  0.0  0.1 149368  7904 ?        S    17:01   0:00 /usr/sbin/apache2 -k start
www-data 19138  0.0  0.1 150768 11856 ?        S    17:01   0:00 /usr/sbin/apache2 -k start
www-data 20592  0.0  0.1 149428  8092 ?        S    16:35   0:00 /usr/sbin/apache2 -k start
www-data 21336  0.0  0.1 149368  7808 ?        S    17:03   0:00 /usr/sbin/apache2 -k start
www-data 21375  0.0  0.1 149432  7916 ?        S    17:03   0:00 /usr/sbin/apache2 -k start
1000     26458  0.0  0.0   8112   896 pts/6    S+   17:07   0:00 grep apache2
www-data 30848  0.0  0.1 149396  8044 ?        S    16:43   0:00 /usr/sbin/apache2 -k start

我知道我有多少 RAM:

/proc $ cat meminfo
MemTotal:        6113156 kB

但我正在寻找的是一个数字,可以显示所有 apache 生成的进程总共使用了多少 RAM(内存)。

答案1

TOTAL=0;for MEM in `ps -U www-data -o rss | grep -v RSS`; do TOTAL=$(($TOTAL+$MEM)); done;echo $TOTAL

答案2

看看check-httpd-limits项目,来自项目页面:

check_httpd_limits.pl 比较正在运行的 Apache httpd 进程的大小、配置的 prefork / worker / event MPM 限制以及服务器的可用内存。如果配置的限制超出了服务器的可用内存,则脚本会退出并显示警告(或错误消息)。

答案3

如果您正在寻找每个 Apache 进程的平均 RAM 使用量。

ps -ylC apache2 --sort:rss | awk '{sum+=$8; ++n} END {print "Tot="sum"("n")";print "Avg="sum"/"n"="sum/n/1024"MB"}'

相关内容