最近一二个月以来,我发现服务器的内存占用正按着每天60M的速度增加。
一台windows 2003的服务器(2G内存),刚刚启起时占用内存:600M左右。
运行20天后,内存占用(PF使用):1.8G
其实物理内存使用情况在这20天来并没有太大的变化,但虚拟内存占用明显在不停的增加。
我通过“任务管理器”一直也找不到是哪个进程占用的这么多的内存。
也许是因为“任务管理器”里显示的内存占用仅代表的是“物理内存占用”吧。
今天对比服务器上和本地电脑上的“任务管理器”的显示情况,偶然发现它们之前的一个不同之处:“句柄数”:
服务器上的“句柄数”达到3万多个,而本地电脑上的“句柄数”只有1.6万个。
通过在百度搜索得知,句柄一般包括文件句柄、窗口句柄等。
我在想,服务器为什么会有这么多的句柄呢,到底又是什么类型的句柄?
我们在“任务管理器”上切换到“进程”选项卡,然后点击菜单“查看”->“选项列”,选择其中的“句柄计数”,然后看到下面的这个:
原来是 360tray.exe 的“句柄数”达到1.4万多个。
我在服务器上完全退出360(点击退出的时候,整个过程可能需要等20秒),然后看到服务器上的内存使用(PE使用率)马上降下来了:
以后我再也不用每隔一个月重启一下服务器了,只需每隔一个月重启一下360就行了。
最后我想说的是,关于服务器的内存占用不断增加的原因其实有很多种,而我遇到的只是其中之一吧。
2011-03-30