Ubuntu Server 中實際內存與物理內存不相等的問題
阿新 • • 發佈:2018-08-26
tools xxx mem www. red 夥伴系統 exec def 基本
記錄
來源 v2ex,提到了一個平時不是很起眼的問題,Ubuntu Server 中系統默認會占用 128M 內存,用於 CVM 內部的 kdump 服務。
科普
- 查看 CVM 所擁有的物理內存
通過 dmidecode 命令查看底層硬件信息 - 為什麽 free 看到的內存會少了?
free 裏面看到的是夥伴系統管理的內存,這部分內存不包括 OS 內核一些基本數據結構的消耗以及內核的一些預留。內核預留內存,可以在 CVM 啟動後,通過命令查看 dmesg | grep -i memory - Ubuntu 這裏預留的 128M 內存,用於了 CVM 內部的 kdump 服務
- 什麽是 kdump 服務呢?為什麽開啟 kdump 呢?
當 OS 內核出現了故障(如內核 bug 導致),kdump 服務會協助生產一個 dump 文件,類似於應用程序的 coredump。開啟 kdump 的目的,是為了在內核出現 bug 時,提供足夠信息,便於客戶後續內核 bug 問題定位分析 - 如何關閉 kdump
- 修改 grub 啟動參數,關閉 kdump 預留。在 /etc/default/grub.d/kexec-tools.cfg 和 /etc/default/grub 配置文件中,將“ crashkernel=XXX ”這樣的配置參數去掉,然後執行 update-grub2 更新 grub 引導文件
- 關閉 kdump 服務 systemctl disable kdump-tools
- 重啟 CVM,可以看到內存變多了
- 為什麽同樣是 1G 的內存,centos 看起來要多一些呢?
在 1G 內存下,centos 系統默認沒有開啟 kdump,沒有預留到內存,所以會多一些,而 Ubuntu 默認開啟了 kdump
Ubuntu Server 中實際內存與物理內存不相等的問題