Memantau dan Mengelola Proses Linux
Published: 2022-10-26 06:01:15

**Definisi Proses**
 Proses adalah sebuah instance yang sedang berjalan atau yang sedang diluncurkan dan dapat dieksekusi. Sebuah proses terdiri dari 4 yaitu : 
1.Ruang alamat dari memori yang dialokasikan
2.Properti keamanan termasuk kredensial kepemilikan dan hak istimewa
3.Satu atau lebih utas eksekusi kode program
4.Status proses
 Setiap proses baru diberi keunikan ID proses (PID) untuk pelacakan dan keamanannya. PID dan ID (PPID) adalah elemen dari lingkungan proses baru. Setiap proses dapat membuat proses anak. Semua proses adalah turunan dari proses sistem pertama. Proses induk tidur pada saat proses anak berjalan,mengatur permintaan (tunggu) untuk diberi sinyal saat anak selesai. Saat keluar, proses anak telah menutup atau membuang sumber daya dan lingkungannya. Satu-satu sumber daya yang tersisa ialah zombie. Zombie adalah entri dalam tabel proses. 

**Menggambarkan Status Proses**
 Setiap CPU atau inti CPU bekerja pada satu proses dan pada satu titik tertentu. Saat proses berjalan, persyaratan untuk waktu CPU dan alokasi sumber daya berubah. 

**Mengapa Status Proses Penting** 
 Pada saat memecahkan masalah sistem, penting karena untuk memahami bagaimana caranya kernel berkomunikasi dengan proses dan bagaimana proses berkomunikasi satu sama lain.Sinyal dapat digunakan oleh proses lain, kernel itu sendiri / pengguna yang masuk ke sistem. 

**Proses Daftar**
 Gunakan perintah ps untuk membuat daftar proses saat ini. peritah ini dapat memberikan informasi  proses yang lebih rinci, termasuk: 
- Identifikasi pengguna (UID) yang menentukan hak prosesnya
- Identifikasi proses unik (PID)
- CPU dan waktu nyata sudah habis
- Ada banyak memori yang telah dialokasikan di berbagai lokasi
- Lokasi proses stdout atau dikenal sebagai terminal pengontrol
- Status proses saat ini
 Versi linux ps mendukung 3 format :
- Opsi UNIX (POSIX) dapat dikelompokkan dan harus didahului dengan tanda hubung
- Opsi BSD dapat dikelompokkan dan tidak boleh digunakan dengan tanda hubung
- Opsi panjang GNU harus didahului oleh dua tanda hubung

**Menjelaskan Pekerjaan dan Sesi**
 Tujuannya : dapat mengontrol pekerjaan Bash untuk mengelola beberapa proses yang dimulai dari sesi terminal yang sama. Kontrol pekerjaan adalah fitur shell yang memungkinkan satu instalasi untuk menjalankan dan mengelola banyak perintah. Sebuah latar belakang proses terminal pengontrol adalah anggota dari perkerjaan lain yang terkait dengan terminal itu.

**Menjalankan Pekerjaan di Latar Belakang**
 Gunakan Perintah atau saluran apa pun dapat dimulai di latar belakang dengan menambahkan ampersand (&) ke akhir baris perintah 
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sx0gsyygj0dkuaeaojb0.png)
 Gunakan perintah jobs untuk menampilkan daftar pekerjaan yang dilacak bash di sesi tertentu.
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fi9zmais9c8chbbtcvee.png)
 Pekerjaan latar belakang dapat dibawa ke latar depan dengan menggunakan perintah fg dengan ID pekerjaannya. 
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2e4sqx0iqjx53f6ljyhx.png)
 Gunakan perintah ps j menampilkan informasi yang berkaitan dengan pekerjaan.
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2p4eym5gtom27zfioc8l.png)
 Gunakan perintah bg untuk memulai proses yang ditangguhkan.
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wjnq2r82ewucfww95g6s.png)
 Shell akan memperingatkan pengguna yang mencoba keluar dari jendela terminal (sesi) dengan pekerjaan yang ditangguhkan. 
Catatan : Tanda + menunjukkan bahwa pekerjaan ini adalah pekerjaan default saat ini.

**Kontrol proses menggunakan sinyal**
Sinyal adalah interupsi perangkat lunak yang dikirim ke suatu proses. Sinyal melaporkan kejadian ke program yang sedang dieksekusi. Peristiwa yang menghasilkan sinyal dapat berupa kesalahan, peristiwa eksternal (permintaan I/O atau timer yang kadaluwarsa), atau dengan penggunaan eksplisit.
 Setiap sinyal pasti memiliki tindakan default seperti :
- Term : Menyebabkan program berhenti/keluar dalam sekaligus.
- Core : Menyebabkan program menyimpan image memori (core dump) yang kemudian dihentikan.
- Stop : Menyebabkan program berhenti mengeksekusi (suspend) dan menunggu untuk melanjutkan (resume).

**Perintah untuk Mengirim Sinyal dengan Permintaan Eksplisit**
 Gunakan perintah kill -l untuk mencantumkan nama dan nomor sinyal yang tersedia. 
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cy50isqxnks90kv74ksg.PNG)
 Gunakan perintah killall untuk memberikan sinyal ke beberapa proses.
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/auqh0giya5ijaennme3w.png)
 Gunakan perintah pkill untuk mengirim sinyal ke satu atau lebih proses yang cocok dengan kriteria. perintah pkill mencakup kriteria-kriteria sebagai berikut : 
