对于服务器来说,页换出(Paging)等同于系统崩溃
作者:BlogUpdater |
时间:2021-01-02 |
浏览:968 |
评论已关闭 条评论
为什么你需要重视内存泄露?
Chris Brumme的一篇最新论文有提到这么一句话:”服务器上不应该出现页换出”。
为什么?我来试着翻译翻译。
因为在一台服务器环境中,页换出(Paging)等同于系统崩溃。我之前从其他部门的一位老哥那里听说过这么一个故事:他们有一台服务每隔每隔10小时就会崩溃,就像个闹钟一样准时,这个时候,只能重启系统了。
团队为了解决这个问题,将服务器迁移到一个集群中。实际发生的事情时,这个集群中的所有服务器都会按一定的时间间隔和顺序进行定期重启。客户并不会对此有任何感知,但是服务器管理员就头疼了。(嘿,伙计,看起来,2号服务器需要重启了哦。它的运作开始有点不正常了。)
那么,这台服务器出现周期性崩溃的原因是?页面换出(Paging)。
在服务器上跑着的一个后台服务,在处理每一个客户端请求的时候,会出现一个4字节的内存泄露。
最终,可用内存被泄露的内存填满,操作系统不得不进行页换出。
而频繁的页换出会降低系统的响应速度,但是客户端这头的请求量并没有减少。所以随着时间的流逝,请求积压的越来越多,最终导致系统不堪重负,而崩溃了事。
经过长时间的调试,开发团队终于找到内存泄露的地方并修复了问题。
问题修复了,内存不再泄露了,服务器也Happy了。
总结
因为这个服务器集群主要是为了解决系统定期崩溃的问题,我倒是怀疑他们会减少集群的规模,这样就能省上一大笔钱了。我这只是猜测啊。
最后
Raymond Chen的《The Old New Thing》是我非常喜欢的博客之一,里面有很多关于Windows的小知识,对于广大Windows平台开发者来说,确实十分有帮助。
本文来自:《On a server, paging = death》
如需转载,请注明来自:Topomel Box
- 下一篇: 关于换行符的解释
- 上一篇: 为什么文本文件以Ctrl+Z结尾
相关推荐
- PAE真的能提升虚拟地址空间吗
- Posted on 09月18日
- 为什么系统会将TEMP环境变量转换为一个短文件名?
- Posted on 02月14日
- VS2022调试新功能: 使用LLDB附加到远程进程
- Posted on 08月18日
- Visual Studio 2022: 增加对虚幻引擎的支持
- Posted on 02月19日
评论已关闭。