GNU/Linux >> Belajar Linux >  >> Linux

Panduan untuk Perintah "Atas" Linux

Perintah top memungkinkan pengguna untuk memantau proses dan penggunaan sumber daya sistem di Linux. Ini adalah salah satu alat paling berguna di kotak alat sysadmin, dan sudah diinstal sebelumnya di setiap distribusi. Tidak seperti perintah lain seperti ps , ini interaktif, dan Anda dapat menelusuri daftar proses, mematikan proses, dan sebagainya.

Dalam artikel ini, kita akan memahami cara menggunakan perintah teratas.

Isi

  • 1 Memulai
  • 2 Memahami antarmuka atas:area ringkasan

    • 2.1 Waktu sistem, waktu aktif, dan sesi pengguna
    • 2.2 Penggunaan memori
    • 2.3 Tugas
    • Penggunaan CPU 2,4
    • 2,5 Muat rata-rata
  • 3 Memahami antarmuka atas:area tugas
  • 4 Contoh penggunaan perintah teratas

    • 4.1 Proses mematikan
    • 4.2 Menyortir daftar proses
    • 4.3 Menampilkan daftar utas alih-alih proses
    • 4.4 Menampilkan jalur lengkap
    • 4.5 Pemandangan hutan
    • 4.6 Mencantumkan proses dari pengguna
    • 4.7 Memfilter melalui proses
    • 4.8 Mengubah tampilan default statistik CPU dan memori
    • 4.9 Menyimpan setelan Anda
  • 5 Kesimpulan

Memulai

Seperti yang mungkin sudah Anda duga, Anda hanya perlu mengetikkan ini untuk meluncurkan bagian atas:

top

Ini memulai aplikasi baris perintah interaktif, mirip dengan yang ada di tangkapan layar di bawah. Bagian atas output berisi statistik tentang proses dan penggunaan sumber daya, sedangkan bagian bawah berisi daftar proses yang sedang berjalan. Anda dapat menggunakan tombol panah dan tombol Page Up/Down untuk menelusuri daftar. Jika Anda ingin keluar, cukup tekan “q”.

Ada beberapa varian teratas, tetapi di sisa artikel ini, kita akan berbicara tentang varian yang paling umum — varian yang disertakan dengan paket “procps-ng”. Anda dapat memverifikasi ini dengan menjalankan:

top -v

Jika Anda memiliki varian ini, ini akan muncul di output, seperti:

procps-ng version 3.3.10

Ada sedikit hal yang terjadi di antarmuka atas, jadi kami akan menguraikannya sedikit demi sedikit di bagian selanjutnya.

Memahami antarmuka atas:area ringkasan

Seperti yang telah kita lihat sebelumnya, output top dibagi menjadi dua bagian yang berbeda. Di bagian artikel ini, kita akan fokus pada elemen di setengah dari output. Wilayah ini juga disebut “area ringkasan”.

Waktu sistem, waktu aktif, dan sesi pengguna

Di kiri atas layar (seperti yang ditandai pada tangkapan layar di atas), bagian atas menampilkan waktu saat ini. Ini diikuti oleh uptime sistem, yang memberi tahu kita waktu sistem telah berjalan. Misalnya, dalam contoh kita, waktu saat ini adalah “15:39:37”, dan sistem telah berjalan selama 90 hari, 15 jam, dan 26 menit.

Berikutnya adalah jumlah sesi pengguna aktif. Dalam contoh ini, ada dua sesi pengguna aktif. Sesi ini dapat dilakukan pada TTY (secara fisik pada sistem, baik melalui baris perintah atau lingkungan desktop) atau PTY (seperti jendela emulator terminal atau melalui SSH). Faktanya, jika Anda masuk ke sistem Linux melalui lingkungan desktop, dan kemudian memulai emulator terminal, Anda akan menemukan akan ada dua sesi aktif.

Jika Anda ingin mendapatkan detail lebih lanjut tentang sesi pengguna aktif, gunakan who perintah.

Penggunaan memori



Bagian "memori" menampilkan informasi mengenai penggunaan memori sistem. Garis bertanda "Mem" dan "Swap" menunjukkan informasi tentang RAM dan ruang swap masing-masing. Sederhananya, ruang swap adalah bagian dari hard disk yang digunakan seperti RAM. Ketika penggunaan RAM hampir penuh, bagian RAM yang jarang digunakan akan ditulis ke dalam ruang swap, siap untuk diambil nanti saat dibutuhkan. Namun, karena mengakses disk lambat, terlalu mengandalkan swapping dapat merusak kinerja sistem.

