GNU/Linux >> Belajar Linux >  >> Linux

Memahami file /proc/meminfo (Menganalisis penggunaan Memori di Linux)

/proc sistem file adalah sistem file semu. Itu tidak ada di disk. Sebagai gantinya, kernel membuatnya di memori. Ini digunakan untuk memberikan informasi tentang sistem (awalnya tentang proses, maka namanya).
– The '/proc/meminfo ' digunakan oleh untuk melaporkan jumlah memori kosong dan yang digunakan (baik fisik maupun swap) pada sistem serta memori bersama dan buffer yang digunakan oleh kernel.
– Sistem file /proc dijelaskan lebih rinci dalam halaman manual proc (man proc).

Contoh “cat /proc/meminfo”

Output dari perintah “cat /proc/meminfo” akan berbeda tergantung pada OS dan arsitektur server. Bidang yang tercantum di bawah ini mungkin sedikit berbeda atau tidak ada di sistem Anda.

# cat /proc/meminfo 
MemTotal:        1882064 kB
MemFree:         1376380 kB
MemAvailable:    1535676 kB
Buffers:            2088 kB
Cached:           292324 kB
SwapCached:            0 kB
Active:           152944 kB
Inactive:         252628 kB
Active(anon):     111328 kB
Inactive(anon):    16508 kB
Active(file):      41616 kB
Inactive(file):   236120 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:       2097148 kB
SwapFree:        2097148 kB
Dirty:                40 kB
Writeback:             0 kB
AnonPages:        111180 kB
Mapped:            56396 kB
Shmem:             16676 kB
Slab:              54508 kB
SReclaimable:      25456 kB
SUnreclaim:        29052 kB
KernelStack:        2608 kB
PageTables:         5056 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     3038180 kB
Committed_AS:     577664 kB
VmallocTotal:   34359738367 kB
VmallocUsed:       14664 kB
VmallocChunk:   34359717628 kB
HardwareCorrupted:     0 kB
AnonHugePages:     24576 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:       69632 kB
DirectMap2M:     2027520 kB

Bidang

Informasi datang dalam bentuk statistik tinggi dan rendah. Di bagian atas Anda melihat ringkasan nilai paling umum yang ingin dilihat orang. Di bawah ini Anda menemukan nilai-nilai individual yang akan kita diskusikan. Pertama-tama kita akan membahas statistik tinggi.

Statistik tingkat tinggi

  • MemTotal :Total ram yang dapat digunakan (yaitu ram fisik dikurangi beberapa bit yang dicadangkan dan kode biner kernel)
  • MemFree :Jumlah dari Gratis Rendah+Tinggi Gratis (statistik keseluruhan)
  • MemShared :0; ada di sini untuk alasan yang sama tetapi selalu nol.
  • Buffer :Memori dalam cache buffer. kebanyakan tidak berguna sebagai metrik saat ini Penyimpanan yang relatif sementara untuk blok disk mentah seharusnya tidak terlalu besar (20 MB atau lebih)
  • Ditembolok :Memori di pagecache (diskcache) dikurangi SwapCache, Tidak termasuk SwapCached
  • SwapCache :Memori yang pernah di-swap, di-swap kembali tapi masih ada di swapfile (jika memori diperlukan tidak perlu di-swap LAGI karena sudah ada di swapfile. Ini menghemat I/O )

Statistik terperinci

1. Statistik VM
VM membagi halaman cache menjadi memori "aktif" dan "tidak aktif". Idenya adalah jika Anda membutuhkan memori dan beberapa cache perlu dikorbankan untuk itu, Anda mengambilnya dari tidak aktif karena itu diharapkan tidak digunakan. Vm memeriksa apa yang digunakan secara teratur dan memindahkan barang-barang.

