我安装了 ubuntu 16.04,16GB 内存,8 个 CPU。当我启动一个 apache 程序时,它占用了大量内存,而且需要很长时间才能释放。例如,第一次启动该程序时,内存使用率为 19%,再次运行该程序时,内存使用率将增加到 30%,继续运行,内存使用率将达到 100%!
以下是详细信息:
Apache2使用事件模式,配置文件如下:
<IfModule mpm_event_module> StartServers 8 MinSpareThreads 25 MaxSpareThreads 75 ThreadLimit 64 ThreadsPerChild 25 # KeepAliveTimeout 2 MaxRequestWorkers 100000 MaxConnectionsPerChild 1000 </IfModule>
Top 命令结果:
- dmsg 输出:
[1305209.882141] [17162] 33 17162 1351401 109886 1459 10 395720 0 apache2
[1305209.882144] [17163] 33 17163 1232422 295830 1252 9 59193 0 apache2
[1305209.882147] [17165] 33 17165 1416829 79236 1274 10 311132 0 apache2
[1305209.882151] [17166] 33 17166 94739 173 75 4 1229 0 apache2
[1305209.882153] [17167] 33 17167 94739 148 75 4 1232 0 apache2
[1305209.882156] [18879] 0 18879 10485 124 24 3 78 0 top
[1305209.882159] [ 2886] 33 2886 25673 41 37 4 398 0 chromedriver
[1305209.882162] [ 3136] 33 3136 961814 115119 707 8 164 0 apache2
[1305209.882165] Out of memory: Kill process 17161 (apache2) score 122 or sacrifice child
[1305209.883471] Killed process 17161 (apache2) total-vm:7031824kB, anon-rss:2334608kB, file-rss:0kB
正常运行时间输出:
11:01:36 启动 15 天,17:10,5 个用户,平均负载:0.23、1.10、0.79
vmstate -l 输出:
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 112804 4589412 132056 1420728 7 15 128 20 2 0 1 0 99 0 0
0 0 112804 4589504 132056 1420728 0 0 0 0 236 438 0 0 100 0 0
0 0 112804 4589512 132056 1420728 0 0 0 0 206 397 0 0 100 0 0
0 0 112804 4589512 132056 1420728 0 0 0 0 204 394 0 0 100 0 0
0 0 112804 4589512 132056 1420728 0 0 0 0 203 406 0 0 100 0 0
0 0 112804 4589512 132056 1420728 0 0 0 0 191 391 0 0 100 0 0