关于服务器内存的耗尽情况解析

admin 服务器评论256字数 1414阅读模式

不知从几何时,你是否突然感觉服务器内存不够用,经常性的因为服务器内存耗尽而宕机,或者导致软件卡死,服务重起等各种异常状态。明明服务器预留了剩余内存6G、8G、10G,好像依然不够用。但是重启服务器后,内存就能被回收回来。而以前的服务器只需要预留剩余可用内存2G-4G足够,开机很久也没有过内存耗尽的异常情况。所以很多用户,凭借服务器目前大内存的优势,预留了20G,这样会好很多。而且当服务器出现异常的时候,你检查服务器任务管理器,发现真正使用内存的程序所占用的内存,并不是所有的内存使用量,有一部分内存“隐身”了,并且找不到所被占用的进程。关于内存莫名其妙被占用的情况,笔者也已经观察很久,其实内存被占用耗尽的状态随着Windows系统的发展,和网吧行业的发展,是多种条件的影响导致的。
关于服务器内存的耗尽情况解析
一、Windows系统自身的升级影响。微软的server系统,自2012以后,自身的缓存机制做出了改变。在之前的系统版本,系统缓存可以设置一个缓存限定值。就是说,当物理内存被系统缓存吃掉并占用的一定临界值后,会自动释放,这样,用来保证剩余内存,和其他程序的申请内存足够性。而2012版本以后,这个功能被阉割了。

二、网吧服务器系统软件的增加。较之十年前的网吧服务器相比,我们服务器上安装的软件太多了:无盘服务端、第三方下载器、去广告服务端、腾讯特权、网易特权、文化软件服务端、网吧WIFI服务端、精灵AI服务端……。这些软件本身的增加,大大占用了服务器内存的使用。

三、无盘客户机在线的多少。网吧开机10台,和开机100台,服务器所开销的内存是不一样的。网吧开机量越多,服务器的内存开销就越大。这也是内存占用的一个原因。

四、更新游戏,会占用内存。当网吧赶上大更新日,比如周三,或者周五,大量游戏集体更新。在游戏更新的时候,三层会建立索引文件,每一个游戏建立一次都会在占用内存的开销。当游戏更新完毕后,内存会进行释放回收。如果服务器内存本身剩余的就不多,赶上大更新日,就会大大消耗内存,那么后果也就可想而知了。

五、无盘软件自身的回写缓存机制影响。无盘软件为了达到软件层的性能,会在软件层,加入回写缓存的代码,用来提升软件读写性能。但是,这无疑会消耗服务器的大部分内存。客户机在线量越多,内存也就开销越大。所以,为了性能,总要舍弃一些东西。让马儿跑,就得给马吃草。

六、window磁盘的回写缓存的设置。硬盘格式化后,默认都会开启回写缓存机制。这里被缓存的文件,会占用真实的服务器物理内存。而且在任务管理器中,是无法查看到的。只有重启服务器以后,才会被释放。
关于服务器内存的耗尽情况解析

当然,这里的缓存也是为了提升性能,而存在的功能。这也是一个二择的问题,是要性能,还是要内存和稳定?选择权留给你。

总之,关于服务器内存的占用情况,目前大体发现的就有这些。如何来很好的来控制内存呢?通过个人使用的经验,我个人的服务器是这样操作的(仅仅是个人使用方式和观点,仅供参考)。

网吧服务器只安装无盘服务端,和第三方游戏下载器。其他所有的第三方软件,都找一个单独的机器来安装。好处是节省服务器内存开支,并且服务器安全性也大大提高。

取消无盘自带的回写缓存机制,个人认为,稳定性要大于那点所谓的无感知的性能。

取消磁盘的“写入缓存策略”。稳定性大于性能。鱼与熊掌不可兼得,舍鱼而取熊掌也。

经过几方面的修改,目前网吧服务区预留剩余可用内存5-6G,观察使用一个月了,非常稳定。没有再被异常侵吞的情况了。

版权声明:文章图片资源来源于网络,如有侵权,请留言删除!!!
广告也精彩
admin
  • 本文由 发表于 2024年9月15日 21:05:08
  • 转载请务必保留本文链接:https://www.58pxe.com/12178.html
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: