为什么httpd进程消耗这么多内存?

为什么httpd进程消耗这么多内存?

可能重复:
服务器拒绝使用交换分区

我使用 Linux 和 Koloxo 面板进行网站管理。我的数据库服务器宕机了,我认为这是因为内存不足。尽管机器有 8GB 内存,系统上没有太多用户(可能在任何给定时间最多有 20 到 50 个用户),但还是出现了问题。我在进程中看到的一件事是,一个 Apache 进程消耗了大约 325MB 的内存。

流程输出 http://apniworld.com/process.png

这些进程消耗这么多内存是正常的吗?如果不正常,我该如何将每个用户的内存消耗降低到正常水平?

答案1

服务器拒绝使用交换分区有关内存使用情况的一些详细信息以及您可能误解的使用情况。

以下是我从空闲测试系统中获取的更多信息:

#snippet from running `top`
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
19545 www-data  20   0  148m 3744  264 S    0  0.1   0:00.00 apache2
19546 www-data  20   0  148m 3696  244 S    0  0.1   0:00.00 apache2
19547 www-data  20   0  148m 3696  244 S    0  0.1   0:00.00 apache2
19548 www-data  20   0  148m 3696  244 S    0  0.1   0:00.00 apache2
19549 www-data  20   0  148m 3696  244 S    0  0.1   0:00.00 apache2
22396 www-data  20   0  148m 3660  204 S    0  0.1   0:00.00 apache2

您会注意到,它们都显示 148MB 的使用量,就像您的进程都显示 325MB 内存一样。不过,这是虚拟内存。这里需要注意的实际数字是 RES——常驻内存。每个进程实际上使用大约 4MB 的空间。请注意,在这个 4GB 的盒子上,%MEM 报告为 .1%。

简而言之,事情可能很好,您需要使用比控制面板提供的更好的工具来调查。

相关内容