云服務(wù)器內(nèi)存變少的原因及 kdump 服務(wù)的功與過(guò)
你滿懷期待地買下了標(biāo)注有4GB內(nèi)存的云服務(wù)器,登錄一看,卻發(fā)現(xiàn)內(nèi)存不足,心里不禁懷疑自己是否上當(dāng)受騙了。別急,這其中肯定有原因。
云服務(wù)器內(nèi)存與標(biāo)稱不符現(xiàn)象
云服務(wù)器標(biāo)稱內(nèi)存與實(shí)際可用內(nèi)存有差距,這是玩家們經(jīng)常遇到的問(wèn)題。比如,買了4GB內(nèi)存的服務(wù)器,實(shí)際上只能用到3.8GB左右,這樣的情況很常見。不少用戶在使用云服務(wù)器時(shí)都會(huì)產(chǎn)生疑問(wèn),他們覺得自己的權(quán)益被侵犯了,覺得這種現(xiàn)象很不合理,因?yàn)樗麄冎Ц兜馁M(fèi)用并未得到全部的內(nèi)存使用。這種現(xiàn)象并非偶然,它有其存在的合理性。
此外,在實(shí)際操作中,尤其是那些同時(shí)運(yùn)行多個(gè)小型應(yīng)用程序的小公司,他們?cè)疽詾閮?nèi)存資源充足。然而,由于內(nèi)存性能的不足,應(yīng)用程序出現(xiàn)了運(yùn)行緩慢的情況,進(jìn)而影響了業(yè)務(wù)的正常流程。
kdump服務(wù)的基本概念
kdump是Linux系統(tǒng)的一項(xiàng)強(qiáng)大功能。它主要應(yīng)對(duì)內(nèi)核崩潰的情況。當(dāng)內(nèi)核崩潰發(fā)生時(shí),kdump能夠搜集詳細(xì)信息。在當(dāng)今的數(shù)據(jù)中心和云計(jì)算環(huán)境中,內(nèi)核崩潰成了一個(gè)極為嚴(yán)重的問(wèn)題。以大型電商平臺(tái)的服務(wù)器為例,若內(nèi)核出現(xiàn)故障,沒(méi)有kdump來(lái)收集信息,那么故障排查將會(huì)面臨極大的困難。
各個(gè)Linux發(fā)行版對(duì)此有不同的表現(xiàn)。以RedHatLinux(RHEL)及其分支版本為例,它們通常默認(rèn)是開啟的。比如,一些政府項(xiàng)目的服務(wù)器使用RHEL系統(tǒng),如果維護(hù)人員不熟悉kdump,那么對(duì)系統(tǒng)的安全與穩(wěn)定維護(hù)就會(huì)帶來(lái)不利影響。然而,也有一些版本默認(rèn)是關(guān)閉的,這便導(dǎo)致了不同系統(tǒng)間內(nèi)存差值的不一致。
cat /proc/cmdline | grep crashkernel
kdump占用內(nèi)存原因
為確保kdump高效運(yùn)行,需預(yù)留足夠的內(nèi)存。kdump在收集信息時(shí),如同整理精密文件,這一過(guò)程復(fù)雜且依賴預(yù)留內(nèi)存來(lái)完成。若將服務(wù)器的運(yùn)行體系比作一個(gè)大工廠,每個(gè)部分都承擔(dān)著不同的職責(zé)。kdump的職能至關(guān)重要,不容干擾,因此預(yù)留內(nèi)存是不可或缺的。
各個(gè)發(fā)行版在內(nèi)存分配上存在差異。例如,某些特殊版本在執(zhí)行kdump操作時(shí),會(huì)額外預(yù)留一些內(nèi)存空間,這通常是由開發(fā)團(tuán)隊(duì)根據(jù)版本的具體功能和目標(biāo)用戶群體來(lái)決定的。以科研機(jī)構(gòu)定制的Linux版本為例,在運(yùn)行科研軟件時(shí),需要確保內(nèi)核的穩(wěn)定性,因此這類版本可能會(huì)為kdump預(yù)留更多的內(nèi)存。
grep "Crash kernel" /proc/iomem
如何查看kdump狀態(tài)
可通過(guò)執(zhí)行命令來(lái)確認(rèn)Kdump是否已開啟。此方法簡(jiǎn)便快捷,一旦出現(xiàn)輸出,即表明已啟用。以初學(xué)Linux的用戶為例,他們常利用此命令來(lái)了解自己服務(wù)器上kdump的運(yùn)行狀態(tài),這可是系統(tǒng)管理中的一招小竅門。
可以通過(guò)查看/proc/iomem文件來(lái)了解Kdump的內(nèi)存使用情況。只需找到包含“Crash”的行即可得知。例如,在運(yùn)維人員管理多臺(tái)服務(wù)器時(shí),這種方法可以迅速而清晰地掌握每臺(tái)服務(wù)器的kdump內(nèi)存使用狀況。如果沒(méi)有輸出,則表示沒(méi)有占用。
關(guān)閉kdump的步驟
sudo vi /etc/default/grub
關(guān)閉服務(wù)器前,需先開啟終端或SSH連接至服務(wù)器,這是基本操作,就好比進(jìn)入房間前需先打開門鎖。接下來(lái),使用文本編輯器如vi或nano打開位于根目錄下的grub配置文件。在文件中定位到相關(guān)行,并在引號(hào)內(nèi)添加等于零兆的字樣。完成編輯后,保存并關(guān)閉文件,隨后重啟服務(wù)器。此過(guò)程需嚴(yán)格按照步驟進(jìn)行,任何一步出錯(cuò)都可能導(dǎo)致操作失敗。
然而,這要求操作者具備一定的操作技能。尤其是那些普通的非技術(shù)型網(wǎng)站站長(zhǎng),若不懂得技術(shù)而自行操作,可能會(huì)引發(fā)服務(wù)器無(wú)法啟動(dòng)等嚴(yán)重問(wèn)題。因此,在操作過(guò)程中必須保持謹(jǐn)慎,或者在必要時(shí)尋求專業(yè)支持。
GRUB_CMDLINE_LINUX="crashkernel=0M"
關(guān)閉kdump的影響
系統(tǒng)內(nèi)核崩潰后,關(guān)閉功能會(huì)導(dǎo)致診斷能力減弱。正如之前所述,kdump的主要功能是收集內(nèi)核崩潰的相關(guān)信息。若企業(yè)關(guān)鍵業(yè)務(wù)服務(wù)器在內(nèi)核崩潰時(shí)缺乏kdump收集的數(shù)據(jù),排查故障將會(huì)變得極為困難。
sudo update-grub
若重視內(nèi)存管理,則可考慮關(guān)閉。以測(cè)試環(huán)境中的服務(wù)器為例,若對(duì)穩(wěn)定性要求不高,關(guān)閉kdump來(lái)釋放內(nèi)存是個(gè)不錯(cuò)的選擇。
這時(shí)候,大家不妨思考一番:假如是你,在不太擔(dān)心服務(wù)器偶爾會(huì)崩潰的情況下,你會(huì)選擇關(guān)閉kdump來(lái)獲取更多的內(nèi)存空間嗎?
sudo reboot
作者:小藍(lán)
鏈接:http://www.beijingshangmencuiru.cn/content/3822.html
本站部分內(nèi)容和圖片來(lái)源網(wǎng)絡(luò),不代表本站觀點(diǎn),如有侵權(quán),可聯(lián)系我方刪除。