CentOS 8 ทำงานบน VPS ที่มี RAM 1GB
dmesg แสดง:
หน่วยความจำ: 216012K/1048040K พร้อมใช้งาน
ดังนั้นฉันเชื่อว่า BIOS เห็น 1,073,192,960 ไบต์ จากนั้นเป็น ฟรี -b
อ่าน RAM มีทั้งหมด 997,236,736 ไบต์
ด้วยวิธีนี้ เราจะเห็นช่องว่าง 75,956,224=1,073,192,960-997,236,736 ไบต์ กล่าวอีกนัยหนึ่งคือ 72+ MiB ของหน่วยความจำ 'ใช้ไม่ได้'
จะนำหน่วยความจำนั้นกลับมาที่ OS ได้อย่างไร หรือจะเรียนรู้ว่ามัน 'ซ่อนอยู่' ได้อย่างไร
BTW kdump ถูกปิดใช้งาน: cat /sys/kernel/kexec_crash_size
0
UPD:
จุดเริ่มต้นของ dmesg เกี่ยวกับหน่วยความจำ:
แผนผัง RAM จริงที่ BIOS ให้มา:
BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] ใช้งานได้
BIOS-e820: [mem 0x000000000009fc00-0x000000000009ffff] สงวนไว้
BIOS-e820: [mem 0x00000000000f0000-0x00000000000ffff] สงวนไว้
BIOS-e820: [mem 0x0000000000100000-0x000000003ffdbfff] ใช้งานได้
BIOS-e820: [mem 0x000000003ffdc000-0x000000003ffffffff] สงวนไว้
BIOS-e820: [mem 0x00000000feffc000-0x00000000feffffff] สงวนไว้
BIOS-e820: [mem 0x00000000ffc0000-0x00000000ffffffff] สงวนไว้
การป้องกัน NX (Execute Disable): ทำงานอยู่
นำเสนอ SMBIOS 2.8
DMI: Red Hat KVM, BIOS 1.11.0-2.el7 04/01/2014
ตรวจพบไฮเปอร์ไวเซอร์: KVM
kvm-clock: ใช้ msrs 4b564d01 และ 4b564d00
นาฬิกา kvm: ซีพียู 0, msr a001001, นาฬิกาซีพียูหลัก
kvm-clock: ใช้การชดเชยตามกำหนดการของ 7965121487 รอบ
แหล่งสัญญาณนาฬิกา: kvm-clock: มาสก์: 0xffffffffffffffff max_cycles: 0x1cd42e4dffb, max_idle_ns: 881590591483 ns
tsc: ตรวจพบโปรเซสเซอร์ 2199.996 MHz
e820: อัปเดต [mem 0x00000000-0x00000fff] ใช้งานได้ ==> สงวนไว้
e820: ลบ [mem 0x000a0000-0x000fffff] ที่ใช้งานได้
last_pfn = 0x3ffdc max_arch_pfn = 0x400000000
ประเภทเริ่มต้น MTRR: การเขียนกลับ
เปิดใช้งานช่วงคงที่ MTRR:
00000-9FFFF เขียนกลับ
A0000-BFFFF ใช้งานไม่ได้
C0000-FFFFFF ป้องกันการเขียน
เปิดใช้งานช่วงตัวแปร MTRR:
0 ฐาน 000080000000 มาสก์ 3FFF80000000 ใช้งานไม่ได้
1 พิการ
2 ปิดใช้งาน
3 ปิดการใช้งาน
4 ปิดการใช้งาน
5 ปิดการใช้งาน
6 ปิดการใช้งาน
7 ปิดการใช้งาน
x86/PAT: การกำหนดค่า [0-7]: WB WC UC- UC WB WP UC- WT
kexec: สำรองหน่วยความจำ 1M ต่ำสำหรับ crashkernel
การใช้หน้า GB สำหรับการแมปโดยตรง
BRK [0x0a201000, 0x0a201fff] PGTABLE
BRK [0x0a202000, 0x0a202fff] PGTABLE
BRK [0x0a203000, 0x0a203fff] PGTABLE
BRK [0x0a204000, 0x0a204fff] PGTABLE
BRK [0x0a205000, 0x0a205fff] PGTABLE
RAMDISK: [หน่วยความจำ 0x3506f000-0x3682ffff]
ACPI: ปิดใช้งานการตรวจสอบความถูกต้องของตารางก่อนกำหนด
ACPI: RSDP 0x00000000000F6280 000014 (v00 BOCHS)
ACPI: RSDT 0x000000003FFE348A 00002C (v01 BOCHS BXPCRSDT 00000001 BXPC 00000001)
ACPI: FACP 0x000000003FFE30EE 000074 (v01 BOCHS BXPCFACP 00000001 BXPC 00000001)
ACPI: DSDT 0x000000003FFE0040 0030AE (v01 BOCHS BXPCDSDT 00000001 BXPC 00000001)
ACPI: FACS 0x000000003FFE0000 000040
ACPI: APIC 0x000000003FFE3162 000328 (v01 BOCHS BXPCAPIC 00000001 BXPC 00000001)
ACPI: ที่อยู่ APIC ท้องถิ่น 0xfee00000
ไม่พบการกำหนดค่า NUMA
ปลอมโหนดที่ [mem 0x0000000000000000-0x000000003ffdbfff]
NODE_DATA(0) จัดสรร [mem 0x3ffb2000-0x3ffdbfff]
เคอร์เนลผิดพลาด: ค่าหน่วยความจำที่คาดไว้
ช่วงโซน:
DMA [บันทึก 0x0000000000001000-0x0000000000ffffff]
DMA32 [บันทึก 0x0000000001000000-0x000000003ffdbfff]
ว่างเปล่าปกติ
อุปกรณ์ว่างเปล่า
โซนที่เคลื่อนย้ายได้เริ่มต้นสำหรับแต่ละโหนด
ช่วงโหนดหน่วยความจำต้น
โหนด 0: [บันทึก 0x0000000000001000-0x000000000009efff]
โหนด 0: [บันทึก 0x0000000000100000-0x000000003ffdbfff]
หน้าโครงสร้างเป็นศูนย์ในช่วงที่ไม่พร้อมใช้งาน: 134 หน้า
โหนดการตั้งค่า Initmem 0 [mem 0x0000000000001000-0x000000003ffdbfff]
บนโหนด 0 รวมเพจ: 262010
โซน DMA: 64 หน้าที่ใช้สำหรับ memmap
โซน DMA: สงวนไว้ 158 หน้า
โซน DMA: 3998 หน้า ชุด LIFO:0
โซน DMA32: 4032 หน้าที่ใช้สำหรับ memmap
โซน DMA32: 258012 หน้า LIFO ชุด:63
ACPI: PM-Timer พอร์ต IO: 0x608
ACPI: ที่อยู่ APIC ท้องถิ่น 0xfee00000
ACPI: LAPIC_NMI (acpi_id[0xff] dfl dfl lint[0x1])
IOAPIC[0]: apic_id 0 เวอร์ชัน 17 ที่อยู่ 0xfec00000 GSI 0-23
ACPI: INT_SRC_OVR (บัส 0 bus_irq 0 global_irq 2 dfl dfl)
ACPI: INT_SRC_OVR (บัส 0 bus_irq 5 global_irq 5 ระดับสูง)
ACPI: INT_SRC_OVR (บัส 0 bus_irq 9 global_irq 9 ระดับสูง)
ACPI: INT_SRC_OVR (บัส 0 bus_irq 10 global_irq 10 ระดับสูง)
ACPI: INT_SRC_OVR (บัส 0 bus_irq 11 global_irq 11 ระดับสูง)
ACPI: IRQ0 ใช้โดยการแทนที่
ACPI: IRQ5 ใช้โดยการแทนที่
ACPI: IRQ9 ใช้โดยการแทนที่
ACPI: IRQ10 ใช้โดยการแทนที่
ACPI: IRQ11 ใช้โดยการแทนที่
การใช้ ACPI (MADT) สำหรับข้อมูลการกำหนดค่า SMP
smpboot: อนุญาต 87 CPU, 86 hotplug CPU
PM: หน่วยความจำ nosave ที่ลงทะเบียน: [mem 0x00000000-0x00000fff]
PM: หน่วยความจำ nosave ที่ลงทะเบียน: [mem 0x0009f000-0x0009ffff]
PM: หน่วยความจำ nosave ที่ลงทะเบียน: [mem 0x000a0000-0x000effff]
PM: หน่วยความจำ nosave ที่ลงทะเบียน: [mem 0x000f0000-0x000fffff]
[mem 0x40000000-0xfeffbfff] สำหรับอุปกรณ์ PCI
...
หน่วยความจำ: 216012K/1048040K พร้อมใช้งาน (รหัสเคอร์เนล 12293K, 2225K rwdata, 7708K rodata, 2480K init, 14048K bss, 105512K สงวนไว้, 0K cma-สงวนไว้)
SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=87, Nodes=1
การแยกตารางเคอร์เนล/หน้าผู้ใช้: เปิดใช้งาน
ftrace: จัดสรร 38570 รายการใน 151 หน้า
ftrace: จัดสรร 151 หน้ากับ 5 กลุ่ม