apache 内存占用问题
apache 内存占用很大,有什么方法可以解决吗?php版本是5.5.3,Apache是2.2.14
才35个进程,每个要77MB,总共要2.6GB。
top命令查看
mysql用了1.1GB,别的都让httpd抢光了。
httpd.conf 设置如下,KeepAlive Off 和 On没什么区别
MaxClients设置的又是不大,而且php代码里,变量用完后都用$string=NULL; 来清空内存,function()里也在return后面一行添加$string=NULL; 还是没解决内存问题。
此外,测试了一些常用的php文件,重启Apache时脚本运行和满负荷内存时脚本运行相比,内存和运行时间都相差很大。即空闲时php内存只有满负荷时的40%,时间也差不多差40%。(memory_get_usage(true)/1024 )
ps -ylC httpd --sort:rss | awk '{sum+=$8; ++n} END {print "Tot="sum"("n")";print "Avg="sum"/"n"="sum/n/1024"MB"}'
Tot=2762932(35)
Avg=2762932/35=77.0907MB才35个进程,每个要77MB,总共要2.6GB。
top命令查看
Tasks: 96 total, 9 running, 87 sleeping, 0 stopped, 0 zombie
Cpu(s): 82.1%us, 9.3%sy, 0.0%ni, 8.5%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 4194304k total, 4194304k used, 0k free, 0k buffers
Swap: 0k total, 0k used, 0k free, 0k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1852 mysql 15 0 5613m 1.1g 6336 S 63.2 27.7 57:31.20 mysqld
15508 apache 15 0 377m 91m 36m R 13.1 2.2 0:03.78 httpd
15608 root 16 0 266m 62m 9676 R 11.8 1.5 0:01.75 php
13955 apache 15 0 368m 86m 39m S 11.5 2.1 0:22.41 httpd
12051 apache 16 0 373m 94m 39m R 10.5 2.3 0:58.09 httpd
13947 apache 15 0 369m 91m 39m S 6.4 2.2 0:26.81 httpd
13967 apache 16 0 351m 72m 39m S 5.4 1.8 0:23.34 httpd
15517 apache 15 0 345m 62m 32m S 5.4 1.5 0:03.20 httpd
13527 apache 15 0 376m 96m 39m S 5.1 2.4 0:48.03 httpd
15620 root 15 0 218m 19m 8276 S 4.8 0.5 0:00.46 php
15457 apache 16 0 365m 82m 37m R 4.5 2.0 0:05.21 httpd
15514 apache 15 0 337m 54m 31m S 4.5 1.3 0:03.59 httpd
15518 apache 15 0 337m 48m 26m S 4.5 1.2 0:02.45 httpd
15461 apache 15 0 346m 64m 34m S 3.8 1.6 0:06.47 httpd
13944 apache 16 0 375m 94m 39m S 2.6 2.3 0:24.36 httpd
15456 apache 15 0 368m 84m 38m R 2.6 2.1 0:07.29 httpd
15365 apache 15 0 351m 71m 37m S 2.2 1.7 0:09.78 httpdmysql用了1.1GB,别的都让httpd抢光了。
httpd.conf 设置如下,KeepAlive Off 和 On没什么区别
Timeout 45
KeepAlive Off
MaxKeepAliveRequests 256
KeepAliveTimeout 2
<IfModule prefork.c>
StartServers 5
MinSpareServers 5
MaxSpareServers 20
ServerLimit 192
MaxClients 192
MaxRequestsPerChild 3000
</IfModule>MaxClients设置的又是不大,而且php代码里,变量用完后都用$string=NULL; 来清空内存,function()里也在return后面一行添加$string=NULL; 还是没解决内存问题。
此外,测试了一些常用的php文件,重启Apache时脚本运行和满负荷内存时脚本运行相比,内存和运行时间都相差很大。即空闲时php内存只有满负荷时的40%,时间也差不多差40%。(memory_get_usage(true)/1024 )
...全文
相关推荐
Eclipse使用SizeOf.jar工具监测内存占用
有时,为了减少对数据库的频繁访问,提高系统的响应速度,我们会选择将一部分常用的数据缓存在内存中。然而,这种做法也会带来一定的风险——如果内存占用过大,可能会导致系统出现性能问题甚至崩溃。
rsync备份海量文件时占用大量内存的解决方法
例如,使用rsync 3.0.4时,内存占用量大约为4MB,这与一个Apache进程的内存消耗相当。为了利用这一新特性,你需要确保源主机和目标主机都升级到rsync 3.x版本。
解决Doris资源占用高[项目代码]
禁用内存池和存储页缓存,可以减少不必要的内存占用,从而降低内存的使用率。通过这些具体的优化操作,可以有效解决Apache Doris数据库资源占用过高的问题,提升数据库的性能和稳定性。
关于Poi读取Excel引发内存溢出问题的解决方法
综上所述,解决 POI 读取 Excel 文件时的内存溢出问题,主要通过切换到事件模型、分块读取、压缩工作簿以及合理配置 JVM 参数等方式。这些策略能够显著降低内存占用,提高程序的稳定性和可扩展性。
[PHP] pmap可以查看进程占用内存的详细情况
此外,我们还可以使用 pmap 命令来查看其他类型的进程的内存占用情况,如 MySQL 进程、Apache 进程等,以便更好地了解系统中的内存使用情况。


基础编程
