我注意到我的 Ubuntu 10.04 服务器变得非常慢。似乎 nTop 使用大部分内存存在问题。我可以在重新启动服务器后卸载它,因为在此之前它没有响应。
但卸载后我发现许多 Apache 进程使用了大量内存。由于我的服务器运行 webmin,我猜至少有 2 个不同的 Apache 在运行是正常的,但我不明白为什么我有这么多进程:
698 mysql 147100 kB /usr/sbin/mysqld
1117 clamav 123380 kB /usr/sbin/clamd
8191 root 113148 kB clamscan --no-summary --stdout -
8211 root 108740 kB clamscan --no-summary --stdout -
720 bind 87288 kB /usr/sbin/named -u bind
1655 www-data 61132 kB /usr/sbin/apache2 -k start
1656 www-data 61132 kB /usr/sbin/apache2 -k start
1657 www-data 61132 kB /usr/sbin/apache2 -k start
1658 www-data 61132 kB /usr/sbin/apache2 -k start
1659 www-data 61132 kB /usr/sbin/apache2 -k start
1680 www-data 61132 kB /usr/sbin/apache2 -k start
1726 www-data 61132 kB /usr/sbin/apache2 -k start
1759 www-data 61132 kB /usr/sbin/apache2 -k start
1573 root 60616 kB /usr/sbin/apache2 -k start
798 postgres 45184 kB postgres: autovacuum launcher process
767 postgres 45048 kB /usr/lib/postgresql/8.4/bin/postgres -D /var/lib/postgresql/8.4/main -c config_f ...
796 postgres 45048 kB postgres: writer process
797 postgres 45048 kB postgres: wal writer process
1594 www-data 39588 kB /usr/sbin/apache2 -k start
你觉得这正常吗?
答案1
对于一般的 Apache 安装(使用称为“预分叉”的系统),这是完全正常的。每个进程都会处理一个入站请求。平衡并发请求数与所用内存是扩展 Apache 的重要部分。
答案2
在 *nix 上,httpd 会生成多个进程来处理请求,并且它们会共享大部分内存,直到它们真正这样做为止。所以是的,这是正常的。