Perintah lscpu Linux: baca CPU logis, inti, dan cache

Perintah lscpu menampilkan arsitektur CPU, jumlah CPU logis, susunan inti dan soket, serta informasi cache yang dikenali Linux. CPU(s) bukan otomatis jumlah inti fisik atau jatah CPU yang boleh digunakan proses Anda.

CPU adalah central processing unit atau unit pemrosesan pusat. Lscpu mengumpulkan informasi antara lain dari sysfs, yaitu antarmuka informasi kernel dalam sistem berkas, dan /proc/cpuinfo. Hasilnya membantu membaca konfigurasi, tetapi tidak menggantikan pengukuran penggunaan atau kinerja.

Sintaks dan pemeriksaan awal

lscpu [OPSI]

OPSI adalah penanda yang diganti opsi sebenarnya. Panduan ini menggunakan lscpu dari util-linux. Periksa lscpu --version, lscpu --help, dan man lscpu agar opsi serta kolom cocok dengan versi terpasang.

Contoh di sini hanya membaca informasi dan tidak mengubah konfigurasi CPU. Jalankan pada lingkungan yang hendak Anda periksa; hasil dari tamu mesin virtual perlu diberi konteks sebagai konfigurasi tamu, bukan langsung dianggap spesifikasi fisik host.

Lihat ringkasan CPU

lscpu

Periksa Architecture untuk arsitektur yang dilaporkan, CPU(s) untuk jumlah CPU logis yang dikenali, dan bidang inti, soket, serta thread untuk memahami topologi. CPU logis adalah unit eksekusi yang terlihat oleh sistem operasi; satu inti fisik dapat menyediakan lebih dari satu CPU logis melalui simultaneous multithreading atau SMT.

Jangan menyamakan jumlah CPU logis dengan jumlah prosesor fisik. Soket menunjukkan pengelompokan prosesor, inti adalah unit pemrosesan di dalamnya, sedangkan thread pada topologi lscpu menunjukkan konteks eksekusi perangkat keras. Thread aplikasi adalah konsep yang berbeda.

Periksa daftar per CPU

lscpu -e

Opsi -e menampilkan tabel per CPU, termasuk kolom yang tersedia seperti nomor CPU, inti, soket, dan keadaan online. Daftar bawaan dapat berubah antarversi. Untuk membandingkan atau memproses hasil, pilih kolom secara eksplisit, misalnya lscpu -e=CPU,CORE,SOCKET,ONLINE jika kolom itu didukung instalasi Anda.

Periksa --help untuk nama kolom yang valid. Gunakan -a bersama -e atau -p bila ingin memasukkan CPU online dan offline secara eksplisit; -e sudah menyertakan keduanya secara bawaan, sedangkan -p secara bawaan hanya menyertakan CPU online. CPU offline tidak sama dengan CPU yang sedang menganggur.

Nomor inti harus dibaca bersama soket dan konteks topologi. Jangan menghitung banyaknya nomor inti unik tanpa mempertimbangkan pengelompokan tersebut, atau menganggap nomor CPU wajib berurutan tanpa celah.

Baca informasi cache

lscpu -C

Cache adalah memori cepat yang membantu CPU mengakses data. Opsi -C menampilkan rincian cache yang tersedia. Satu cache dapat digunakan bersama beberapa CPU, sehingga menjumlahkan angka berulang dari setiap CPU dapat menggandakan kapasitas yang sebenarnya sama.

Ringkasan ukuran cache berubah pada util-linux 2.34: versi sebelumnya melaporkan ukuran per inti, sedangkan versi setelah perubahan itu memberikan ringkasan seluruh CPU. Sejak 2.37, ID cache mengikuti kernel dan tidak harus dimulai dari nol. Catat versi sebelum membandingkan laporan dari mesin berbeda. Penjelasan opsi dan perubahan tersebut tersedia dalam manual lscpu dari proyek util-linux.

Bedakan CPU logis dan inti fisik pada contoh

lscpu | head -n 8

