Mono MVC 3购物车Web应用程序在Mono的Apache下运行。 在下面的顶部输出中,有3个应用程序,其中有31398,30851,30854 进程按%MEM排序。
经过一段时间后,有许多单声道进程占用了所有内存并且Linux OOM开始被杀死 他们。 之后,再次启动进程并继续增加内存使用量。
如何修复或诊断这个单声道不会占用所有内存? 使用Mono 2.10和.NET 4
看起来只是查看网页或google bot访问会导致此问题。
top - 16:12:25 up 26 days, 4:34, 1 user, load average: 0.23, 0.17, 0.11
Tasks: 65 total, 1 running, 64 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.3%us, 0.3%sy, 0.0%ni, 98.6%id, 0.7%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 1048576k total, 1023596k used, 24980k free, 0k buffers
Swap: 0k total, 0k used, 0k free, 582340k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
31398 www-data 20 0 254m 122m 5692 S 0.3 11.9 0:29.38 mono
30851 www-data 20 0 202m 71m 4552 S 0.0 6.9 0:13.70 mono
30854 www-data 20 0 245m 51m 4196 S 0.0 5.0 0:05.74 mono
31413 postgres 20 0 117m 47m 29m S 0.0 4.6 0:16.04 postgres
32235 postgres 20 0 111m 40m 27m S 0.0 3.9 0:00.59 postgres
31803 postgres 20 0 106m 35m 28m S 0.0 3.5 0:01.96 postgres
30342 postgres 20 0 99888 26m 25m D 0.3 2.6 0:02.49 postgres
882 postgres 20 0 103m 23m 19m S 0.0 2.3 0:00.13 postgres
973 postgres 20 0 102m 17m 13m S 0.0 1.7 0:00.07 postgres
942 postgres 20 0 102m 16m 12m S 0.0 1.6 0:00.15 postgres
30867 www-data 20 0 58172 14m 2604 S 0.0 1.4 0:00.71 mono
30849 www-data 20 0 51212 12m 2604 S 0.0 1.2 0:00.66 mono
32234 postgres 20 0 99.4m 11m 9388 S 0.0 1.2 0:00.02 postgres
30847 www-data 20 0 50000 11m 2560 S 0.0 1.2 0:00.63 mono
30863 www-data 20 0 50000 11m 2560 S 0.0 1.1 0:00.64 mono
32568 postgres 20 0 99.6m 10m 8304 S 0.0 1.1 0:00.05 postgres
30439 postgres 20 0 99.3m 10m 8120 S 0.0 1.1 0:00.03 postgres
616 postgres 20 0 99.5m 10m 7324 S 0.0 1.0 0:00.06 postgres
971 postgres 20 0 99.4m 9.8m 7196 S 0.0 1.0 0:00.01 postgres
954 postgres 20 0 101m 9288 6544 S 0.0 0.9 0:00.00 postgres
32225 postgres 20 0 98.7m 8812 6344 S 0.0 0.8 0:00.02 postgres
31410 postgres 20 0 98.7m 8708 6272 S 0.0 0.8 0:00.06 postgres
946 postgres 20 0 99.2m 8648 5928 S 0.0 0.8 0:00.01 postgres
785 postgres 20 0 99.3m 7912 5152 S 0.0 0.8 0:00.00 postgres
972 postgres 20 0 99.2m 7808 5136 S 0.0 0.7 0:00.00 postgres
32297 postgres 20 0 99.2m 7688 5016 S 0.0 0.7 0:00.02 postgres
答案 0 :(得分:3)
this little memory leak bug in MonoFastCGI也可能会影响Apache ModMono整合(因为它们共享some code)。
如果使用FastCgi,则有一种解决方法:使用unix域套接字而不是本地端口。因此,您可以尝试切换使用此技术(由许多Web服务器实现,而不仅仅是Apache)。在我的情况下,我使用它与nginx,我非常满意。更多信息here。
另外,如果我是你,我也会升级到Mono 3.x.