Cara Memantau Penggunaan Sistem, Padaman dan Selesaikan Pelayan Linux - Bahagian 9
- 2785
- 601
- Dana Hammes
Walaupun Linux sangat dipercayai, pentadbir sistem yang bijak harus mencari cara untuk mengawasi tingkah laku dan penggunaan sistem pada setiap masa. Memastikan masa lapang hampir dengan 100% mungkin dan ketersediaan sumber adalah keperluan kritikal dalam banyak persekitaran. Memeriksa status sistem masa lalu dan semasa akan membolehkan kita meramalkan dan kemungkinan besar menghalang masalah yang mungkin.
Jurutera Bersertifikat Yayasan Linux - Bahagian 9Memperkenalkan Program Persijilan Yayasan Linux
Dalam artikel ini, kami akan membentangkan senarai beberapa alat yang tersedia dalam pengagihan hulu yang paling banyak untuk memeriksa status sistem, menganalisis gangguan, dan menyelesaikan masalah yang berterusan. Khususnya, pelbagai data yang ada, kami akan memberi tumpuan kepada CPU, ruang penyimpanan dan penggunaan memori, pengurusan proses asas, dan analisis log.
Penggunaan ruang penyimpanan
Terdapat 2 arahan yang terkenal di Linux yang digunakan untuk memeriksa penggunaan ruang penyimpanan: df dan du.
Yang pertama, df (yang bermaksud cakera percuma), biasanya digunakan untuk melaporkan penggunaan ruang cakera secara keseluruhan oleh sistem fail.
Contoh 1: Melaporkan penggunaan ruang cakera dalam bait dan format yang boleh dibaca manusia
Tanpa pilihan, df Laporan penggunaan ruang cakera di bait. Dengan -h Bendera ia akan memaparkan maklumat yang sama menggunakan MB atau GB. Perhatikan bahawa laporan ini juga merangkumi jumlah saiz setiap sistem fail (dalam blok 1-k), ruang percuma dan tersedia, dan titik gunung setiap peranti penyimpanan.
# DF # DF -HPenggunaan ruang cakera
Itu pasti bagus - tetapi ada batasan lain yang dapat menyebabkan sistem fail tidak dapat digunakan, dan itu kehabisan inod. Semua fail dalam sistem fail dipetakan ke inode yang mengandungi metadata.
Contoh 2: Memeriksa penggunaan inode oleh sistem fail dalam format manusia yang boleh dibaca dengan
# df -hti
Anda dapat melihat jumlah inod yang digunakan dan tersedia:
Penggunaan cakera inodeMenurut imej di atas, ada 146 inod terpakai (1%) di /rumah, yang bermaksud bahawa anda masih boleh membuat 226k fail dalam sistem fail tersebut.
Contoh 3: Mencari dan / atau Menghapus Fail dan Direktori Kosong
Perhatikan bahawa anda boleh kehabisan ruang penyimpanan jauh sebelum kehabisan inod, dan sebaliknya. Atas sebab itu, anda perlu memantau bukan sahaja penggunaan ruang penyimpanan tetapi juga bilangan inod yang digunakan oleh sistem fail.
Gunakan arahan berikut untuk mencari fail atau direktori kosong (yang menduduki 0b) yang menggunakan inod tanpa alasan:
# cari /home -type f -empty # cari /home -type d -empty
Juga, anda boleh menambah -Padam Bendera pada akhir setiap arahan jika anda juga ingin memadamkan fail dan direktori kosong:
# cari /home -type f -empty --elete # cari /home -type f -emptyCari dan padamkan fail kosong di Linux
Prosedur sebelumnya dipadam 4 fail. Mari kita periksa lagi bilangan nod yang digunakan / tersedia lagi di / rumah:
# df -hti | Grep rumahSemak penggunaan inode linux
Seperti yang anda lihat, ada 142 inodes terpakai sekarang (4 kurang dari sebelumnya).
Contoh 4: Memeriksa penggunaan cakera mengikut direktori
Sekiranya penggunaan sistem fail tertentu berada di atas peratusan yang telah ditetapkan, anda boleh menggunakan du (pendek untuk penggunaan cakera) untuk mengetahui apakah fail yang menduduki ruang paling banyak.
Contohnya diberikan untuk /var, yang seperti yang anda lihat dalam imej pertama di atas, digunakan pada 67%.
# du -sch /var /*Semak penggunaan ruang cakera mengikut direktori
Catatan: Bahawa anda boleh beralih ke mana -mana subdirektori di atas untuk mengetahui dengan tepat apa yang ada di dalamnya dan berapa banyak item yang diduduki. Anda kemudian boleh menggunakan maklumat tersebut sama ada memadam beberapa fail jika tidak diperlukan atau melanjutkan saiz jumlah logik jika perlu.
Baca juga
- 12 Perintah "DF" berguna untuk memeriksa ruang cakera
- 10 Perintah "DU" berguna untuk mencari penggunaan cakera fail dan direktori
Memori dan penggunaan CPU
Alat Klasik di Linux yang digunakan untuk melakukan pemeriksaan keseluruhan penggunaan CPU / memori dan pengurusan proses adalah arahan teratas. Di samping itu, TOP memaparkan pandangan masa nyata mengenai sistem yang sedang berjalan. Terdapat alat lain yang boleh digunakan untuk tujuan yang sama, seperti HTOP, tetapi saya telah menetap di atas kerana ia dipasang di luar kotak di mana-mana taburan Linux.
Contoh 5: memaparkan status langsung sistem anda dengan bahagian atas
Untuk memulakan atas, taipkan arahan berikut dalam baris arahan anda, dan tekan Enter.
# atas
Mari kita periksa output teratas biasa:
Senaraikan semua proses berjalan di LinuxDalam baris 1 hingga 5 maklumat berikut dipaparkan:
1. Masa sekarang (8:41:32 petang) dan uptime (7 jam dan 41 minit). Hanya satu pengguna yang dilog masuk ke sistem, dan purata beban semasa 1, 5, dan 15 minit terakhir. 0.00, 0.01, dan 0.05 menunjukkan bahawa sepanjang selang waktu itu, sistem itu terbiar untuk 0% masa (0.00: Tiada proses menunggu CPU), kemudiannya dibebankan sebanyak 1% (0.01: purata 0.01 proses menunggu CPU) dan 5% (0.05). Sekiranya kurang daripada 0 dan lebih kecil nombor (0.65, sebagai contoh), sistem itu terbiar selama 35% semasa 1, 5, atau 15 minit terakhir, bergantung di mana 0.65 muncul.
2. Pada masa ini terdapat 121 proses berjalan (anda dapat melihat penyenaraian lengkap dalam 6). Hanya 1 daripadanya berjalan (atas dalam kes ini, seperti yang anda lihat dalam lajur CPU %) dan baki 120 sedang menunggu di latar belakang tetapi "tidur" dan akan kekal di negeri itu sehingga kita memanggil mereka. Bagaimana? Anda boleh mengesahkannya dengan membuka prompt mysql dan melaksanakan beberapa pertanyaan. Anda akan melihat bagaimana bilangan proses berjalan meningkat.
Sebagai alternatif, anda boleh membuka pelayar web dan menavigasi ke mana -mana halaman tertentu yang disampaikan oleh Apache dan anda akan mendapat hasil yang sama. Sudah tentu, contoh -contoh ini mengandaikan bahawa kedua -dua perkhidmatan dipasang di pelayan anda.
3. AS (masa menjalankan proses pengguna dengan keutamaan yang tidak diubahsuai), SY (masa menjalankan proses kernel), NI (masa menjalankan proses pengguna dengan keutamaan yang diubahsuai), WA (masa menunggu I/O selesai), HI (masa yang dihabiskan untuk servis perkakasan), SI (masa yang dihabiskan untuk berkhidmat perisian perisian), ST (masa dicuri dari VM semasa oleh Hypervisor - hanya dalam persekitaran maya).
4. Penggunaan memori fizikal.
5. Penggunaan ruang swap.
Contoh 6: Memeriksa penggunaan memori fizikal
Untuk memeriksa memori RAM dan penggunaan swap, anda juga boleh menggunakan percuma perintah.
# percumaSemak penggunaan memori Linux
Sudah tentu anda juga boleh menggunakan -m (Mb) atau -g (GB) Beralih untuk memaparkan maklumat yang sama dalam bentuk manusia yang boleh dibaca:
# percuma -mLihat Penggunaan Memori Linux
Sama ada cara, anda perlu menyedari hakikat bahawa kernel rizab sebanyak mungkin dan menjadikannya tersedia untuk proses ketika mereka memintanya. Terutamanya, "-/+ buffer/cache"Talian menunjukkan nilai sebenar selepas cache I/O ini diambil kira.
Dengan kata lain, jumlah memori yang digunakan oleh proses dan jumlah yang tersedia untuk proses lain (dalam kes ini, 232 Mb digunakan dan 270 Mb ada, masing -masing). Apabila proses memerlukan ingatan ini, kernel secara automatik akan mengurangkan saiz cache I/O.
Baca juga: 10 Perintah "Percuma" Berguna untuk Memeriksa Penggunaan Memori Linux
Melihat lebih dekat proses
Pada bila -bila masa, terdapat banyak proses yang berjalan pada sistem Linux kami. Terdapat dua alat yang akan kami gunakan untuk memantau proses dengan teliti: ps dan pstree.
Contoh 7: Memaparkan keseluruhan senarai proses dalam sistem anda dengan PS (format standard penuh)
Menggunakan -e dan -f pilihan digabungkan menjadi satu (-ef) anda boleh menyenaraikan semua proses yang sedang dijalankan di sistem anda. Anda boleh mengosongkan output ini ke alat lain, seperti grep (seperti yang dijelaskan dalam Bahagian 1 siri LFCS) untuk menyempitkan output ke proses yang anda inginkan (es):
# ps -ef | Grep -I Squid | grep -v grepProses pemantauan di linux
Penyenaraian proses di atas menunjukkan maklumat berikut:
pemilik proses, pid, pid induk (proses induk), penggunaan pemproses, masa ketika perintah dimulakan, tty (yang ? menunjukkan ia adalah daemon), masa CPU yang terkumpul, dan arahan yang berkaitan dengan prosesnya.
Contoh 8: Menyesuaikan dan menyusun output PS
Walau bagaimanapun, mungkin anda tidak memerlukan semua maklumat itu, dan ingin menunjukkan pemilik proses, arahan yang memulakannya, PID dan PPID, dan peratusan ingatan yang sedang digunakan - dalam perintah itu, dan disusun oleh Penggunaan memori dalam urutan menurun (perhatikan bahawa PS secara lalai disusun oleh PID).
# PS -EO Pengguna, Comm, PID, PPID,%Mem -Sort -%Mem
Di mana tanda minus di hadapan %mem menunjukkan penyortiran dalam urutan menurun.
Pantau Penggunaan Memori Proses LinuxSekiranya atas sebab tertentu proses mula mengambil terlalu banyak sumber sistem dan kemungkinan akan menjejaskan fungsi keseluruhan sistem, anda akan mahu menghentikan atau menjeda pelaksanaannya yang melepasi salah satu isyarat berikut menggunakan program Kill kepadanya. Sebab -sebab lain mengapa anda akan mempertimbangkan untuk melakukan ini adalah apabila anda telah memulakan proses di latar depan tetapi ingin menjeda dan disambung semula di latar belakang.
Nama isyarat | Nombor isyarat | Penerangan |
Sigterm | 15 | Bunuh proses dengan anggun. |
Sigint | 2 | Ini adalah isyarat yang dihantar apabila kami menekan Ctrl + C. Ia bertujuan untuk mengganggu proses, tetapi prosesnya mungkin mengabaikannya. |
Sigkill | 9 | Isyarat ini juga mengganggu proses tetapi ia tidak bersyarat (digunakan dengan berhati -hati!) kerana proses tidak dapat mengabaikannya. |
Sighup | 1 | Pendek untuk "menggantung", isyarat ini mengarahkan daemon untuk membaca semula fail konfigurasinya tanpa benar -benar menghentikan proses. |
Sigtstp | 20 | Jeda pelaksanaan dan tunggu bersedia untuk diteruskan. Ini adalah isyarat yang dihantar apabila kami menaip gabungan kekunci Ctrl + Z. |
Sigstop | 19 | Prosesnya dijeda dan tidak mendapat perhatian lagi dari kitaran CPU sehingga dimulakan semula. |
Sigcont | 18 | Isyarat ini memberitahu proses untuk meneruskan pelaksanaan setelah menerima sama ada sigtstp atau sigstop. Ini adalah isyarat yang dihantar oleh shell ketika kami menggunakan arahan FG atau BG. |
Contoh 9: Menjeda pelaksanaan proses berjalan dan meneruskannya di latar belakang
Apabila pelaksanaan biasa proses tertentu menunjukkan bahawa tiada output akan dihantar ke skrin semasa ia berjalan, anda mungkin mahu sama ada memulakannya di latar belakang (memasuki ampersand pada akhir perintah).
proses_name &
atau,
Sebaik sahaja ia mula berjalan di latar depan, jeda dan hantar ke latar belakang dengan
Ctrl + z
# bunuh -18 PIDMembunuh Proses di Linux
Contoh 10: Membunuh dengan memaksa proses "Gone Wild"
Sila ambil perhatian bahawa setiap pengedaran menyediakan alat untuk menghentikan / memulakan / memulakan semula / memuatkan semula perkhidmatan biasa dengan anggun, seperti perkhidmatan dalam sistem berasaskan SYSV atau Systemctl dalam sistem berasaskan sistem.
Sekiranya proses tidak bertindak balas terhadap utiliti tersebut, anda boleh membunuhnya dengan kekerasan dengan menghantar isyarat Sigkill kepadanya.
# ps -ef | Grep Apache # Kill -9 3821Membunuh proses linux dengan kuat
Jadi ... apa yang berlaku / sedang berlaku?
Apabila terdapat sebarang gangguan dalam sistem (sama ada gangguan kuasa, kegagalan perkakasan, gangguan yang dirancang atau tidak dirancang proses, atau apa -apa kelainan sama sekali), log masuk /var/log Adakah rakan baik anda untuk menentukan apa yang berlaku atau apa yang boleh menyebabkan masalah yang anda hadapi.
# cd /var /logLihat log Linux
Beberapa item di /var/log adalah fail teks biasa, yang lain adalah direktori, tetapi yang lain adalah fail yang dimampatkan dari log berputar (bersejarah). Anda akan mahu memeriksa mereka dengan kesilapan perkataan atas nama mereka, tetapi memeriksa selebihnya boleh menjadi berguna juga.
Contoh 11: Memeriksa log untuk kesilapan dalam proses
Gambar senario ini. Pelanggan LAN anda tidak dapat mencetak ke pencetak rangkaian. Langkah pertama untuk menyelesaikan masalah ini akan berlaku /var/log/cawan direktori dan lihat apa yang ada di sana.
Anda boleh menggunakan ekor perintah untuk memaparkan 10 baris terakhir fail error_log, atau ekor -f error_log untuk pandangan masa nyata log.
# cd/var/log/cawan # ls # ekor error_logPantau fail log dalam masa nyata
Tangkapan skrin di atas memberikan beberapa maklumat yang berguna untuk memahami apa yang boleh menyebabkan masalah anda. Perhatikan bahawa mengikuti langkah -langkah atau membetulkan tindakan yang tidak berfungsi dengan proses itu masih tidak dapat menyelesaikan masalah keseluruhan, tetapi jika anda digunakan secara tepat dari awal untuk memeriksa log setiap kali masalah timbul (sama ada tempatan atau rangkaian) anda) akan pasti berada di landasan yang betul.
Contoh 12: Memeriksa log untuk kegagalan perkakasan
Walaupun kegagalan perkakasan boleh menjadi sukar untuk menyelesaikan masalah, anda harus memeriksa DMESG dan mesej log dan grep untuk perkataan yang berkaitan dengan bahagian perkakasan yang dianggap rosak.
Imej di bawah diambil dari /var/log/mesej Setelah mencari ralat perkataan menggunakan arahan berikut:
# kurang/var/log/mesej | ralat grep -i
Kita dapat melihat bahawa kita menghadapi masalah dengan dua peranti penyimpanan: /dev/sdb dan /dev/sdc, yang seterusnya menyebabkan masalah dengan array serbuan.
Masalah masalah LinuxKesimpulan
Dalam artikel ini kami telah meneroka beberapa alat yang dapat membantu anda untuk sentiasa mengetahui status keseluruhan sistem anda. Di samping. Dan tidak pernah, lupa untuk memeriksa kayu balak! Kemudian anda akan menuju ke arah yang betul untuk mencari penyelesaian muktamad untuk sebarang masalah.
Jangan ragu untuk meninggalkan komen, cadangan, atau pertanyaan anda -jika anda mempunyai apa -apa - menggunakan borang di bawah.
Menjadi Jurutera Bersertifikat Linux- « Cara Menyiapkan Repositori Rangkaian untuk Memasang atau Mengemaskini Pakej - Bahagian 11
- Cara Menyiapkan Firewall Iptables untuk membolehkan akses jauh ke perkhidmatan di Linux - Bahagian 8 »