Pipeline ini hanya menampilkan delapan baris awal keluaran. Jangan mengandalkan posisi itu untuk mengambil semua bidang topologi. Berikut beberapa bidang pilihan sebagai ilustrasi; ini bukan transkrip lengkap delapan baris pertama dan nilai mesin Anda dapat berbeda:

Architecture:        x86_64
CPU(s):              8
Thread(s) per core:  2
Core(s) per socket:  4

Contoh tersebut menunjukkan delapan CPU logis, dua thread per inti, dan empat inti per soket. Jika konfigurasi yang lengkap adalah satu soket dengan empat inti seragam dan dua thread aktif per inti, jumlahnya delapan CPU logis. Potongan di atas tidak memuat bidang Socket(s), sehingga jangan menggunakannya sendirian untuk memastikan seluruh topologi fisik.

Cocokkan ringkasan lengkap dengan daftar CPU, keadaan online, dan lingkungan virtualisasinya. Pada konfigurasi tidak seragam atau data yang tidak lengkap, jangan memaksakan perkalian sederhana sebagai bukti jumlah seluruh inti fisik.

Opsi penting untuk pembacaan manual dan skrip

Opsi Kegunaan
-e Tabel informasi per CPU untuk pembaca manusia; pilih kolom bila perlu hasil yang konsisten.
-p Keluaran yang lebih sesuai untuk diproses program; kolom dapat dipilih.
-C Rincian cache CPU yang tersedia.
-a Menyertakan CPU online dan offline; dipakai bersama -e atau -p.
-J Keluaran JSON pada bentuk serta versi yang mendukungnya.

Untuk skrip, bentuk seperti lscpu -p=CPU,CORE,SOCKET,ONLINE membuat pilihan kolom terlihat jelas. Periksa pula baris komentar dan format aktual sebelum memprosesnya. Keluaran untuk terminal dapat berbeda penyajiannya dari keluaran melalui pipe; hindari mengandalkan nomor baris ringkasan sebagai antarmuka tetap.

Pahami batas pada mesin virtual dan kontainer

Pada mesin virtual, lscpu biasanya mencerminkan konfigurasi yang diperlihatkan kepada sistem tamu. Host dapat memiliki topologi fisik berbeda. Untuk inventaris perangkat keras host, periksa host atau sumber administrasinya, bukan hanya hasil dari satu tamu.

Dalam kontainer, informasi yang terlihat melalui sysfs atau /proc dapat lebih luas daripada sumber daya yang diizinkan bagi proses. Batas waktu CPU, kumpulan CPU yang diizinkan, dan topologi yang terlihat merupakan hal berbeda. Jumlah CPU(s) tidak membuktikan bahwa aplikasi bebas memakai semuanya.

Pada cgroup v2, yaitu mekanisme kernel untuk mengelola kelompok proses dan sumber dayanya, cpu.max mengatur batas bandwidth waktu CPU, sedangkan cpuset.cpus.effective menunjukkan CPU online yang benar-benar diberikan kepada kelompok terkait. Periksa kelompok proses yang tepat serta batas dari induknya; jangan menganggap satu lokasi berkas berlaku untuk semua kontainer. Rincian ada dalam dokumentasi resmi cgroup v2 kernel Linux.

Untuk penggunaan CPU saat ini, gunakan panduan top untuk pemantauan proses atau alat pemantauan yang sesuai. Jumlah inti, frekuensi, cache, beban kerja, serta pembatasan sumber daya perlu dibaca bersama; jumlah CPU saja bukan hasil uji kinerja.

FAQ

Apakah CPU(s) berarti jumlah inti fisik?

Tidak. Bidang itu menunjukkan CPU logis yang dikenali sistem. Baca inti, soket, thread, dan keadaan online bersama-sama untuk menafsirkan konfigurasi.

Mengapa hasil lscpu lebih besar daripada jatah CPU kontainer?

Informasi topologi yang terlihat dan batas penggunaan proses dapat berasal dari mekanisme berbeda. Periksa pengaturan cgroup atau pengelola kontainer; jangan memperlakukan CPU(s) sebagai kuota CPU.