Penyimpanan

Perintah untuk Mengelola Memori Linux

Perintah untuk Mengelola Memori Linux
Sistem UNIX/Linux berisi alat baris perintah untuk hampir semua hal. Ini termasuk juga program untuk menangani memori. Pada artikel ini kami menunjukkan kepada Anda pilihan perintah yang sangat berguna bagi Anda sebagai pengguna Linux.

Deteksi perangkat keras menggunakan dmidecode

Deteksi perangkat keras otomatis selalu sedikit seperti lotere, tetapi menjadi lebih baik dalam beberapa tahun terakhir karena banyak manufaktur mendokumentasikan produk mereka secara lebih rinci dan memiliki informasi spesifik yang tersedia secara online juga. Untuk mengetahui tentang informasi perangkat keras mengenai RAM yang terpasang di mesin Anda, gunakan: kode dmide perintah (paket untuk Debian GNU/Linux, Ubuntu dan Linux Mint: dmidecode).

Di antara informasi lain, alat ini melaporkan data terperinci tentang komponen sistem yang diinstal seperti prosesor, alas tiang, dan RAM. Informasi tersebut didasarkan pada Desktop Management Interface (DMI) [1], yang merupakan kerangka kerja yang mengklasifikasikan komponen tunggal pada desktop, notebook, atau server dengan mengabstraksi komponen-komponen ini dari perangkat lunak yang mengelolanya [2]. Pilihan --jenis memori mengacu pada perangkat memori. Untuk kelas DMI lainnya, lihat halaman manual kode dmide.

# dmidecode --jenis memori
# dmidecode 2.12
SMBIOS 2.7 hadiah.
Menangani 0x0007, tipe DMI 16, 23 byte
Array Memori Fisik
Lokasi: Board Sistem Atau Motherboard
Gunakan: Memori Sistem
Jenis Koreksi Kesalahan: Tidak Ada
Kapasitas Maksimum: 16 GB
Penanganan Informasi Kesalahan: Tidak Disediakan
Jumlah Perangkat: 1
Menangani 0x0008, tipe DMI 17, 34 byte
Perangkat Memori
Pegangan Array: 0x0007
Penanganan Informasi Kesalahan: Tidak Disediakan
Lebar Total: 64 bit
Lebar Data: 64 bit
Ukuran: 8192 MB
Faktor Bentuk: SODIMM
Set: Tidak ada
Pencari Lokasi: SaluranA-DIMM0
Pencari Lokasi Bank: BANK 0
Tipe: DDR3
Tipe Detail: Sinkron
Kecepatan: 1600 MHz
Pabrikan: Samsung
Nomor Seri: 25252105
Tag Aset: Tidak ada
Nomor Bagian: M471B1G73DB0-YK0
Peringkat: Tidak diketahui
Kecepatan Jam yang Dikonfigurasi: 1600 MHz

Mesin ini saat ini dilengkapi dengan RAM 8G DDR3 dengan kecepatan clock yang dikonfigurasi 1600 MHz. Seperti yang Anda lihat, kapasitas maksimum yang tersedia dari RAM on-board adalah 16G yang berarti dapat diperpanjang dengan modul 8G kedua.

Informasi grafis pada memori

Jika Anda lebih suka antarmuka grafis untuk mengambil informasi ini, alat Hardinfo [3] dan Daftar Perangkat Keras (versi GTK+) [4] mungkin menarik bagi Anda. Pada Debian GNU/Linux, Ubuntu dan Linux Mint program ini tersedia melalui paket hardinfo dan lshw-gtk. Gambar 2 menunjukkan antarmuka pengguna Hardinfo yang menampilkan informasi memori pada instalasi Xubuntu.

Berapa banyak memori yang tersedia saat ini?

Terkadang, lebih sedikit lebih banyak. Di baris perintah, informasi mengenai memori tersedia melalui Gratis perintah. Pada Debian GNU/Linux, Ubuntu dan Linux Mint program ini merupakan bagian dari paket procps [5]. Gambar 2 menunjukkan output di jendela terminal.