- Command : Proses dengan nama perintah yang cocok dengan pola.
- UID : Proses yang dimiliki oleh akun pengguna Linux, efektif / nyata.
- GID : Proses yang dimiliki oleh akun grup Linux, efektif / nyata.
- Induk : Proses anak dari proses induk tertentu.
- Terminal : Proses yang berjalan pada terminal pengendali tertentu.
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e4esqwhda1t7jth92vrk.PNG)

**Mengeluarkan Pengguna Secara Administratif**
 Untuk keluar dari pengguna, pertama-tama kenali sesi masuk yang akan dihentikan. Gunakan perintah w untuk membuat daftar login pengguna dan proses yang sedang berjalan. 
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mz7r5klat6x9l1jcq7pz.PNG)
 Setiap sesi sumber daya CPU yang digunakan oleh pekerjaan saat ini, termasuk tugas latar belakang dan proses anak ada di kolom JCPU. Konsumsi CPU proses latar depan saat ini ada di kolom PCPU.
 Untuk menghentikan semua proses satu pengguna, gunakan perintah pkill. Karena proses awal dalam sesi login (pemimpin sesi) dirancang untuk menangani permintaan penghentian sesi dan mengabaikan sinyal keyboard yang tidak diinginkan, menghentikan semua proses pengguna dan memerlukan penggunaan sinyal SIGKILL. SIGKILL umumnya digunakan terlalu cepat oleh administrator.
Karena sinyal SIGKILL tidak dapat ditangani atau diabaikan serta dapat berakibat fatal. Pertama-tama identifikasi nomor PID yang dimatikan dengan menggunakan perintah pgrep yang beroperasi seperti pkill.
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kyo0udzfbfssmc9ljw4l.PNG)
 Gunakan perintah pstree untuk melihat pohon proses pengguna tunggal.
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ekshg6rjqrbo657pbrjv.PNG)

**Menggambarkan Beban Rata-Rata**
 Muat rata-rata adalah pengukuran yang disediakan oleh kernel Linux yang merupakan cara sederhana untuk merepresentasikan beban sistem yang dirasakan dari waktu ke waktu. Dapat digunakan sebagai ukuran kasar berapa banyak permintaan sumber daya sistem yang tertunda, dan untuk menentukan apakah beban sistem meningkat atau menurun dari waktu ke waktu. 

**Memahami Perhitungan Rata-Rata Beban Linux**
  Linux melaporkan berapa banyak proses yang dijalankan oleh CPU dan berapa banyak proses yang menunggu disk atau I/O jaringan selesai.
- Jumlah beban adalah rata-rata dari jumlah proses yang siap dijalankan (dalam status proses R) atau sedang menunggu I/O selesai (dalam status proses D).
- Beberapa sistem UNIX hanya mempertimbangkan pemanfaatan CPU atau menjalankan panjang antrian untuk menunjukkan beban sistem. Linux juga memanfaatan bagi disk atau jaringan karena hal tersebut dapat berdampak signifikan pada kinerja sistem seperti beban CPU. Saat mengalami rata-rata beban tinggi dengan aktivitas CPU yang minimal, maka periksalah aktivitas disk dan jaringannya. Rata-rata beban adalah pengukuran kasar dari banyaknya proses yang saat ini menunggu permintaan selesai.

**Menafsirkan Nilai Rata-rata Muatan yang Ditampilkan**
 Perintah uptime adalah cara untuk menampilkan rata-rata beban saat ini, mencetak waktu saat ini, berapa lama mesin hidup dan berapa banyak sesi pengguna berjalan.
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nkw7p6qwyq129a7u7lvw.PNG)
 Perintah lscpu berfungsi untuk menentukan berapa banyak CPU yang dimiliki sistem. contohnya : sistem soket tunggal dual-core dengan dua hyperthreads per inti. Secara kasar, Linux akan memperlakukannya sebagai sistem empat CPU untuk tujuan penjadwalan.
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tfhfaighegmtqaf1h167.PNG)

**Pemantauan Proses Waktu Nyata**
Program teratas adalah tampilan dinamis dari proses sistem, menampilkan header ringkasan diikuti dengan daftar proses atau utas yang mirip dengan informasi ps. Tidak seperti output ps statis, top terus-menerus menyegarkan pada interval yang dapat dikonfigurasi, dan menyediakan kemampuan untuk menyusun ulang, menyortir, dan menyorot kolom. Secara umum Kolom keluaran dapat dikenali dari alat sumber daya lainnya sebagai berikut :
- ID proses (PID).
- Nama pengguna (USER) adalah pemilik proses.
- Memori virtual (VIRT) adalah semua memori yang digunakan dalam proses, termasuk : set residen, pustaka bersama, dan halaman memori apa pun yang dipetakan atau ditukar (Berlabel VSZ diperintah ps).
- Memori residen (RES) adalah memori fisik yang digunakan oleh proses, termasuk : objek bersama residen (Berlabel RSSdi perintah ps).
- Status proses (S) ditampilkan sebagai berikut :
  - D= Tidur Tanpa Gangguan
  - R= Berjalan atau Runnable
  - S= Tidur
  - T= Dihentikan atau Dilacak
  - Z= Zombi
- Waktu CPU (TIME) adalah total waktu pemrosesan sejak proses dimulai.
- Nama perintah proses (COMMAND).

 #tjktadb #cloud