GNU/Linux >> Belajar Linux >  >> Linux

Mengapa MemTotal di /proc/meminfo berubah?

Itu seharusnya tidak pernah berubah. Ini bisa menjadi indikasi beberapa lokasi yang salah dalam RAM. Anda dapat mendiagnosis RAM menggunakan Memtest86+.

Selain itu, satu-satunya cara nomor itu akan berubah adalah jika Anda menganalisis tamu mesin virtual. Mungkin host tempat tamu VM sedang menyesuaikan RAM yang dialokasikan untuk tamu.

Edit #1

Saya menggali posting forum ini yang membahas potensi kebocoran memori oleh modul Kernel yang dapat menyebabkan perubahan MemTotal.

kutipan dari:Re:Bagaimana Anda menentukan jumlah memori sistem?

Pada 30/7/08, Bill McGonigle menulis:

Pada 30 Juli 2008, pukul 10:03, Thomas Charron menulis:

MemTotal dapat berubah. MemTotal tidak menunjukkan memori yang digunakan oleh binari kernel itu sendiri dalam memori, namun ada situasi di mana modul dapat membocorkan memori yang juga dihapus dari MemTotal. Saya tidak ingat secara spesifik kejadian ini, tetapi saya tahu apa yang dibicarakan Paulis sekarang. Yah, itu hanya bug jika Anda mendefinisikan MemTotal sebagai memori fisik yang ada di mesin. Jika Anda melihatnya sebagai total memori yang tersedia untuk kernel, kinerjanya benar, bukan?

Ya, dan 'bug' adalah ketika angka itu turun, itu berarti ada sesuatu yang bocor, alias 'kernel buruk'. Setidaknya modul kernel yang berpotensi 'buruk' (baca berpotensi bermasalah).


Saya merasa tidak nyaman dengan adanya bug di kernel atau modul, jadi saya menggali lebih jauh dan menemukan... bahwa MemTotal dapat berubah secara teratur, ke bawah, atau ke atas. Ini bukan konstanta dan nilai ini pasti dimodifikasi oleh kode kernel di banyak tempat, dalam berbagai keadaan.

Misalnya. virtio_balloon kmod dapat menurunkan MemTotal serta meningkatkannya kembali. Maka tentu saja, mm/memory_hotplug.c sedang mengekspor [add|remove]_memory , keduanya juga digunakan oleh banyak driver.


Linux
  1. Mengapa find -exec mv {} ./target/ + tidak berfungsi?

  2. Bagaimana cara mengetahui dari folder mana suatu proses sedang berjalan?

  3. Mengapa < atau > diperlukan untuk menggunakan /dev/tcp

  1. Bagaimana Cara Mengisi 90% Dari Memori Gratis?

  2. Linux – Menautkan /proc/mnt Ke /proc/mounts?

  3. Bagaimana mengubah default /tmp ke /home/user/tmp

  1. Mengapa /bin/sh Menunjuk Ke /bin/dash Dan Bukan /bin/bash??

  2. /proc/[pid]/pagemaps dan /proc/[pid]/maps | linux

  3. Mengapa malloc() memanggil mmap() dan brk() secara bergantian?