Kesan perkakasan menggunakan dmidecode
Pengesanan perkakasan automatik selalu seperti lotere, tetapi menjadi lebih baik dalam beberapa tahun kebelakangan ini kerana banyak pengeluar mendokumentasikan produk mereka dengan lebih terperinci dan mempunyai maklumat khusus yang tersedia dalam talian juga. Untuk mengetahui mengenai maklumat perkakasan mengenai RAM yang dipasang di mesin anda, gunakan dmidecode
arahan (pakej untuk Debian GNU / Linux, Ubuntu dan Linux Mint: dmidecode).
Antara maklumat lain, alat ini melaporkan data terperinci mengenai komponen sistem yang dipasang seperti pemproses, papan bawah, dan RAM. Maklumat tersebut berdasarkan pada Desktop Management Interface (DMI) [1], yang merupakan kerangka kerja yang mengklasifikasikan komponen tunggal pada desktop, notebook atau pelayan dengan mengabstrak komponen-komponen ini dari perisian yang mengurusnya [2]. Pilihannya --taip memori
merujuk kepada peranti memori. Untuk kelas DMI lain, lihat halaman manual dmidecode.
# dmidecode 2.12
SMBIOS 2.7 hadir.
Kendalikan 0x0007, DMI jenis 16, 23 bait
Susunan Ingatan Fizikal
Lokasi: Papan Sistem Atau Papan Induk
Penggunaan: Memori Sistem
Jenis Pembetulan Ralat: Tiada
Kapasiti Maksimum: 16 GB
Pengendali Maklumat Ralat: Tidak Diberikan
Bilangan Peranti: 1
Kendalikan 0x0008, DMI jenis 17, 34 bait
Peranti Memori
Pemegang Array: 0x0007
Pengendali Maklumat Ralat: Tidak Diberikan
Lebar Jumlah: 64 bit
Lebar Data: 64 bit
Saiz: 8192 MB
Faktor Bentuk: SODIMM
Set: Tiada
Pencari: SaluranA-DIMM0
Pencari Bank: BANK 0
Jenis: DDR3
Jenis Perincian: Segerak
Kelajuan: 1600 MHz
Pengilang: Samsung
Nombor Siri: 25252105
Tag Aset: Tiada
Nombor Bahagian: M471B1G73DB0-YK0
Kedudukan: Tidak diketahui
Kelajuan Jam yang Dikonfigurasi: 1600 MHz
Mesin ini kini dilengkapi dengan RAM 8G DDR3 dengan kelajuan jam yang dikonfigurasi 1600 MHz. Seperti yang anda lihat, kapasiti maksimum RAM on-board adalah 16G yang bermaksud ia dapat dilanjutkan dengan modul 8G kedua.
Maklumat grafik mengenai memori
Sekiranya anda memilih antara muka grafik untuk mendapatkan maklumat ini, alat Hardinfo [3] dan Hardware Lister (versi GTK +) [4] mungkin menarik bagi anda. Pada Debian GNU / Linux, Ubuntu dan Linux Mint, program ini tersedia melalui pakej hardinfo dan lshw-gtk. Gambar 2 menunjukkan antara muka pengguna Hardinfo yang memaparkan maklumat memori pada pemasangan Xubuntu.
Berapa banyak memori yang ada pada masa ini
Kadang kala, lebih kurang lebih. Pada baris perintah, maklumat mengenai memori tersedia melalui percuma
perintah. Pada Debian GNU / Linux, Ubuntu dan Linux Mint, program ini adalah sebahagian daripada pakej procps [5]. Gambar 2 menunjukkan output di tetingkap terminal.
Sebagai pilihan pilihan seterusnya, percuma
menerima pelbagai parameter seperti:
-b (- byte):
tunjukkan output sebagai bait-k (--kilo):
tunjukkan output sebagai kilobyte-m (--mega):
tunjukkan output sebagai megabait-g (--giga):
tunjukkan output sebagai gigabait--tera:
tunjukkan output sebagai terabyte-h (- manusia):
tunjukkan output dalam format yang boleh dibaca oleh manusia
Pada rajah 3 output ditunjukkan dalam megabait menggunakan pilihan -m. Sistem ini mempunyai RAM 4G sedangkan 725M sedang digunakan.
Maklumat memori dari sudut pandangan kernel Linux
Alat yang disebutkan di atas bergantung pada maklumat mentah yang disimpan di sistem fail proc kernel Linux. Untuk menunjukkan butiran ini keluarkan kandungan fail / proc / meminfo
menggunakan kucing
utiliti di terminal:
Jumlah: 7888704 kB
MemFree: 302852 kB
MemA Tersedia: 448824 kB
Penampan: 17828 kB
Cache: 326104 kB
TukarCached: 69592 kB
Aktif: 2497184 kB
Tidak aktif: 650912 kB
Aktif (anon): 2338748 kB
Tidak aktif (anon): 525316 kB
Aktif (fail): 158436 kB
Tidak aktif (fail): 125596 kB
Tidak dapat diramalkan: 64 kB
Terkunci: 64 kB
Jumlah Pertukaran: 16150524 kB
SwapFree: 15668480 kB
Kotor: 3008 kB
Balik tulis: 0 kB
Halaman Anon: 2774656 kB
Dipetakan: 4414752 kB
Shmem: 59900 kB
Papak: 130216 kB
SR Boleh dituntut: 61748 kB
Tuntutan balas: 68468 kB
KernelStack: 7328 kB
Jadual Meja: 42844 kB
NFS_Tidak stabil: 0 kB
Lantunan: 0 kB
WritebackTmp: 0 kB
CommitLimit: 20094876 kB
Komitmen_AS: 10344988 kB
VmallocJumlah: 34359738367 kB
VmallocDigunakan: 367296 kB
VmallocChunk: 34359345768 kB
Perkakasan rosak: 0 kB
AnonHugePages: 0 kB
Jumlah Besar_Jumlah: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 78448 kB
DirectMap2M: 2756608 kB
DirectMap1G: 5242880 kB
$
Untuk lebih banyak maklumat statistik mengenai penggunaan, memori dan proses CPU, anda mungkin dapat melihat alat tersebut vmstat
, dan iostat
(Pakej Debian procps dan sysstat).
Bekerja dengan proses - ps, htop dan pstree
Untuk menunjukkan proses aktif sistem Linux anda gunakan ps
perintah. Biasanya, output disusun mengikut abjad. Tetapi ps
arahan boleh melakukan lebih banyak lagi. Menggunakan aux pilihan --urutkan -rss
output senarai proses disusun mengikut penggunaan memori mereka dalam urutan atas-bawah. Gambar 4 menunjukkan proses yang mempunyai permintaan tertinggi pada memori. Keluarannya disusun mengikut ruangan ke-6 bertajuk RSS yang menyingkat Resident Set Size. Nilai diberikan dalam kilobyte.
Perintahnya ps, pstree
dan htop
berkait rapat dari segi maklumat yang dipaparkan alat ini. Kedua-duanya pstree
dan htop
paparkan grafik untuk menggambarkan kebergantungan proses. htop
bertindak sebagai versi interaktif yang membolehkan anda menatal senarai proses ke atas dan ke bawah. Rajah 5 menunjukkan htop
pada sistem desktop dengan pilihan proses yang disusun berdasarkan penggunaan memori tertentu (lajur ke-5).
Mencari proses yang menggunakan memori Swap
Semakin banyak proses dilancarkan, semakin banyak memori digunakan pada masa yang sama. Sebaik sahaja sistem Linux anda kehabisan halaman memori yang tidak digunakan, kernel Linux memutuskan untuk menukar halaman memori ke cakera menggunakan kaedah Least Latest Used (LRU). Untuk menjawab soalan, proses mana yang menggunakan memori pertukaran dan berapa banyak yang digunakan khususnya, anda mungkin melihat output program teratas. Pada tahun 2016, Erik Ljungstrom menerbitkan penerangan ringkas mengenai bagaimana mendapatkan maklumat tersebut dan memanjangkan lajur ini ke output teratas [6]. Gambar 6 menunjukkan output ini pada sistem yang mempunyai banyak halaman memori di RAM yang tersisa dan tidak menggunakan Swap, pada masa ini.
Selanjutnya, pada tahun 2011 ia telah menerbitkan skrip bash yang menilai maklumat dari sistem file proc untuk memaparkan penggunaan proses pertukaran dengan proses [7]. Walaupun 7 tahun kemudian dan sudah digambarkan sebagai usang, skripnya masih bagus dan menunjukkan cara mengotomatisasi tugas pada sistem Linux. Itulah sebabnya kami yakin dapat menunjukkannya sekali lagi di sini.
Output skrip adalah seperti berikut (jalankan seperti akar
pengguna mengambil data penuh):
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 - (pengawas / 0)
PID = 11 - Tukar yang digunakan: 0 - (pengawas / 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 - (pengawas / 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)
…
#
Kesimpulannya
Kotak alat Linux mengandungi senarai program tanpa henti yang tersedia untuk membantu anda menganalisis penggunaan memori sistem Linux anda. Kami hanya melihat sekejap - dari data mentah hingga maklumat yang diproses - semuanya ada di sana. Ketahui alat anda sahaja. Untuk membiasakan diri dengan mereka luangkan sedikit masa dan bermain dengan mereka.
Ini adalah bahagian 2 dari siri Pengurusan Memori Kernel Linux. Bahagian 1 membincangkan Swap Memory, di Bahagian Tiga siri ini kita akan membincangkan bagaimana mengoptimumkan penggunaan memori. Ini akan merangkumi pengurusan ramdisk serta fail pertukaran mampatan.
Pautan dan Rujukan
- [1] DMI di Pasukan Petugas Pengurusan Teragih (DMTF)
- [2] DMI di Wikipedia
- [3] Hardinfo
- [4] lshw-gtk (Pakej Debian untuk Stretch)
- [5] procps (Pakej Debian untuk Peregangan)
- [6] Erik Ljungstrom: Ketahui Apa Yang Menggunakan Pertukaran Anda
- [7] Erik Ljungstrom: Penggunaan Tukar - 5 Tahun Kemudian
Siri Pengurusan Memori Linux
- Bahagian 1: Pengurusan Memori Kernel Linux: Tukar Ruang
- Bahagian 2: Perintah untuk Menguruskan Memori Linux
- Bahagian 3: Mengoptimumkan Penggunaan Memori Linux
Ucapan terima kasih
Penulis ingin mengucapkan terima kasih kepada Mandy Neumeyer dan Gerold Rupprecht atas sokongan mereka semasa menyiapkan artikel ini.