Cara Memantau Penggunaan Sistem, Pemadaman dan Masalah Server Linux - Bagian 9

Cara Memantau Penggunaan Sistem, Pemadaman dan Masalah Server Linux - Bagian 9

Meskipun Linux sangat andal, administrator sistem yang bijak harus menemukan cara untuk mengawasi perilaku dan pemanfaatan sistem setiap saat. Memastikan uptime sedekat mungkin 100% mungkin dan ketersediaan sumber daya adalah kebutuhan penting di banyak lingkungan. Memeriksa status masa lalu dan saat ini sistem akan memungkinkan kita untuk meramalkan dan kemungkinan besar mencegah kemungkinan masalah.

Linux Foundation Certified Engineer - Bagian 9

Memperkenalkan Program Sertifikasi Linux Foundation

Dalam artikel ini kami akan menyajikan daftar beberapa alat yang tersedia di sebagian besar distribusi hulu untuk memeriksa status sistem, menganalisis pemadaman, dan memecahkan masalah yang sedang berlangsung. Secara khusus, dari berbagai data yang tersedia, kami akan fokus pada CPU, ruang penyimpanan dan pemanfaatan memori, manajemen proses dasar, dan analisis log.

Pemanfaatan ruang penyimpanan

Ada 2 perintah terkenal di Linux yang digunakan untuk memeriksa penggunaan ruang penyimpanan: df Dan du.

Yang pertama, df (yang merupakan singkatan dari Disk Free), biasanya digunakan untuk melaporkan penggunaan ruang disk secara keseluruhan berdasarkan sistem file.

Contoh 1: Pelaporan penggunaan ruang disk dalam byte dan format yang dapat dibaca manusia

Tanpa opsi, df melaporkan penggunaan ruang disk dalam byte. Dengan -H Bendera itu akan menampilkan informasi yang sama menggunakan MB atau GB sebagai gantinya. Perhatikan bahwa laporan ini juga mencakup ukuran total setiap sistem file (dalam blok 1-K), ruang bebas dan yang tersedia, dan titik pemasangan setiap perangkat penyimpanan.

# df # df -h 
Pemanfaatan ruang disk

Itu pasti bagus - tetapi ada batasan lain yang dapat membuat sistem file tidak dapat digunakan, dan itu kehabisan inode. Semua file dalam sistem file dipetakan ke inode yang berisi metadatanya.

Contoh 2: Memeriksa Penggunaan Inode dengan Sistem File dalam format yang dapat dibaca manusia dengan
# df -hti 

Anda dapat melihat jumlah inode yang digunakan dan tersedia:

Penggunaan disk inode

Menurut gambar di atas, ada 146 Inode yang digunakan (1%) di /rumah, yang berarti Anda masih dapat membuat file 226K di sistem file itu.

Contoh 3: Menemukan dan / atau Menghapus File dan Direktori Kosong

Perhatikan bahwa Anda dapat kehabisan ruang penyimpanan jauh sebelum kehabisan inode, dan sebaliknya. Untuk alasan itu, Anda perlu memantau tidak hanya pemanfaatan ruang penyimpanan tetapi juga jumlah inode yang digunakan oleh sistem file.

Gunakan perintah berikut untuk menemukan file atau direktori kosong (yang menempati 0B) yang menggunakan inode tanpa alasan:

# find /home -type f -empty # find /home -type d -empty 

Anda juga dapat menambahkan -menghapus Bendera di akhir setiap perintah jika Anda juga ingin menghapus file dan direktori kosong itu:

# find /home -type f -empty --delete # find /home -type f -empty 
Temukan dan hapus file kosong di Linux

Prosedur sebelumnya menghapus 4 file. Mari kita periksa lagi jumlah node yang digunakan / tersedia lagi di / rumah:

# df -hti | rumah grep 
Periksa penggunaan linux inode

Seperti yang Anda lihat, ada 142 Inoda yang digunakan sekarang (4 kurang dari sebelumnya).

Contoh 4: Memeriksa Penggunaan Disk dengan Direktori

Jika penggunaan sistem file tertentu berada di atas persentase yang telah ditentukan sebelumnya, Anda dapat menggunakan du (kependekan dari penggunaan disk) untuk mencari tahu file apa yang paling menempati ruang.

Contoh diberikan /var, yang seperti yang Anda lihat pada gambar pertama di atas, digunakan pada 67%.

