Andi Yolanda Sagita
2109116023
Ketika anda harus laporan pengguna,
bagaimana Anda memulai men-debug kecepatan server?
Jika Anda telah melakukan
pekerjaan sysadmin cukup lama, Anda telah melihat insiden "Server
lambat" yang ditakuti. Untuk waktu yang lama, insiden semacam ini akan
membuat perut saya sakit. Bagaimana Anda memecahkan masalah sesuatu yang begitu
subjektif? "Lambat" pengguna sehari-hari mungkin hanya disebabkan
oleh proses lain (terjadwal atau tidak) yang berjalan dan menghabiskan lebih
banyak sumber daya daripada biasanya, atau mungkin ada sesuatu yang salah
dengan server.
Ketika saya pertama kali mulai
bekerja sebagai sysadmin, saya akan langsung menjawab dengan: "Saya
memerlukan informasi lebih lanjut tentang ini." Nah, biasanya pengguna
tidak dapat memberikan info lebih lanjut, karena mereka tidak tahu apa yang
terjadi di balik layar atau bagaimana menjelaskan apa yang mereka lihat selain
"hanya lambat". Saat ini, bahkan sebelum saya membalas pengguna, saya
memeriksa beberapa hal.
Login awal
Ada banyak hal yang dapat Anda
ketahui dengan masuk ke host. Bisakah Anda masuk sama sekali? Apakah loginnya
lambat atau hang? Perintah ssh memiliki tiga tingkat debug, yang masing-masing
memberi Anda banyak informasi bahkan sebelum Anda berada di sistem. Untuk
mengaktifkan debug, cukup tambahkan v tambahan ke opsi -v. Misalnya, debug
level tiga, yang saya gunakan secara eksklusif, adalah:
[~]$ ssh -vvv
hostname.domain.com
The "Big 3" (alias
CPU, RAM, dan Disk I/O)
Sekarang, mari kita lihat tiga
penyebab terbesar perlambatan server: CPU, RAM, dan I/O disk. Penggunaan CPU
dapat menyebabkan kelambatan keseluruhan pada host, dan kesulitan menyelesaikan
tugas secara tepat waktu. Beberapa alat yang saya gunakan saat melihat CPU
adalah andsar teratas.
Memeriksa penggunaan CPU
dengan top
Utilitas teratas memberi Anda
tampilan waktu nyata tentang apa yang terjadi dengan server. Secara default,
saat dimulai dari atas, ini menunjukkan aktivitas untuk semua CPU:
Tampilan ini dapat diubah dengan menekan tombol angka 1, yang menambahkan lebih banyak detail mengenai nilai penggunaan untuk setiap CPU:
Beberapa hal yang harus dicari
dalam tampilan ini adalah rata-rata beban (ditampilkan di sisi kanan baris
atas), dan nilai berikut untuk setiap CPU:
us: Persentase ini mewakili
jumlah CPU yang dikonsumsi oleh proses pengguna.
sy: Persentase ini menunjukkan
jumlah CPU yang dikonsumsi oleh proses sistem.
id: Persentase ini menunjukkan
seberapa menganggur setiap CPU.
Masing-masing dari ketiga
nilai ini dapat memberi Anda ide waktu nyata yang cukup baik tentang apakah CPU
terikat oleh proses pengguna atau proses sistem.
Untuk benar-benar menjelaskan
rata-rata beban akan membutuhkan artikel tersendiri. Untuk tujuan artikel ini,
saya akan berbicara secara umum. Tiga nilai rata-rata beban dari kiri ke kanan
mewakili rata-rata satu menit, lima menit, dan 15 menit. Sekali lagi, secara
umum, jika Anda melihat rata-rata satu menit melebihi jumlah CPU fisik yang
Anda miliki, maka sistem kemungkinan besar terikat dengan CPU.
Catatan: Untuk informasi lebih
lanjut tentang rata-rata beban dan mengapa beberapa orang menganggapnya sebagai
angka konyol, lihat penelitian mendalam Brendan Gregg.
Memeriksa semua "Top 3" dengan sar
Untuk data kinerja CPU historis, saya mengandalkan perintah sar, yang disediakan oleh paket sysstat. Pada sebagian besar versi server Linux, sysstat diinstal secara default, tetapi jika tidak, Anda dapat menambahkannya dengan pengelola paket distro Anda. Utilitas sar mengumpulkan data sistem setiap 10 menit melalui tugas cron yang terletak di /etc/cron.d/sysstat (CentOS 7.6). Berikut cara memeriksa semua "3 Besar" menggunakan sar.
Catatan: Jika Anda baru saja menginstal sar untuk mengikuti artikel ini, beri perintah beberapa waktu untuk merekam data terlebih dahulu.
Seperti di atas, hal utama
yang harus diperiksa di sini adalah %user, %system, %iowait, dan %idle.
Informasi ini dapat memberi tahu Anda seberapa jauh server mengalami masalah.
Secara keseluruhan, perintah
sar dapat memberikan banyak informasi. Karena artikel ini hanya menjelaskan
pemeriksaan cepat tentang apa yang terjadi di server, lihat man sar untuk
memecah info ini lebih jauh.
Untuk memeriksa kinerja RAM,
saya menggunakan sar -r, yang memberi Anda penggunaan memori hari itu:
Hal utama yang harus dicari
dalam penggunaan RAM adalah %memused dan %commit. Sebuah kata singkat tentang
bidang %commit: Bidang ini dapat ditampilkan di atas 100% karena kernel Linux
secara rutin melakukan overcommit RAM. Jika %commit secara konsisten melebihi
100%, hasil ini bisa menjadi indikator bahwa sistem membutuhkan lebih banyak
RAM.
Untuk kinerja I/O disk, saya
menggunakan sar -d, yang memberi Anda output I/O disk hanya dengan menggunakan
nama perangkat. Untuk mendapatkan nama perangkat, gunakan sar -dP:
Untuk keluaran ini, melihat
%util dan %await akan memberi Anda gambaran keseluruhan yang baik tentang I/O
disk pada sistem. Bidang %util cukup jelas: Ini adalah penggunaan perangkat
itu. Bidang menunggu berisi jumlah waktu yang dihabiskan I/O di penjadwal.
Menunggu diukur dalam milidetik, dan di lingkungan saya, saya telah melihat
bahwa apa pun yang lebih besar dari 50 md mulai menimbulkan masalah. Ambang
batas itu mungkin berbeda di lingkungan Anda.
Jika salah satu dari perintah
ini menunjukkan masalah, Anda dapat kembali untuk melihat kapan masalah server
dimulai dengan menggunakan sar {-u, -r, -d, -dP} -f /var/log/sa/sa<XX> (
di mana XX adalah hari dalam bulan yang ingin Anda cari).
Pada titik ini, saya biasanya
memiliki gagasan bagus tentang apa yang sedang terjadi di server, dan apa yang telah
terjadi selama 48 jam terakhir atau lebih. Saya akan membalas pengguna dengan
tanggapan yang lebih terinformasi. Misalnya: "Saya tidak melihat indikasi
kelambatan host dalam 24 jam terakhir. Coba gunakan profil dempul baru untuk
ssh masuk, dan beri tahu saya jika Anda terus mengalami masalah."
Contoh lain: "Saya tidak
melihat apa pun yang saat ini menyebabkan masalah pada host ini, tetapi saya
melihat beberapa waktu pemuatan CPU yang lebih tinggi. Apakah saat itu Anda
melihat masalah? Jika demikian, coba sekarang dan beri tahu saya jika Anda
terus melihat masalah ."
Anda mendapatkan idenya.
Memiliki informasi yang diberikan dengan melihat login awal dan kemudian
menjalankan beberapa perintah sar, yang biasanya membutuhkan waktu kurang dari
10 menit untuk saya jalankan, melakukan banyak hal untuk menghindari lebih
banyak pertanyaan dan mencapai resolusi lebih cepat.
0 Komentar