Mencoba mencari tahu apa yang berjalan di mesin Anda—dan proses mana yang menghabiskan semua memori Anda dan membuat semuanya berjalan lancar—adalah tugas yang dilayani dengan baik oleh utilitas top
.
top
adalah program yang sangat berguna yang bertindak mirip dengan Pengelola Tugas Windows atau Monitor Aktivitas MacOS. Menjalankan top
di mesin *nix Anda akan menunjukkan kepada Anda tampilan langsung dari proses yang berjalan di sistem Anda.
$ top
Tergantung pada versi top
Anda sedang berlari, Anda akan mendapatkan sesuatu yang terlihat seperti ini:
top - 08:31:32 up 1 day, 4:09, 0 users, load average: 0.20, 0.12, 0.10
Tasks: 3 total, 1 running, 2 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.5 us, 0.3 sy, 0.0 ni, 99.2 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem: 4042284 total, 2523744 used, 1518540 free, 263776 buffers
KiB Swap: 1048572 total, 0 used, 1048572 free. 1804264 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 21964 3632 3124 S 0.0 0.1 0:00.23 bash
193 root 20 0 123520 29636 8640 S 0.0 0.7 0:00.58 flask
195 root 20 0 23608 2724 2400 R 0.0 0.1 0:00.21 top
Versi top
. Anda mungkin terlihat berbeda dari ini, terutama di kolom yang ditampilkan.
Cara membaca output
Anda dapat mengetahui apa yang Anda jalankan berdasarkan output, tetapi mencoba menafsirkan hasilnya bisa sedikit membingungkan.
Beberapa baris pertama berisi sekumpulan statistik (detail) diikuti oleh tabel dengan daftar hasil (daftar). Mari kita mulai dengan yang terakhir.
Daftar
Lebih banyak sumber daya Linux
- Lembar contekan perintah Linux
- Lembar contekan perintah Linux tingkat lanjut
- Kursus online gratis:Ikhtisar Teknis RHEL
- Lembar contekan jaringan Linux
- Lembar contekan SELinux
- Lembar contekan perintah umum Linux
- Apa itu container Linux?
- Artikel Linux terbaru kami
Ini adalah proses yang sedang berjalan pada sistem. Secara default, mereka diurutkan berdasarkan penggunaan CPU dalam urutan menurun. Ini berarti item di bagian atas daftar menggunakan lebih banyak sumber daya CPU dan menyebabkan lebih banyak beban pada sistem Anda. Mereka secara harfiah adalah proses "atas" berdasarkan penggunaan sumber daya. Harus diakui, itu nama yang cerdas.
COMMAND
kolom di paling kanan melaporkan nama proses (perintah yang Anda jalankan untuk memulainya). Dalam contoh ini, mereka adalah bash
(penerjemah perintah yang kami jalankan top
di), flask
(kerangka mikro web yang ditulis dengan Python), dan top
sendiri.
Kolom lain memberikan informasi yang berguna tentang proses:
PID
:id proses , pengidentifikasi unik untuk menangani prosesUSER
:pengguna yang menjalankan prosesPR
:prioritas tugasNI
:representasi prioritas yang lebih baikVIRT
:ukuran memori virtual dalam KiB (kibibyte)*RES
:ukuran memori tetap dalam KiB* ("memori fisik" dan subset dari VIRT)SHR
:ukuran memori bersama dalam KiB* ("memori bersama" dan subset VIRT)S
:status proses, biasanya I =menganggur, R =lari, S =tidur, Z =zombie, T atau t =stopped (ada juga opsi lain yang kurang umum)%CPU
:Persentase penggunaan CPU sejak pembaruan layar terakhir%MEM
:persentaseRES
penggunaan memori sejak pembaruan layar terakhirTIME+
:total waktu CPU yang digunakan sejak proses dimulaiCOMMAND
:perintah, seperti yang dijelaskan di atas
*Tahu persis apa itu VIRT
, RES
, dan SHR
nilai mewakili tidak benar-benar penting dalam operasi sehari-hari. Yang penting diketahui adalah proses dengan VIRT
paling banyak adalah proses yang menggunakan memori paling banyak. Jika Anda berada di top
karena Anda sedang men-debug mengapa komputer Anda terasa seperti berada di kolam molase, proses dengan VIRT
terbesar nomor adalah pelakunya. Jika Anda ingin mempelajari dengan tepat apa arti memori "bersama" dan "fisik", lihat "Jenis Memori Linux" di manual atas.
Dan, ya, saya memang bermaksud mengetik kibi byte, bukan kilo byte. Nilai 1.024 yang biasa Anda sebut kilobyte adalah sebenarnya satu kibibyte. Yunani kilo ("χίλιοι") berarti seribu dan berarti 1.000 sesuatu (misalnya, satu kilometer adalah seribu meter, satu kilogram adalah seribu gram). Kibi adalah gabungan dari kilo dan byte , dan itu berarti 1.024 byte (atau 2). Tapi, karena kata-kata sulit untuk diucapkan, banyak orang mengatakan kilobyte ketika mereka berarti 1.024 byte. Semua ini berarti top
sedang mencoba menggunakan istilah yang tepat di sini, jadi ikuti saja. #themoreyouknow ?.
Catatan tentang pembaruan layar:
Pembaruan layar langsung adalah salah satu hal yang secara objektif sangat keren Program Linux dapat melakukannya. Ini berarti mereka dapat memperbarui tampilan mereka sendiri secara real time, sehingga mereka tampil beranimasi. Meskipun mereka menggunakan teks. Keren abis! Dalam kasus kami, waktu antara pembaruan penting, karena beberapa statistik kami (%CPU
dan %MEM
) didasarkan pada nilai sejak pembaruan layar terakhir.
Dan karena kita menjalankan aplikasi persisten, kita dapat menekan perintah kunci untuk membuat perubahan langsung pada pengaturan atau konfigurasi (sebagai ganti, katakanlah, menutup aplikasi dan menjalankan aplikasi lagi dengan tanda baris perintah yang berbeda).
Mengetik h
memanggil layar "bantuan", yang juga menampilkan penundaan default (waktu antara pembaruan layar). Secara default, nilai ini (sekitar) tiga detik, tetapi Anda dapat mengubahnya dengan mengetikkan d
(mungkin untuk "penundaan") atau s
(mungkin untuk "layar" atau "detik").
Detail
Di atas daftar proses, ada banyak informasi berguna lainnya. Beberapa detail ini mungkin terlihat aneh dan membingungkan, tetapi setelah Anda meluangkan waktu untuk menelusuri setiap detailnya, Anda akan melihat bahwa statistik tersebut sangat berguna untuk digunakan dalam keadaan darurat.
Baris pertama berisi informasi sistem umum
top
:kami menjalankantop
! Haitop
!XX:YY:XX
:waktu, diperbarui setiap kali layar diperbaruiup
(laluX day, YY:ZZ
):waktu aktif sistem, atau berapa lama waktu telah berlalu sejak sistem dihidupkanload average
(lalu tiga angka):sistem memuat masing-masing selama satu, lima, dan 15 menit terakhir
Baris kedua (Tasks
) menunjukkan informasi tentang tugas yang sedang berjalan, dan itu cukup jelas. Ini menunjukkan jumlah total proses dan jumlah proses yang berjalan, tidur, berhenti, dan zombie. Ini secara harfiah merupakan penjumlahan dari S
(negara bagian ) kolom yang dijelaskan di atas.
Baris ketiga (%Cpu(s)
) menunjukkan penggunaan CPU yang dipisahkan berdasarkan jenisnya. Data adalah nilai antara penyegaran layar. Nilainya adalah:
us
:proses penggunasy
:proses sistemni
:proses pengguna yang bagusid
:waktu idle CPU; waktu idle yang tinggi berarti tidak banyak yang terjadi sebaliknyawa
:waktu tunggu, atau waktu yang dihabiskan untuk menunggu penyelesaian I/Ohi
:waktu yang dihabiskan untuk menunggu interupsi perangkat kerassi
:waktu yang dihabiskan untuk menunggu interupsi perangkat lunakst
:"waktu dicuri dari VM ini oleh hypervisor"
Anda dapat menutup Tasks
dan %Cpu(s)
baris dengan mengetik t
(untuk "beralih").
Keempat (KiB Mem
) dan baris kelima (KiB Swap
) memberikan informasi untuk memori dan swap. Nilai-nilai ini adalah:
total
used
free
Tapi juga:
- memori
buffers
- tukar
cached Mem
Secara default, mereka terdaftar di KiB, tetapi menekan E
(untuk "perpanjang penskalaan memori") berputar melalui nilai yang berbeda:kibibyte, mebibyte, gibibyte, tebibyte, pebibyte, dan exbibyte. (Artinya, kilobyte, megabyte, gigabyte, terabyte, petabyte, dan exabytes, tetapi "nama asli" mereka.)
top
panduan pengguna menunjukkan lebih banyak informasi tentang flag dan konfigurasi yang berguna. Untuk menemukan manual di sistem Anda, Anda dapat menjalankan man top
. Ada berbagai situs web yang menampilkan rendering HTML dari manual, tetapi perhatikan bahwa ini mungkin untuk versi top yang berbeda .
Dua alternatif teratas
Anda tidak harus selalu menggunakan top
untuk memahami apa yang terjadi. Bergantung pada keadaan Anda, alat lain mungkin membantu Anda mendiagnosis masalah, terutama jika Anda menginginkan antarmuka yang lebih grafis atau khusus.
htop
htop
sangat mirip dengan top
, tetapi ini membawa sesuatu yang sangat berguna ke dalam tabel:representasi grafis dari CPU dan penggunaan memori.
Beginilah lingkungan yang kami periksa di top
lihat di htop
. Tampilannya jauh lebih sederhana, namun tetap kaya fitur.
Jumlah tugas, pemuatan, waktu aktif, dan daftar proses kami masih ada, tetapi kami mendapatkan tampilan animasi yang bagus dan berwarna dari penggunaan CPU per inti dan grafik penggunaan memori.
Inilah arti dari perbedaan warna (Anda juga bisa mendapatkan informasi ini dengan menekan h
untuk "bantuan").
Prioritas atau jenis tugas CPU:
- biru:prioritas rendah
- hijau:prioritas normal
- merah:tugas kernel
- biru:tugas virtual
- nilai di akhir bilah adalah persentase CPU yang digunakan
Memori:
- hijau:memori bekas
- biru:memori buffer
- kuning:memori cache
- nilai di akhir bilah menunjukkan memori yang digunakan dan total
Jika warna tidak berguna untuk Anda, Anda dapat menjalankan htop -C
untuk menonaktifkannya; sebagai gantinya htop
akan menggunakan simbol yang berbeda untuk memisahkan jenis CPU dan memori.
Di bagian bawah, ada tampilan tombol fungsi aktif yang berguna yang dapat Anda gunakan untuk melakukan hal-hal seperti memfilter hasil atau mengubah urutan pengurutan. Cobalah beberapa perintah untuk melihat apa yang mereka lakukan. Berhati-hatilah saat mencoba F9
. Ini akan memunculkan daftar sinyal yang akan mematikan (yaitu, menghentikan) suatu proses. Saya menyarankan untuk menjelajahi opsi ini di luar lingkungan produksi.
Penulis htop
, Hisham Muhammad (dan ya, ini disebut htop
setelah Hisham) menyajikan ceramah kilat tentang htop
di FOSDEM 2018 pada bulan Februari. Dia menjelaskan bagaimana htop
tidak hanya memiliki grafik yang rapi, tetapi juga menampilkan informasi statistik yang lebih modern tentang proses yang digunakan oleh utilitas pemantauan lama (seperti top
) jangan.
Anda dapat membaca lebih lanjut tentang htop
di halaman manual atau situs web htop. (Peringatan:situs web berisi latar belakang animasi htop
.)
statistik buruh pelabuhan
Jika Anda bekerja dengan Docker, Anda dapat menjalankan docker stats
untuk menghasilkan representasi kaya konteks tentang apa yang dilakukan container Anda.
Ini bisa lebih membantu daripada top
karena, alih-alih memisahkan dengan proses, Anda memisahkan dengan wadah. Ini sangat berguna ketika sebuah container lambat, karena melihat container mana yang menggunakan resource paling banyak lebih cepat daripada menjalankan top
dan mencoba memetakan proses ke container.
Penjelasan singkatan dan deskriptor di atas di top
dan htop
harus membuatnya mudah untuk memahami yang ada di docker stats
. Namun, dokumentasi statistik buruh pelabuhan memberikan deskripsi yang berguna untuk setiap kolom.