# du -sch /var /* 
Periksa Penggunaan Ruang Disk dengan Direktori

Catatan: Bahwa Anda dapat beralih ke salah satu subdirektori di atas untuk mencari tahu apa yang ada di dalamnya dan berapa banyak yang ditempati setiap item. Anda kemudian dapat menggunakan informasi itu untuk menghapus beberapa file jika tidak diperlukan atau memperpanjang ukuran volume logis jika perlu.

Baca juga

  1. 12 Perintah "DF" yang berguna untuk memeriksa ruang disk
  2. 10 Perintah “DU” yang berguna untuk menemukan penggunaan disk file dan direktori

Memori dan pemanfaatan CPU

Alat klasik di Linux yang digunakan untuk melakukan pemeriksaan keseluruhan pemanfaatan CPU / memori dan manajemen proses adalah perintah teratas. Selain itu, atas menampilkan tampilan real-time dari sistem yang sedang berjalan. Ada alat lain yang dapat digunakan untuk tujuan yang sama, seperti htop, tetapi saya telah memilih untuk atas karena diinstal di luar kotak dalam distribusi Linux apa pun.

Contoh 5: Menampilkan status langsung sistem Anda dengan Top

Untuk memulai, cukup ketikkan perintah berikut di baris perintah Anda, dan tekan Enter.

# atas 

Mari kita periksa output teratas yang khas:

Buat daftar semua proses berjalan di Linux

Dalam baris 1 hingga 5 informasi berikut ditampilkan:

1. Waktu saat ini (8:41:32 sore) dan waktu kerja (7 jam dan 41 menit). Hanya satu pengguna yang masuk ke sistem, dan rata -rata beban selama 1, 5, dan 15 menit terakhir, masing -masing. 0.00, 0.01, dan 0.05 menunjukkan bahwa selama interval waktu itu, sistem menganggur untuk 0% dari waktu (0.00: Tidak ada proses yang menunggu CPU), kemudian kelebihan beban sebesar 1% (0.01: Rata -rata 0.01 Proses sedang menunggu CPU) dan 5% (0.05). Jika kurang dari 0 dan semakin kecil angka (0.65, misalnya), sistem menganggur untuk 35% selama 1, 5, atau 15 menit terakhir, tergantung di mana 0.65 muncul.

2. Saat ini ada 121 proses yang berjalan (Anda dapat melihat daftar lengkap dalam 6). Hanya 1 dari mereka yang berjalan (teratas dalam kasus ini, seperti yang dapat Anda lihat di kolom %CPU) dan 120 sisanya menunggu di latar belakang tetapi "tidur" dan akan tetap dalam keadaan itu sampai kami menyebutnya. Bagaimana? Anda dapat memverifikasi ini dengan membuka prompt MySQL dan menjalankan beberapa pertanyaan. Anda akan melihat bagaimana jumlah proses berjalan meningkat.

Atau, Anda dapat membuka browser web dan menavigasi ke halaman tertentu yang dilayani oleh Apache dan Anda akan mendapatkan hasil yang sama. Tentu saja, contoh -contoh ini mengasumsikan bahwa kedua layanan diinstal di server Anda.

3. AS (waktu menjalankan proses pengguna dengan prioritas yang tidak dimodifikasi), SY (waktu menjalankan proses kernel), NI (waktu menjalankan proses pengguna dengan prioritas yang dimodifikasi), WA (waktu menunggu penyelesaian I/O), HI (waktu yang dihabiskan untuk melayani perangkat keras interupsi), SI (waktu yang dihabiskan untuk melayani perangkat lunak interupsi), ST (waktu dicuri dari VM saat ini oleh hypervisor - hanya di lingkungan tervirtualisasi).

4. Penggunaan memori fisik.

5. Penggunaan Ruang Pertukaran.

Contoh 6: Memeriksa penggunaan memori fisik

Untuk memeriksa memori ram dan swap penggunaan yang juga dapat Anda gunakan bebas memerintah.

# bebas 
Periksa penggunaan memori Linux

Tentu saja Anda juga dapat menggunakan -M (MB) atau -G (GB) beralih untuk menampilkan informasi yang sama dalam bentuk yang dapat dibaca manusia:

# gratis -M 
Lihat Penggunaan Memori Linux