Seperti yang Anda harapkan secara alami, nilai "total", "bebas" dan "bekas" memiliki arti yang biasa. Nilai "avail mem" adalah jumlah memori yang dapat dialokasikan ke proses tanpa menyebabkan lebih banyak swapping.

Kernel Linux juga mencoba mengurangi waktu akses disk dengan berbagai cara. Ini mempertahankan "cache disk" di RAM, di mana wilayah disk yang sering digunakan disimpan. Selain itu, penulisan disk disimpan ke "buffer disk", dan kernel akhirnya menulisnya ke disk. Total memori yang dikonsumsi oleh mereka adalah nilai "buff/cache". Ini mungkin terdengar seperti hal yang buruk, tetapi sebenarnya tidak — memori yang digunakan oleh cache akan dialokasikan ke proses jika diperlukan.

Tugas

Bagian "Tugas" menunjukkan statistik mengenai proses yang berjalan di sistem Anda. Nilai "total" hanyalah jumlah total proses. Misalnya pada screenshot di atas, ada 27 proses yang sedang berjalan. Untuk memahami nilai lainnya, kita memerlukan sedikit latar belakang tentang bagaimana kernel Linux menangani proses.

Proses melakukan campuran pekerjaan terikat I/O (seperti membaca disk) dan pekerjaan terikat CPU (seperti melakukan operasi aritmatika). CPU dalam keadaan idle ketika suatu proses melakukan I/O, jadi OS beralih untuk mengeksekusi proses lain selama waktu ini. Selain itu, OS memungkinkan proses tertentu untuk dieksekusi dalam waktu yang sangat singkat, dan kemudian beralih ke proses lain. Ini adalah bagaimana OS muncul seolah-olah mereka "multitasking". Melakukan semua ini mengharuskan kita untuk melacak "keadaan" suatu proses. Di Linux, sebuah proses mungkin dalam status berikut:

  • Runnable (R):Sebuah proses dalam status ini sedang dieksekusi pada CPU, atau ada di antrian run, siap dieksekusi.
  • Interruptible sleep (S):Proses dalam status ini menunggu acara selesai.
  • Uninterruptible sleep (D):Dalam hal ini, sebuah proses sedang menunggu operasi I/O selesai.
  • Berhenti (T):Proses ini telah dihentikan oleh sinyal kontrol pekerjaan (seperti dengan menekan Ctrl+Z) atau karena sedang dilacak.
  • Zombie (Z):Kernel memelihara berbagai struktur data dalam memori untuk melacak proses. Suatu proses dapat membuat sejumlah proses anak, dan mereka dapat keluar saat induknya masih ada. Namun, struktur data ini harus disimpan sampai induk memperoleh status proses anak. Proses yang dihentikan seperti itu yang struktur datanya masih ada disebut zombie.

Proses dalam status D dan S ditampilkan dalam "tidur", dan proses dalam status T ditampilkan dalam "berhenti". Jumlah zombie ditampilkan sebagai nilai "zombie".

penggunaan CPU

Bagian penggunaan CPU menunjukkan persentase waktu CPU yang dihabiskan untuk berbagai tugas. us value adalah waktu yang dihabiskan CPU untuk mengeksekusi proses di ruang pengguna. Demikian pula, sy value adalah waktu yang dihabiskan untuk menjalankan proses kernelspace.

Linux menggunakan nilai “bagus” untuk menentukan prioritas suatu proses. Sebuah proses dengan nilai "bagus" yang tinggi adalah "lebih baik" untuk proses lain, dan mendapat prioritas rendah. Demikian pula, proses dengan "bagus" yang lebih rendah mendapat prioritas yang lebih tinggi. Seperti yang akan kita lihat nanti, nilai default "bagus" dapat diubah. Waktu yang dihabiskan untuk menjalankan proses dengan "bagus" yang disetel secara manual muncul sebagai ni nilai.

Ini diikuti oleh id , yang merupakan waktu CPU tetap menganggur. Sebagian besar sistem operasi menempatkan CPU pada mode hemat daya saat idle. Berikutnya adalah wa value, yaitu waktu yang dihabiskan CPU untuk menunggu I/O selesai.

