GNU/Linux >> Belajar Linux >  >> Linux

Pengantar Pemantauan Kinerja dan Penyetelan Linux

Ini adalah artikel pertama dalam seri baru kami tentang pemantauan dan penyetelan kinerja Linux.

Administrator sistem Linux harus mahir dalam pemantauan dan penyetelan kinerja Linux. Artikel ini memberikan ikhtisar tingkat tinggi tentang bagaimana kita harus mendekati pemantauan dan penyetelan kinerja di Linux, dan berbagai subsistem (dan metrik kinerja) yang perlu dipantau.

Untuk mengidentifikasi kemacetan sistem dan menemukan solusi untuk memperbaikinya, Anda harus memahami cara kerja berbagai komponen Linux. Misalnya, bagaimana kernel memberikan preferensi pada satu proses Linux daripada yang lain menggunakan nilai-nilai bagus, bagaimana interupsi I/O ditangani, bagaimana manajemen memori bekerja, bagaimana sistem file Linux bekerja, bagaimana lapisan jaringan diimplementasikan di Linux, dll. ,

Harap dicatat bahwa memahami cara kerja berbagai komponen (atau subsistem) tidak sama dengan mengetahui perintah apa yang harus dijalankan untuk mendapatkan keluaran tertentu. Misalnya, Anda mungkin tahu bahwa perintah “uptime” atau “top” memberikan “load average”. Namun, jika Anda tidak tahu apa artinya, dan bagaimana subsistem CPU (atau proses) bekerja, Anda mungkin tidak dapat memahaminya dengan benar. Memahami subsistem adalah tugas berkelanjutan, yang akan terus Anda pelajari setiap saat.

Pada level yang sangat tinggi, berikut adalah empat subsistem yang perlu dipantau.

  • CPU
  • Memori
  • I/O
  • Jaringan

1. CPU

Anda harus memahami empat metrik kinerja penting untuk CPU — sakelar konteks, antrean run, pemanfaatan cpu, dan rata-rata beban.

Beralih Konteks

  • Saat CPU beralih dari satu proses (atau utas) ke proses lainnya, ini disebut sebagai sakelar konteks.
  • Saat terjadi peralihan proses, kernel menyimpan status CPU saat ini (dari suatu proses atau utas) di dalam memori.
  • Kernel juga mengambil status yang disimpan sebelumnya (dari suatu proses atau thread) dari memori dan memasukkannya ke dalam CPU.
  • Pengalihan konteks sangat penting untuk multitasking CPU.
  • Namun, tingkat peralihan konteks yang lebih tinggi dapat menyebabkan masalah kinerja.

Jalankan Antrian

  • Jalankan antrian menunjukkan jumlah total proses aktif dalam antrian saat ini untuk CPU.
  • Saat CPU siap mengeksekusi suatu proses, CPU mengambilnya dari antrian run berdasarkan prioritas proses.
  • Harap diperhatikan bahwa proses yang berada dalam status tidur, atau status tunggu i/o tidak berada dalam antrian yang dijalankan.
  • Jadi, jumlah proses yang lebih banyak dalam antrean proses dapat menyebabkan masalah kinerja.

Utilisasi CPU

  • Ini menunjukkan seberapa banyak CPU yang saat ini digunakan.
  • Ini cukup mudah, dan Anda dapat melihat penggunaan CPU dari perintah teratas.
  • Penggunaan CPU 100% berarti sistem terisi penuh.
  • Jadi, %age penggunaan CPU yang lebih tinggi akan menyebabkan masalah performa.

Rata-Rata Muat

  • Ini menunjukkan rata-rata beban CPU selama periode waktu tertentu.
  • Di Linux, rata-rata beban ditampilkan selama 1 menit, 5 menit, dan 15 menit terakhir. Ini berguna untuk melihat apakah beban keseluruhan pada sistem naik atau turun.
  • Misalnya, rata-rata beban “0,75 1,70 2,10” menunjukkan bahwa beban pada sistem berkurang. 0,75 adalah rata-rata beban dalam 1 menit terakhir. 1,70 adalah rata-rata beban dalam 5 menit terakhir. 2.10 adalah rata-rata pemuatan dalam 15 menit terakhir.
  • Harap diperhatikan bahwa rata-rata beban ini dihitung dengan menggabungkan jumlah total proses dalam antrean, dan jumlah total proses dalam status tugas yang tidak dapat diinterupsi.

2. Jaringan

  • Pemahaman yang baik tentang konsep TCP/IP sangat membantu saat menganalisis masalah jaringan apa pun. Kami akan membahas lebih lanjut tentang ini di artikel mendatang.
  • Untuk antarmuka jaringan, Anda harus memantau jumlah total paket (dan byte) yang diterima/dikirim melalui antarmuka, jumlah paket yang dijatuhkan, dll.,

3. I/O

  • I/O wait adalah jumlah waktu CPU menunggu I/O. Jika Anda melihat i/o wait tinggi yang konsisten pada sistem Anda, ini menunjukkan adanya masalah pada subsistem disk.
  • Anda juga harus memantau pembacaan/detik, dan penulisan/detik. Ini diukur dalam blok. yaitu jumlah blok baca/tulis per detik. Ini juga disebut sebagai bi dan bo (blok masuk dan blok keluar).
  • tps menunjukkan total transaksi per detik, yang merupakan penjumlahan dari rtps (membaca transaksi per detik) dan wtps (menulis transaksi per detik).