Either way, Anda perlu menyadari fakta bahwa kernel menyimpan memori sebanyak mungkin dan membuatnya tersedia untuk proses ketika mereka memintanya. Khususnya, “-/+ buffer/cacheLine menunjukkan nilai aktual setelah cache I/O ini diperhitungkan.

Dengan kata lain, jumlah memori yang digunakan oleh proses dan jumlah yang tersedia untuk proses lain (dalam hal ini, 232 MB digunakan dan 270 MB Tersedia, masing -masing). Saat proses membutuhkan memori ini, kernel akan secara otomatis mengurangi ukuran cache I/O.

Baca juga: 10 perintah "gratis" yang berguna untuk memeriksa penggunaan memori Linux

Melihat lebih dekat proses

Pada waktu tertentu, ada banyak proses yang berjalan di sistem Linux kami. Ada dua alat yang akan kami gunakan untuk memantau proses dengan cermat: ps Dan pstree.

Contoh 7: Menampilkan seluruh daftar proses di sistem Anda dengan PS (format standar lengkap)

Menggunakan -e Dan -F opsi digabungkan menjadi satu (-EF) Anda dapat mencantumkan semua proses yang saat ini berjalan di sistem Anda. Anda dapat menyalakan output ini ke alat lain, seperti grep (Seperti yang dijelaskan di Bagian 1 dari seri LFCS) untuk mempersempit output ke proses yang Anda inginkan:

# ps -ef | grep -i cquid | grep -v grep 
Proses pemantauan di Linux

Daftar proses di atas menunjukkan informasi berikut:

pemilik proses, pid, pid induk (proses induk), pemanfaatan prosesor, waktu ketika perintah dimulai, tty ( ? menunjukkan itu adalah daemon), waktu CPU terakumulasi, dan perintah yang terkait dengan proses.

Contoh 8: Menyesuaikan dan menyortir output PS

Namun, mungkin Anda tidak memerlukan semua informasi itu, dan ingin menunjukkan kepada pemilik proses, perintah yang memulainya, PID dan PPID, dan persentase memori yang saat ini digunakan - dalam urutan itu, dan mengurutkan Penggunaan memori dalam urutan menurun (Perhatikan bahwa PS secara default diurutkan berdasarkan PID).

# PS -EO Pengguna, Comm, PID, PPID,%memsort -%mem -%mem 

Di mana tanda minus di depan %mem menunjukkan penyortiran dalam urutan menurun.

Monitor Linux Proses Penggunaan Memori

Jika karena alasan tertentu suatu proses mulai mengambil terlalu banyak sumber daya sistem dan kemungkinan akan membahayakan fungsionalitas keseluruhan sistem, Anda akan ingin berhenti atau menjeda eksekusi yang melewati salah satu sinyal berikut menggunakan program membunuh untuk itu. Alasan lain mengapa Anda akan mempertimbangkan untuk melakukan ini adalah ketika Anda telah memulai proses di latar depan tetapi ingin menjeda dan melanjutkan di latar belakang.

Nama Sinyal Nomor Sinyal Keterangan
 Sigterm 15  Bunuh prosesnya dengan anggun.
 Sigint 2  Ini adalah sinyal yang dikirim ketika kita menekan Ctrl + C. Itu bertujuan untuk mengganggu prosesnya, tetapi prosesnya mungkin mengabaikannya.
 Sigkill 9  Sinyal ini juga mengganggu proses tetapi melakukannya tanpa syarat (digunakan dengan hati -hati!) karena suatu proses tidak dapat mengabaikannya.
 Sighup 1  Singkat untuk "Hang Up", sinyal ini menginstruksikan Daemon untuk membaca ulang file konfigurasinya tanpa benar -benar menghentikan proses.
 SIGTSTP 20  Jeda eksekusi dan tunggu siap untuk melanjutkan. Ini adalah sinyal yang dikirim saat kami mengetik kombinasi kunci CTRL + Z.
 Sigstop 19  Prosesnya dijeda dan tidak mendapatkan perhatian lagi dari siklus CPU sampai dimulai kembali.
 Sigcont 18  Sinyal ini memberi tahu proses untuk melanjutkan eksekusi setelah menerima SIGTSTP atau SIGSTOP. Ini adalah sinyal yang dikirim oleh shell saat kita menggunakan perintah FG atau BG.