Interupsi adalah sinyal ke prosesor tentang suatu peristiwa yang membutuhkan perhatian segera. Interupsi perangkat keras biasanya digunakan oleh periferal untuk memberi tahu sistem tentang kejadian, seperti penekanan tombol pada keyboard. Di sisi lain, interupsi perangkat lunak dihasilkan karena instruksi khusus yang dieksekusi pada prosesor. Dalam kedua kasus tersebut, OS menanganinya, dan waktu yang dihabiskan untuk menangani interupsi perangkat keras dan perangkat lunak diberikan oleh hi dan si masing-masing.

Dalam lingkungan virtual, sebagian dari sumber daya CPU diberikan ke setiap mesin virtual (VM). OS mendeteksi ketika ada pekerjaan yang harus dilakukan, tetapi tidak dapat melakukannya karena CPU sibuk pada beberapa VM lain. Jumlah waktu yang hilang dengan cara ini adalah waktu “mencuri”, ditunjukkan sebagai st .

Muat rata-rata

Bagian rata-rata beban mewakili "beban" rata-rata selama satu, lima, dan lima belas menit. "Beban" adalah ukuran jumlah pekerjaan komputasi yang dilakukan sistem. Di Linux, beban adalah jumlah proses dalam status R dan D pada saat tertentu. Nilai "muatan rata-rata" memberi Anda ukuran relatif tentang berapa lama Anda harus menunggu hingga sesuatu selesai.



Mari kita perhatikan beberapa contoh untuk memahami konsep ini. Pada sistem inti tunggal, rata-rata beban 0,4 berarti sistem hanya melakukan 40% pekerjaan yang dapat dilakukan. Rata-rata beban 1 berarti sistem tepat pada kapasitasnya — sistem akan kelebihan beban dengan menambahkan sedikit pekerjaan tambahan. Sistem dengan rata-rata beban 2,12 berarti sistem tersebut kelebihan beban dengan 112% lebih banyak pekerjaan daripada yang dapat ditanganinya.

Pada sistem multi-inti, Anda harus terlebih dahulu membagi rata-rata beban dengan jumlah inti CPU untuk mendapatkan ukuran yang sama.

Selain itu, "rata-rata beban" sebenarnya bukan "rata-rata" khas yang kita ketahui. Ini adalah "rata-rata bergerak eksponensial", yang berarti sebagian kecil dari rata-rata beban sebelumnya diperhitungkan ke dalam nilai saat ini. Jika Anda tertarik, artikel ini mencakup semua detail teknis.

Memahami antarmuka atas:area tugas

Area ringkasan relatif lebih sederhana, dan berisi daftar proses. Di bagian ini, kita akan mempelajari tentang berbagai kolom yang ditampilkan di output default atas.

  • PID

Ini adalah ID proses, bilangan bulat positif unik yang mengidentifikasi suatu proses.

  • USER

Ini adalah nama pengguna "efektif" (yang memetakan ke ID pengguna) dari pengguna yang memulai proses. Linux memberikan ID pengguna nyata dan ID pengguna yang efektif untuk proses; yang terakhir memungkinkan suatu proses untuk bertindak atas nama pengguna lain. (Misalnya, pengguna non-root dapat naik ke root untuk menginstal paket.)

  • PR dan NI

Bidang “NI” menunjukkan nilai “bagus” dari suatu proses. Kolom “PR” menunjukkan prioritas penjadwalan proses dari perspektif kernel. Nilai bagus mempengaruhi prioritas suatu proses.

  • VIRT, RES, SHR, dan %MEM

Ketiga bidang ini terkait dengan konsumsi memori proses. “VIRT” adalah jumlah total memori yang digunakan oleh suatu proses. Ini termasuk kode program, data yang disimpan oleh proses dalam memori, serta setiap wilayah memori yang telah ditukar ke disk. "RES" adalah memori yang dikonsumsi oleh proses dalam RAM, dan "%MEM" menyatakan nilai ini sebagai persentase dari total RAM yang tersedia. Terakhir, “SHR” adalah jumlah memori yang digunakan bersama dengan proses lain.

  • S

Seperti yang telah kita lihat sebelumnya, sebuah proses mungkin berada dalam berbagai status. Bidang ini menunjukkan status proses dalam bentuk satu huruf.

  • TIME+

Ini adalah total waktu CPU yang digunakan oleh proses sejak dimulai, tepatnya hingga seperseratus detik.

  • PERINTAH

