因此,每次我加载新页面时,我都会注意到打开了一个新的 HTTPD 进程,每次我单击页面时,每个进程都显示它正在使用 2-4.5% 的内存。这是否意味着每个进程都在使用 2-4% 的 RAM?这是一台全新的服务器,目前服务器上只有我一个人。
或者这是否意味着所有其他进程都已终止,只有新进程处于活动状态。因为我的 2048MB RAM 的 4% 已经是 82MB,仅用于一个进程!?!?
请告诉我,因为我正在尝试确定需要增强我的服务器以处理高流量。我预计在发布时每天可获得 20,000 个独立访问量。
我目前正在运行双四核 Xeon 服务器,内存只有 2GB,我将很快升级到 8GB 或更大。请告诉我您的建议!
谢谢
[root@D18634 log]# top | grep 'httpd'
11315 apache 15 0 362m 82m 24m R 12.3 4.1 0:03.00 httpd
11310 apache 16 0 322m 41m 21m S 5.7 2.1 0:02.98 httpd
11315 apache 15 0 362m 83m 25m S 24.3 4.1 0:03.73 httpd
11319 apache 16 0 324m 42m 20m R 1.0 2.1 0:01.85 httpd
11319 apache 16 0 362m 82m 23m R 78.5 4.1 0:04.21 httpd
11321 apache 16 0 323m 44m 23m S 35.3 2.2 0:04.13 httpd
11319 apache 15 0 361m 82m 23m S 8.3 4.1 0:04.46 httpd
11321 apache 15 0 323m 44m 23m S 35.9 2.2 0:05.21 httpd
11313 apache 15 0 324m 41m 19m S 48.6 2.1 0:03.23 httpd
11322 apache 16 0 354m 72m 20m R 11.0 3.6 0:05.11 httpd
11322 apache 16 0 354m 72m 20m S 23.9 3.6 0:05.83 httpd
11314 apache 16 0 355m 75m 22m R 18.3 3.7 0:04.64 httpd
答案1
你是正确的 - 一个 apache 进程使用了 82MB 的物理内存。top(1) 输出中的第二个内存列是常驻大小。这是每个进程实际消耗的物理内存量。看起来系统上的每个 apache 进程都消耗了大约 41-82MB 的内存。查看你的 apache 配置(/etc/httpd/httpd.conf
可能)并检查 MaxClients 指令 - 这是 apache 将尝试生成的最大工作程序数量。将其乘以 82MB,即可得到 apache 将尝试使用的物理内存量的最坏情况。如果该数字大于你安装的系统内存,则在 apache 负载过重的情况下,你的系统内存将被耗尽。
以下是一些Apache 调优技巧这可能会有帮助。