不知從幾何時(shí),你是否突然感覺服務(wù)器內(nèi)存不夠用,經(jīng)常性的因?yàn)榉?wù)器內(nèi)存耗盡而宕機(jī),或者導(dǎo)致軟件卡死,服務(wù)重起等各種異常狀態(tài)。明明服務(wù)器預(yù)留了剩余內(nèi)存6G、8G、10G,好像依然不夠用。但是重啟服務(wù)器后,內(nèi)存就能被回收回來。而以前的服務(wù)器只需要預(yù)留剩余可用內(nèi)存2G-4G足夠,開機(jī)很久也沒有過內(nèi)存耗盡的異常情況。所以很多用戶,憑借服務(wù)器目前大內(nèi)存的優(yōu)勢(shì),預(yù)留了20G,這樣會(huì)好很多。而且當(dāng)服務(wù)器出現(xiàn)異常的時(shí)候,你檢查服務(wù)器任務(wù)管理器,發(fā)現(xiàn)真正使用內(nèi)存的程序所占用的內(nèi)存,并不是所有的內(nèi)存使用量,有一部分內(nèi)存“隱身”了,并且找不到所被占用的進(jìn)程。關(guān)于內(nèi)存莫名其妙被占用的情況,筆者也已經(jīng)觀察很久,其實(shí)內(nèi)存被占用耗盡的狀態(tài)隨著Windows系統(tǒng)的發(fā)展,和網(wǎng)吧行業(yè)的發(fā)展,是多種條件的影響導(dǎo)致的。
一、Windows系統(tǒng)自身的升級(jí)影響。微軟的server系統(tǒng),自2012以后,自身的緩存機(jī)制做出了改變。在之前的系統(tǒng)版本,系統(tǒng)緩存可以設(shè)置一個(gè)緩存限定值。就是說,當(dāng)物理內(nèi)存被系統(tǒng)緩存吃掉并占用的一定臨界值后,會(huì)自動(dòng)釋放,這樣,用來保證剩余內(nèi)存,和其他程序的申請(qǐng)內(nèi)存足夠性。而2012版本以后,這個(gè)功能被閹割了。
二、網(wǎng)吧服務(wù)器系統(tǒng)軟件的增加。較之十年前的網(wǎng)吧服務(wù)器相比,我們服務(wù)器上安裝的軟件太多了:無盤服務(wù)端、第三方下載器、去廣告服務(wù)端、騰訊特權(quán)、網(wǎng)易特權(quán)、文化軟件服務(wù)端、網(wǎng)吧WIFI服務(wù)端、精靈AI服務(wù)端……。這些軟件本身的增加,大大占用了服務(wù)器內(nèi)存的使用。
三、無盤客戶機(jī)在線的多少。網(wǎng)吧開機(jī)10臺(tái),和開機(jī)100臺(tái),服務(wù)器所開銷的內(nèi)存是不一樣的。網(wǎng)吧開機(jī)量越多,服務(wù)器的內(nèi)存開銷就越大。這也是內(nèi)存占用的一個(gè)原因。
四、更新游戲,會(huì)占用內(nèi)存。當(dāng)網(wǎng)吧趕上大更新日,比如周三,或者周五,大量游戲集體更新。在游戲更新的時(shí)候,三層會(huì)建立索引文件,每一個(gè)游戲建立一次都會(huì)在占用內(nèi)存的開銷。當(dāng)游戲更新完畢后,內(nèi)存會(huì)進(jìn)行釋放回收。如果服務(wù)器內(nèi)存本身剩余的就不多,趕上大更新日,就會(huì)大大消耗內(nèi)存,那么后果也就可想而知了。
五、無盤軟件自身的回寫緩存機(jī)制影響。無盤軟件為了達(dá)到軟件層的性能,會(huì)在軟件層,加入回寫緩存的代碼,用來提升軟件讀寫性能。但是,這無疑會(huì)消耗服務(wù)器的大部分內(nèi)存??蛻魴C(jī)在線量越多,內(nèi)存也就開銷越大。所以,為了性能,總要舍棄一些東西。讓馬兒跑,就得給馬吃草。
六、window磁盤的回寫緩存的設(shè)置。硬盤格式化后,默認(rèn)都會(huì)開啟回寫緩存機(jī)制。這里被緩存的文件,會(huì)占用真實(shí)的服務(wù)器物理內(nèi)存。而且在任務(wù)管理器中,是無法查看到的。只有重啟服務(wù)器以后,才會(huì)被釋放。
當(dāng)然,這里的緩存也是為了提升性能,而存在的功能。這也是一個(gè)二擇的問題,是要性能,還是要內(nèi)存和穩(wěn)定?選擇權(quán)留給你。
總之,關(guān)于服務(wù)器內(nèi)存的占用情況,目前大體發(fā)現(xiàn)的就有這些。如何來很好的來控制內(nèi)存呢?通過個(gè)人使用的經(jīng)驗(yàn),我個(gè)人的服務(wù)器是這樣操作的(僅僅是個(gè)人使用方式和觀點(diǎn),僅供參考)。
網(wǎng)吧服務(wù)器只安裝無盤服務(wù)端,和第三方游戲下載器。其他所有的第三方軟件,都找一個(gè)單獨(dú)的機(jī)器來安裝。好處是節(jié)省服務(wù)器內(nèi)存開支,并且服務(wù)器安全性也大大提高。
取消無盤自帶的回寫緩存機(jī)制,個(gè)人認(rèn)為,穩(wěn)定性要大于那點(diǎn)所謂的無感知的性能。
取消磁盤的“寫入緩存策略”。穩(wěn)定性大于性能。魚與熊掌不可兼得,舍魚而取熊掌也。
經(jīng)過幾方面的修改,目前網(wǎng)吧服務(wù)區(qū)預(yù)留剩余可用內(nèi)存5-6G,觀察使用一個(gè)月了,非常穩(wěn)定。沒有再被異常侵吞的情況了。
評(píng)論