Kolom COMMAND menunjukkan nama proses.

Contoh penggunaan perintah teratas

Sejauh ini, kita telah membahas tentang antarmuka top. Namun, itu juga dapat mengelola proses, dan Anda dapat mengontrol berbagai aspek output teratas. Di bagian ini, kita akan mengambil beberapa contoh.

Di sebagian besar contoh di bawah, Anda harus menekan tombol saat top sedang berjalan. Perlu diingat bahwa penekanan tombol ini peka huruf besar-kecil — jadi jika Anda menekan “k” saat Caps Lock aktif, sebenarnya Anda telah menekan “K”, dan perintah tidak akan berfungsi, atau melakukan hal lain sama sekali.

Proses pembunuhan

Jika Anda ingin mematikan proses, cukup tekan 'k' saat top sedang berjalan. Ini akan memunculkan prompt, yang akan menanyakan ID proses dari proses dan tekan enter.

Selanjutnya, masukkan sinyal yang menggunakan proses yang harus dimatikan. Jika Anda membiarkan ini kosong, top menggunakan SIGTERM, yang memungkinkan proses untuk dihentikan dengan anggun. Jika Anda ingin mematikan proses secara paksa, Anda dapat mengetikkan SIGKILL di sini. Anda juga dapat mengetikkan nomor sinyal di sini. Misalnya, angka untuk SIGTERM adalah 15 dan SIGKILL adalah 9.

Jika Anda membiarkan ID proses kosong dan menekan enter secara langsung, proses teratas dalam daftar akan dihentikan. Seperti yang telah kami sebutkan sebelumnya, Anda dapat menggulir menggunakan tombol panah, dan mengubah proses yang ingin Anda hentikan dengan cara ini.

Mengurutkan daftar proses

Salah satu alasan paling sering untuk menggunakan alat seperti top adalah untuk mengetahui proses mana yang paling banyak menghabiskan sumber daya. Anda dapat menekan tombol berikut untuk mengurutkan daftar:

  • 'M' untuk mengurutkan berdasarkan penggunaan memori
  • 'P' untuk mengurutkan berdasarkan penggunaan CPU
  • 'N' untuk mengurutkan berdasarkan ID proses
  • 'T' untuk mengurutkan berdasarkan waktu berjalan

Secara default, top menampilkan semua hasil dalam urutan menurun. Namun, Anda dapat beralih ke urutan menaik dengan menekan 'R'.

Anda juga dapat mengurutkan daftar dengan -o mengalihkan. Misalnya, jika Anda ingin mengurutkan proses berdasarkan penggunaan CPU, Anda dapat melakukannya dengan:

top -o %CPU

Anda dapat mengurutkan daftar menurut atribut mana pun di area ringkasan dengan cara yang sama.

Menampilkan daftar utas alih-alih proses

Kami sebelumnya telah menyentuh bagaimana Linux beralih di antara proses. Sayangnya, proses tidak berbagi memori atau sumber daya lainnya, membuat sakelar semacam itu agak lambat. Linux, seperti banyak sistem operasi lain, mendukung alternatif "ringan", yang disebut "utas". Mereka adalah bagian dari suatu proses dan berbagi wilayah tertentu dari memori dan sumber daya lainnya, tetapi mereka dapat dijalankan secara bersamaan seperti proses.

Secara default, top menunjukkan daftar proses dalam outputnya. Jika Anda ingin membuat daftar utas, tekan 'H' saat bagian atas sedang berjalan. Perhatikan bahwa baris “Tugas” malah mengatakan “Utas”, dan menunjukkan jumlah utas, bukan proses.

Anda mungkin telah memperhatikan bagaimana tidak ada atribut dalam daftar proses yang berubah. Bagaimana mungkin, mengingat proses berbeda dari utas? Di dalam kernel Linux, utas dan proses ditangani menggunakan struktur data yang sama. Jadi, setiap utas memiliki ID, status, dan sebagainya sendiri.

Jika Anda ingin beralih kembali ke tampilan proses, tekan 'H' lagi. Selain itu, Anda dapat menggunakan -H beralih untuk menampilkan utas secara default.

top -H

Menampilkan jalur lengkap

Secara default, top tidak menunjukkan path lengkap ke program, atau membuat perbedaan antara proses kernelspace dan proses userspace. Jika Anda memerlukan informasi ini, tekan 'c' saat top sedang berjalan. Tekan 'c' lagi untuk kembali ke default.