Statistiknya adalah:

  • Aktif :Memori yang telah digunakan baru-baru ini dan biasanya tidak diambil kembali kecuali benar-benar diperlukan.
  • Tidak lengkap_kotor :Kotor berarti "mungkin perlu menulis ke disk atau menukar." Membutuhkan lebih banyak pekerjaan untuk gratis. Contoh mungkin file yang belum ditulis. Mereka tidak ditulis ke memori terlalu cepat untuk menjaga I/O tetap rendah. Misalnya, jika Anda sedang menulis log, mungkin lebih baik menunggu sampai Anda memiliki log yang lengkap sebelum mengirimkannya ke disk.
  • Inact_clean :Diasumsikan dapat dengan mudah bebas. Kernel akan mencoba untuk menyimpan beberapa barang bersih agar selalu memiliki sedikit ruang untuk bernafas.
  • Target_Tidak Aktif :Hanya metrik tujuan yang digunakan kernel untuk memastikan ada cukup halaman tidak aktif di sekitarnya. Jika terlampaui, kernel tidak akan berfungsi untuk memindahkan halaman dari aktif ke tidak aktif. Halaman juga bisa menjadi tidak aktif dengan beberapa cara lain, mis. jika Anda melakukan I/O berurutan yang panjang, kernel menganggap Anda tidak akan menggunakan memori itu dan membuatnya tidak aktif secara preventif. Jadi Anda bisa mendapatkan lebih banyak halaman tidak aktif daripada target karena kernel menandai beberapa cache sebagai "lebih mungkin untuk tidak pernah digunakan" dan membiarkannya curang dalam urutan "terakhir digunakan".

2. Statistik Memori

  • Total Tinggi :adalah jumlah total memori di wilayah tinggi. Highmem adalah semua memori di atas (kira-kira) 860MB RAM fisik. Kernel menggunakan trik tidak langsung untuk mengakses wilayah memori tinggi. Cache data dapat masuk ke wilayah memori ini.
  • Total Rendah :Jumlah total memori non-highmem.
  • Gratis Rendah :Jumlah memori bebas dari wilayah memori rendah. Ini adalah memori yang dapat ditangani oleh kernel secara langsung. Semua struktur data kernel harus masuk ke memori rendah.
  • Total Tukar :Jumlah total memori swap fisik.
  • Bebas Tukar :Jumlah total memori swap bebas. Memori yang telah dikeluarkan dari RAM, dan sementara di disk
  • Kotor :Memori yang menunggu untuk ditulis kembali ke disk
  • Tulis Ulang :Memori yang secara aktif sedang ditulis kembali ke disk
  • Dipetakan :file yang telah dipetakan, seperti perpustakaan
  • Lempeng :cache struktur data dalam kernel
  • Berkomitmen_AS :Perkiraan berapa banyak RAM yang Anda perlukan untuk membuat jaminan 99,99% bahwa tidak pernah ada OOM (kehabisan memori) untuk beban kerja ini. Biasanya kernel akan overcommit memori. Itu berarti, katakanlah Anda melakukan malloc 1GB, tidak ada yang terjadi, sungguh. Hanya ketika Anda mulai MENGGUNAKAN memori malloc itu, Anda akan mendapatkan memori nyata sesuai permintaan, dan sebanyak yang Anda gunakan. Jadi Anda semacam mengambil hipotek dan berharap bank tidak bangkrut. Kasus lain mungkin termasuk saat Anda memetakan file yang dibagikan hanya saat Anda menulisnya dan Anda mendapatkan salinan pribadi dari data tersebut. Sementara itu biasanya dibagi antara proses. Committed_AS adalah perkiraan berapa banyak RAM/swap yang Anda perlukan untuk kasus terburuk.
  • PageTables :jumlah memori yang didedikasikan untuk tabel halaman tingkat terendah.
  • ReverseMaps :jumlah pemetaan terbalik yang dilakukan
  • VmallocTotal :ukuran total area memori vmalloc
  • VmallocDigunakan :jumlah area vmalloc yang digunakan
  • VmallocChunk :blok bersebelahan terbesar dari area vmalloc yang gratis


Linux
  1. Bagaimana Cara Mengisi 90% Dari Memori Gratis?

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

  3. Linux – Menggabungkan /usr/bin Dan /usr/sbin Ke /bin (gnu/linux)?

  1. Memahami Sistem File /proc

  2. Memahami File /etc/inittab di Linux

  3. Memahami file /etc/hosts di Linux

  1. Memahami Linux /proc/id/maps

  2. Pulihkan file yang dihapus yang saat ini sedang ditulis

  3. Mengapa MemTotal di /proc/meminfo berubah?