Sebagai pilihan dari opsi lebih lanjut, Gratis menerima berbagai parameter seperti:

Pada gambar 3 output ditampilkan dalam megabyte menggunakan opsi -m. Sistem memiliki 4G RAM sedangkan 725M sedang digunakan.

Informasi memori dari sudut pandang kernel Linux

Alat-alat yang disebutkan di atas bergantung pada informasi mentah yang disimpan dalam sistem file proc dari kernel Linux. Untuk menampilkan detail ini, keluarkan isi file /proc/meminfo menggunakan kucing utilitas di terminal:

$ cat /proc/meminfo
MemTotal: 7888704 kB
MemFree: 302852 kB
Mem Tersedia: 448824 kB
Buffer: 17828 kB
Ditembolok: 326104 kB
SwapCached: 69592 kB
Aktif: 2497184 kB
Tidak aktif: 650912 kB
Aktif (anon): 2338748 kB
Tidak aktif (anon): 525316 kB
Aktif (berkas): 158436 kB
Tidak aktif (berkas): 125596 kB
Tidak dapat dibatalkan: 64 kB
Dikunci: 64 kB
TukarTotal: 16150524 kB
Bebas Tukar: 15668480 kB
Kotor: 3008 kB
Penulisan Ulang: 0 kB
Halaman Anon: 2774656 kB
Dipetakan: 4414752 kB
Shmem: 59900 kB
Lempengan: 130216 kB
S Dapat Diklaim Ulang: 61748 kB
SUnreclaim: 68468 kB
KernelStack: 7328 kB
Tabel Halaman: 42844 kB
NFS_Tidak Stabil: 0 kB
Pantulan: 0 kB
Tulis BalikTmp: 0 kB
Batas Komit: 20094876 kB
Komitmen_AS: 10344988 kB
VmallocTotal: 34359738367 kB
VmallocDigunakan: 367296 kB
VmallocChunk: 34359345768 kB
Perangkat Keras Rusak: 0 kB
AnonBesarHalaman: 0 kB
HugePages_Total:0
HugePages_Gratis: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Ukuran halaman besar: 2048 kB
DirectMap4k: 78448 kB
DirectMap2M: 2756608 kB
DirectMap1G: 5242880 kB
$

Untuk informasi statistik lebih lanjut mengenai penggunaan cpu, memori, dan proses, Anda dapat melihat alatnya vmstat, dan iostat (Paket Debian procps dan sysstat).

Bekerja dengan proses - ps, htop dan pstree

Untuk menunjukkan proses aktif dari sistem Linux Anda, gunakan: ps perintah. Biasanya, output diurutkan berdasarkan abjad. Tetapi ps perintah dapat melakukan lebih banyak lagi. Menggunakan opsi aux --urutkan -rss output dari daftar proses diurutkan berdasarkan penggunaan memorinya dalam urutan top-down. Gambar 4 menunjukkan proses yang memiliki permintaan memori tertinggi. Output diurutkan berdasarkan kolom ke-6 berjudul RSS yang merupakan singkatan dari Resident Set Size. Nilai diberikan dalam kilobyte.

Perintah-perintah ps, pstree dan htop terkait erat dalam hal informasi yang ditampilkan alat ini. Kedua pstree dan htop tampilkan grafik untuk memvisualisasikan dependensi proses. htop bertindak sebagai versi interaktif yang memungkinkan Anda menggulir daftar proses ke atas dan ke bawah. Gambar 5 menunjukkan htop pada sistem desktop dengan pilihan proses yang diurutkan berdasarkan penggunaan memori spesifiknya (kolom ke-5).

Menemukan proses yang menggunakan memori Swap

Semakin banyak proses yang diluncurkan, semakin banyak memori yang digunakan secara bersamaan. Segera setelah sistem Linux Anda kehabisan halaman memori yang tidak digunakan, kernel Linux memutuskan untuk menukar halaman memori ke disk menggunakan metode Least Recent Used (LRU). Untuk menjawab pertanyaan, proses mana yang menggunakan memori swap dan berapa banyak yang digunakan secara khusus, Anda dapat melihat output dari program teratas. Pada tahun 2016, Erik Ljungstrom menerbitkan deskripsi singkat tentang cara mengambil informasi itu dan memperluas kolom ini ke output teratas [6]. Gambar 6 menunjukkan output ini pada sistem yang memiliki banyak halaman memori di RAM yang tersisa dan tidak menggunakan Swap, saat ini.