Proses kernelspace ditandai dengan tanda kurung siku di sekelilingnya. Sebagai contoh, pada screenshot di atas ada dua proses kernel, kthreadd dan khelper . Pada kebanyakan instalasi Linux, biasanya akan ada beberapa instalasi lagi.

Atau, Anda juga dapat memulai dari atas dengan -c argumen:

top -c

Pemandangan hutan

Terkadang, Anda mungkin ingin melihat hierarki proses anak-orang tua. Anda dapat melihat ini dengan tampilan hutan, dengan menekan 'v'/'V' saat top sedang berjalan.

Seperti yang Anda ketahui dari tangkapan layar di atas, systemd proses adalah yang pertama untuk memulai pada sistem. Ini telah memulai proses seperti sshd , yang pada gilirannya telah membuat sshd other lainnya proses, dan sebagainya.

Mendaftarkan proses dari pengguna

Untuk membuat daftar proses dari pengguna tertentu, tekan 'u' saat top sedang berjalan. Kemudian, ketik nama pengguna, atau biarkan kosong untuk menampilkan proses untuk semua pengguna.

Atau, Anda dapat menjalankan perintah teratas dengan -u mengalihkan. Dalam contoh ini, kami telah membuat daftar semua proses dari pengguna root.

top -u root

Memfilter melalui proses

Jika Anda memiliki banyak proses untuk dikerjakan, pengurutan sederhana tidak akan bekerja dengan cukup baik. Dalam situasi seperti itu, Anda dapat menggunakan pemfilteran top untuk fokus pada beberapa proses. Untuk mengaktifkan mode ini, tekan 'o'/'O'. Prompt muncul di bagian atas, dan Anda dapat mengetik ekspresi filter di sini.

Ekspresi filter adalah pernyataan yang menentukan hubungan antara atribut dan nilai. Beberapa contoh filter adalah:

  • COMMAND=getty :Memfilter proses yang mengandung “getty” dalam atribut COMMAND.
  • !COMMAND=getty :Memfilter proses yang tidak memiliki “getty” di atribut COMMAND.
  • %CPU>3.0 :Memfilter proses yang memiliki penggunaan CPU lebih dari 3%.

Setelah Anda menambahkan filter, Anda dapat memangkas lebih lanjut dengan menambahkan lebih banyak filter. Untuk menghapus filter yang telah Anda tambahkan, tekan ‘='.

Mengubah tampilan default statistik CPU dan memori

Jika Anda sebagian besar berada di rumah dalam lingkungan GUI, Anda mungkin tidak menyukai cara default teratas untuk menampilkan statistik CPU dan memori. Anda dapat menekan 't' dan 'm' untuk mengubah gaya statistik CPU dan memori. Berikut adalah screenshot dari atas, di mana kita telah menekan 't' dan 'm' sekali.

Jika Anda menekan 't' atau 'm' berulang kali, itu akan berputar melalui empat tampilan berbeda. Dalam dua penekanan pertama, ia berputar melalui dua jenis bilah kemajuan yang berbeda. Jika Anda menekan tombol untuk ketiga kalinya, bilah kemajuan disembunyikan. Jika Anda menekan tombol lagi, itu akan mengembalikan penghitung default berbasis teks.

Menyimpan setelan Anda

Jika Anda telah membuat perubahan apa pun pada output teratas, Anda dapat menyimpannya untuk digunakan nanti dengan menekan 'W'. top menulis konfigurasinya ke .toprc file di direktori home Anda.

Kesimpulan

Perintah atas sangat membantu untuk memantau dan mengelola proses pada sistem Linux. Artikel ini hanya menggores permukaan, dan ada sedikit yang belum kami bahas. Misalnya, ada lebih banyak kolom yang dapat Anda tambahkan ke atas. Untuk semua hal ini, pastikan untuk memeriksa halaman manual dengan menjalankan man top di sistem Anda.


Linux
  1. Panduan terminal Linux untuk pemula

  2. Kuasai perintah Linux ls

  3. Perintah Linux ps

  1. Cara Menggunakan Perintah ftp Linux

  2. Perintah cari di Linux

  3. Panduan untuk Perintah "Temukan" Linux

  1. Cara Menggunakan htop untuk Memantau Proses Sistem Linux

  2. Perintah Shutdown Linux

  3. Perintah Pgrep di Linux