apache 中的 MaxClients。如何知道我的进程的大小?

Lar*_*rry 9 httpd apache-2.2

来自http://httpd.apache.org/docs/2.2/misc/perf-tuning.html

影响网络服务器性能的最大硬件问题是 RAM。网络服务器永远不必交换,因为交换会增加每个请求的延迟,超出用户认为“足够快”的程度。这会导致用户停止并重新加载,从而进一步增加负载。您可以并且应该控制 MaxClients 设置,这样您的服务器就不会产生太多的子项而开始交换。执行此操作的过程很简单:通过诸如 top 之类的工具查看您的进程列表,确定您的平均 Apache 进程的大小,并将其划分为您的总可用内存,为其他进程留出一些空间。

主要问题是我不明白如何知道大小,因为,我的 httpd 大小不再是 3888

但是,如果我们需要确定 MaxClients 的数量,并且我有 4GB 的 RAM,那么我得到:972,那么我应该在 MaxClients 中使用 900 吗?

loo*_*ver 9

首先,确定其中一个 Apache 进程的 PID。

然后你可以做这样的事情:

cat /proc/PIDHERE/status | grep VmRSS

这将产生该特定进程的(当前)常驻集大小,类似于:

VmRSS: 304456 kB

这个值听上去就是驻留在 RAM 中的进程的大小。

然后标准化您的度量单位 ( 4GB * 1024 * 1024 = 4,194,304 KB)。划分:

4194304 KB / 304456 KB = 13.77 processes

考虑到您的系统上可能还有其他进程正在运行也会消耗内存,理想情况下您希望最小化交换,因此您可能不希望配置 13 个 Apache MaxClients(使用我的数字),您希望少一些(由您决定) )。

这是一个粗略的估计;您的 Apache 进程的大小可能会随着时间的推移而增长,具体取决于负载。