![apache 在空闲时使用内存](https://linux22.com/image/720709/apache%20%E5%9C%A8%E7%A9%BA%E9%97%B2%E6%97%B6%E4%BD%BF%E7%94%A8%E5%86%85%E5%AD%98.png)
Centos 7 上的 Apache 2.4.6 占用了 2GB 的闲置内存。尾部访问日志显示没有使用,而且它不是公共服务器。
ps aux --sort=-%mem | awk'NR<=10{print $0}'
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
apache 28363 0.3 41.7 2102448 1620940 ? S Apr16 16:38 /usr/sbin/httpd -DFOREGROUND
mysql 870 0.0 3.3 802388 129660 ? Ssl Apr05 8:23 /usr/sbin/mysqld
apache 30986 0.2 1.3 534800 51272 ? S Apr15 13:06 /usr/sbin/httpd -DFOREGROUND
apache 26210 0.1 0.8 516828 33788 ? S Apr18 2:16 /usr/sbin/httpd -DFOREGROUND
apache 31230 0.1 0.8 516208 31580 ? S Apr15 9:45 /usr/sbin/httpd -DFOREGROUND
apache 30141 0.1 0.6 505848 23752 ? S Apr16 4:04 /usr/sbin/httpd -DFOREGROUND
apache 1938 0.7 0.5 503100 21036 ? S Apr18 7:40 /usr/sbin/httpd -DFOREGROUND
apache 25774 0.5 0.5 421680 20888 ? S Apr18 6:39 /usr/sbin/httpd -DFOREGROUND
apache 25768 0.6 0.4 416716 15948 ? S Apr18 8:55 /usr/sbin/httpd -DFOREGROUND
免费-m
total used free shared buff/cache available
Mem: 3789 1959 128 112 1701 1455
Swap: 0 0 0
这似乎指向一个缓存问题。服务器运行 99.9% 的 php 脚本,所以我不知道它甚至缓存了什么。除非我重新启动 apache,否则内存使用量将无限期地保持使用状态。
出现这个问题的原因是当我实际运行脚本时,服务器内存不足。你知道为什么空闲时会使用 2GB 内存吗?
答案1
这不是问题。Linux 内存不足的实际问题是页面调出到交换的速率过高、allocstall 指示直接回收或 OOM killer。
您不能也不想减少缓存。它利用未使用的内存来加速 I/O,当用户进程需要更多内存时,它会很快放弃缓存。操作系统文件和您的应用程序最终都将被缓存,这就是为什么它看起来很大的原因。
标准解释器网站: https://www.linuxatemyram.com/