Contoh 9: Menjeda pelaksanaan proses berjalan dan melanjutkannya di latar belakang

Ketika eksekusi normal dari proses tertentu menyiratkan bahwa tidak ada output yang akan dikirim ke layar saat berjalan, Anda mungkin ingin memulainya di latar belakang (menambahkan ampersand di akhir perintah).

nama proses & 

atau,
Setelah mulai berjalan di latar depan, jeda dan kirimkan ke latar belakang dengan

Ctrl + z 
# Bunuh -18 PID 
Bunuh proses di Linux
Contoh 10: Membunuh dengan paksa Proses "Gone Wild"

Harap dicatat bahwa setiap distribusi menyediakan alat untuk berhenti dengan anggun / memulai / memulai kembali / memuat ulang layanan umum, seperti melayani dalam sistem berbasis sysv atau Systemctl dalam sistem berbasis systemd.

Jika suatu proses tidak menanggapi utilitas itu, Anda dapat membunuhnya dengan paksa dengan mengirimkannya sinyal sigkill ke sana.

# ps -ef | Grep Apache # Kill -9 3821 
Bunuh proses Linux dengan paksa

Jadi ... apa yang terjadi / sedang terjadi?

Ketika ada segala jenis pemadaman dalam sistem (baik itu pemadaman listrik, kegagalan perangkat keras, gangguan proses yang terencana atau tidak direncanakan, atau kelainan apa pun), log masuk /var/log adalah teman terbaik Anda untuk menentukan apa yang terjadi atau apa yang bisa menyebabkan masalah yang Anda hadapi.

# CD /var /log 
Lihat Log Linux

Beberapa item di /var/log adalah file teks biasa, yang lain adalah direktori, dan yang lain adalah file terkompresi dari log yang diputar (historis). Anda akan ingin memeriksa mereka dengan kata kesalahan atas nama mereka, tetapi memeriksa sisanya juga bisa berguna.

Contoh 11: Memeriksa log untuk kesalahan dalam proses

Bayangkan skenario ini. Klien LAN Anda tidak dapat mencetak ke printer jaringan. Langkah pertama untuk memecahkan masalah situasi ini akan terjadi /var/log/gelas direktori dan lihat apa yang ada di sana.

Anda dapat menggunakan ekor Perintah untuk menampilkan 10 baris terakhir dari file error_log, atau tail -f error_log Untuk tampilan log waktu nyata.

# CD/VAR/LOG/CUPS # LS # tail error_log 
Pantau file log secara real time

Tangkapan layar di atas memberikan beberapa informasi bermanfaat untuk memahami apa yang bisa menyebabkan masalah Anda. Perhatikan bahwa mengikuti langkah -langkah atau memperbaiki kerusakan proses masih mungkin tidak menyelesaikan masalah keseluruhan, tetapi jika Anda digunakan sejak awal untuk memeriksa log setiap kali masalah muncul (baik itu lokal atau jaringan) Anda) Anda) akan pasti berada di jalur yang benar.

Contoh 12: Memeriksa log untuk kegagalan perangkat keras

Meskipun kegagalan perangkat keras bisa sulit untuk memecahkan masalah, Anda harus memeriksa dmesg dan pesan log dan grep untuk kata -kata terkait ke bagian perangkat keras yang dianggap salah.

Gambar di bawah diambil dari /var/log/pesan Setelah mencari kesalahan kata menggunakan perintah berikut:

# less/var/log/pesan | grep -i error 

Kita dapat melihat bahwa kita mengalami masalah dengan dua perangkat penyimpanan: /dev/sdb Dan /dev/sdc, yang pada gilirannya menyebabkan masalah dengan array serangan.

Memecahkan masalah Linux

Kesimpulan

Dalam artikel ini kami telah menjelajahi beberapa alat yang dapat membantu Anda untuk selalu menyadari status keseluruhan sistem Anda. Selain itu, Anda perlu memastikan bahwa sistem operasi Anda dan paket yang diinstal diperbarui ke versi stabil terbaru mereka. Dan tidak pernah, lupa untuk memeriksa log! Maka Anda akan menuju ke arah yang benar untuk menemukan solusi definitif untuk masalah apa pun.

Jangan ragu untuk meninggalkan komentar, saran, atau pertanyaan Anda - jika Anda menggunakan formulir di bawah ini.

Menjadi Insinyur Bersertifikat Linux