4. Memori

  • Seperti yang Anda ketahui, RAM adalah memori fisik Anda. Jika Anda memiliki RAM 4 GB yang terpasang di sistem, Anda memiliki memori fisik 4 GB.
  • Memori virtual =Ruang swap yang tersedia pada disk + Memori fisik. Memori virtual berisi ruang pengguna dan ruang kernel.
  • Menggunakan sistem 32-bit atau 64-bit membuat perbedaan besar dalam menentukan berapa banyak memori yang dapat digunakan oleh suatu proses.
  • Pada sistem 32-bit, sebuah proses hanya dapat mengakses memori virtual maksimum 4GB. Pada sistem 64-bit tidak ada batasan seperti itu.
  • RAM yang tidak digunakan akan digunakan sebagai cache sistem file oleh kernel.
  • Sistem Linux akan bertukar ketika membutuhkan lebih banyak memori. yaitu ketika membutuhkan lebih banyak memori daripada memori fisik. Saat bertukar, ia menulis halaman memori yang paling sedikit digunakan dari memori fisik ke ruang swap pada disk.
  • Banyak pertukaran dapat menyebabkan masalah kinerja, karena disk jauh lebih lambat daripada memori fisik, dan perlu waktu untuk menukar halaman memori dari RAM ke disk.

Semua 4 subsistem di atas saling terkait. Hanya karena Anda melihat pembacaan/detik yang tinggi, atau penulisan/detik, atau menunggu I/O tidak berarti ada masalah dengan sub-sistem I/O. Itu juga tergantung pada apa yang dilakukan aplikasi. Dalam kebanyakan kasus, masalah kinerja mungkin disebabkan oleh aplikasi yang berjalan di sistem Linux.

Ingat aturan 80/20 — 80% peningkatan kinerja berasal dari penyetelan aplikasi, dan 20% sisanya berasal dari penyetelan komponen infrastruktur.

Ada berbagai alat yang tersedia untuk memantau kinerja sistem Linux. Misalnya:top, free, ps, iostat, vmstat, mpstat, sar, tcpump, netstat, iozone, dll., Kami akan membahas lebih lanjut tentang alat ini dan cara menggunakannya di artikel mendatang dalam seri ini.

Berikut ini adalah pendekatan 4 langkah untuk mengidentifikasi dan memecahkan masalah kinerja.

  • Langkah 1 – Pahami (dan ulangi) masalahnya: Setengah dari masalah terpecahkan ketika Anda memahami dengan jelas apa masalahnya. Sebelum mencoba memecahkan masalah kinerja, pertama-tama bekerjalah untuk mendefinisikan masalah dengan jelas. Semakin banyak waktu yang Anda habiskan untuk memahami dan mendefinisikan masalah akan memberi Anda cukup detail untuk mencari jawaban di tempat yang tepat. Jika memungkinkan, cobalah untuk mereproduksi masalah, atau setidaknya simulasikan situasi yang menurut Anda sangat mirip dengan masalah tersebut. Ini nantinya akan membantu Anda memvalidasi solusi yang Anda buat untuk memperbaiki masalah kinerja.
  • Langkah 2 – Pantau dan kumpulkan data: Setelah mendefinisikan masalah dengan jelas, pantau sistem dan coba kumpulkan data sebanyak mungkin pada berbagai subsistem. Berdasarkan data ini, buat daftar potensi masalah.
  • Langkah 3 – Hilangkan dan persempit masalah: Setelah memiliki daftar masalah potensial, selami masing-masing masalah dan hilangkan yang bukan masalah. Persempit lebih lanjut untuk melihat apakah itu masalah aplikasi, atau masalah infrastruktur. Telusuri lebih jauh dan persempit ke komponen tertentu. Misalnya, jika ini adalah masalah infrastruktur, persempit dan identifikasi subsistem yang menyebabkan masalah. Jika ini adalah masalah subsistem I/O, persempit ke partisi tertentu, atau grup penyerbuan, atau LUN, atau disk. Pada dasarnya, teruslah menelusuri sampai Anda mengetahui akar permasalahannya.
  • Langkah 4 – Satu perubahan pada satu waktu: Setelah Anda mempersempit daftar kecil potensi masalah, jangan mencoba membuat beberapa perubahan sekaligus. Jika Anda membuat beberapa perubahan, Anda tidak akan tahu mana yang memperbaiki masalah aslinya. Beberapa perubahan sekaligus juga dapat menyebabkan masalah baru, yang akan Anda kejar alih-alih memperbaiki masalah asli. Jadi, buat satu perubahan pada satu waktu, dan lihat apakah itu memperbaiki masalah aslinya.

Dalam artikel seri kinerja mendatang, kita akan membahas lebih lanjut tentang cara memantau dan mengatasi masalah kinerja pada subsistem CPU, Memori, I/O, dan Jaringan menggunakan berbagai alat pemantauan kinerja Linux.


Linux
  1. MySQL – Penyesuaian dan Pengoptimalan Kinerja

  2. Pengantar pemantauan akun pengguna Linux

  3. Memahami rata-rata beban OS dan menjalankan antrian/antrian yang diblokir dalam hal pemanfaatan CPU di Linux

  1. 24 Contoh iostat, vmstat dan mpstat untuk Pemantauan Kinerja Linux

  2. 25 Alat Pemantauan dan Debugging Kinerja Linux Terbaik

  3. Pengantar Interupsi Linux dan CPU SMP Affinity

  1. Bagaimana saya menyeimbangkan fitur dan kinerja di terminal Linux saya

  2. Memantau host Linux dan Windows dengan Glances

  3. Konfigurasi dan Tuning OpenVAS di Kali Linux