Selanjutnya, pada tahun 2011 ia telah menerbitkan skrip bash yang mengevaluasi informasi dari sistem file proc untuk menampilkan penggunaan proses swap demi proses [7]. Bahkan 7 tahun kemudian dan sudah dianggap usang, skripnya masih bagus dan menunjukkan cara mengotomatiskan tugas di sistem Linux. Itulah mengapa kami yakin akan sangat membantu untuk menunjukkannya di sini sekali lagi.

Output dari skrip adalah sebagai berikut (jalankan sebagai akar pengguna mengambil data lengkap):

# ./menukar.SH
PID=1 - Tukar yang digunakan: 0 - (systemd )
PID=2 - Tukar yang digunakan: 0 - (kthreadd )
PID=3 - Tukar yang digunakan: 0 - (ksoftirqd/0 )
PID=5 - Tukar yang digunakan: 0 - (kworker/0:0H )
PID=6 - Tukar yang digunakan: 0 - (kworker/u16:0 )
PID=7 - Tukar yang digunakan: 0 - (rcu_sched )
PID=8 - Tukar yang digunakan: 0 - (rcu_bh )
PID=9 - Tukar yang digunakan: 0 - (migrasi/0 )
PID=10 - Tukar yang digunakan: 0 - (watchdog/0 )
PID=11 - Tukar yang digunakan: 0 - (watchdog/1 )
PID=12 - Tukar yang digunakan: 0 - (migrasi/1 )
PID=13 - Tukar yang digunakan: 0 - (ksoftirqd/1 )
PID=15 - Tukar yang digunakan: 0 - (kworker/1:0H )
PID=16 - Tukar yang digunakan: 0 - (watchdog/2 )
PID=17 - Tukar yang digunakan: 0 - (migrasi/2 )
PID=18 - Tukar yang digunakan: 0 - (ksoftirqd/2 )
PID=20 - Tukar yang digunakan: 0 - (kworker/2:0H )

#

Kesimpulan

Toolbox Linux berisi daftar program yang tersedia untuk membantu Anda menganalisis penggunaan memori sistem Linux Anda. Kami baru saja melihat sekilas - dari data mentah hingga informasi yang telah diproses sebelumnya - semuanya ada di sana. Cukup ketahui alat Anda. Untuk mengenal mereka, luangkan sedikit waktu dan mainkan dengan mereka.

Ini adalah bagian 2 dari seri Manajemen Memori Kernel Linux.  Part 1 membahas tentang Swap Memory, di Part Tiga seri ini kita akan membahas bagaimana cara mengoptimalkan penggunaan memory. Ini akan mencakup pengelolaan ramdisk serta file swap terkompresi.

Tautan dan Referensi

Seri Manajemen Memori Linux

Ucapan Terima Kasih

Penulis ingin mengucapkan terima kasih kepada Mandy Neumeyer dan Gerold Rupprecht atas dukungannya selama mempersiapkan artikel ini.

Distro Linux Terbaik untuk Gaming pada tahun 2021
Sistem operasi Linux telah berkembang jauh dari tampilan aslinya, sederhana, berbasis server. OS ini telah sangat meningkat dalam beberapa tahun terak...
Cara merekam dan streaming sesi permainan Anda di Linux
Dulu, bermain game hanya dianggap sebagai hobi, namun seiring berjalannya waktu, industri game mengalami pertumbuhan yang sangat pesat baik dari segi ...
Game Terbaik untuk Dimainkan dengan Pelacakan Tangan
Oculus Quest baru-baru ini memperkenalkan ide hebat pelacakan tangan tanpa pengontrol. Dengan jumlah permainan dan aktivitas yang terus meningkat yang...