Tempah Konsultasi Hantar Tiket

Buku Panduan Penyelesaian Masalah Pengeluaran SRE Linux

Panduan praktikal untuk mendiagnosis dan menyelesaikan isu beban CPU tinggi pada pelayan web pengeluaran, mengikut struktur runbook SRE: senario, gejala, diagnosis, kawalan risiko, pengembalian, pengesahan, dan bila perlu mengemukakan tiket OpsGlobal.

Buku Panduan Penyelesaian Masalah Pengeluaran SRE Linux
DevOps 6min 57 paparan 2026-06-26
LinuxSREPenyelesaian MasalahPrestasi

Senario

Sebuah pelayan web pengeluaran (menjalankan Nginx dan PHP-FPM) untuk platform e-dagang tiba-tiba mengalami beban CPU tinggi. Masa tindak balas pengguna meningkat daripada 200ms kepada lebih 5 saat, dan beberapa permintaan tamat masa.

Gejala

  • top menunjukkan penggunaan CPU >95% berterusan, ruang pengguna 80%.
  • uptime purata beban melebihi 2x bilangan teras CPU (16 teras).
  • Log Nginx menunjukkan banyak ralat 504 Gateway Timeout.
  • Pemantauan aplikasi menunjukkan proses PHP-FPM mencapai had maksimum.

Langkah Diagnosis

  1. Kenal pasti kesesakan sumber: Jalankan top, isih mengikut CPU (P), perhatikan beberapa proses PHP-FPM menggunakan CPU tinggi.
  2. Jejak panggilan sistem: Gunakan strace -p <PID> -c -S time untuk mengenal pasti panggilan sistem yang memakan masa; mendapati epoll_wait dan recvfrom berat.
  3. Persampelan prestasi: perf top -p <PID> mendedahkan fungsi panas dalam php:-- seperti execute_ex dan fungsi enjin Zend.
  4. Periksa log perlahan: Periksa log perlahan PHP-FPM (slowlog) mendedahkan beberapa permintaan mengambil masa >30 saat, semuanya memanggil API luaran.
  5. Analisis rangkaian: netstat -anp | grep :80 menunjukkan banyak sambungan TIME_WAIT tetapi tidak mencapai had.

Arahan Digunakan

# Pantau penggunaan CPU
watch -n 1 'ps aux --sort=-%cpu | head -20'

# Jejak panggilan sistem proses
strace -fp $(pgrep -d',' php-fpm) -c -S time 2>&1 | head -30

# Profil titik panas
perf top -p $(pgrep -d',' php-fpm)

# Periksa log perlahan
tail -f /var/log/php-fpm/slow.log

# Kira sambungan rangkaian
ss -tan | awk '{print $1}' | sort | uniq -c

Kawalan Risiko

  • Sebelum diagnosis, pastikan amaran pemantauan dan keupayaan pengembalian wujud (cth., penggunaan biru-hijau atau skrip mulakan semula cepat).
  • Jalankan strace semasa trafik rendah untuk mengelakkan overhed.
  • Gunakan timeout untuk arahan berbahaya: timeout 10 strace ....
  • Elakkan kill -9 pada pengeluaran; lebih suka kill -TERM atau hentikan melalui systemd.

Operasi Pengembalian

  1. Jika disebabkan oleh kod baharu, kembalikan kepada versi stabil sebelumnya: git revert <commit> && systemctl restart php-fpm nginx.
  2. Jika tamat masa API luaran, kurangkan sementara Nginx proxy_read_timeout daripada 30s kepada 5s dan dayakan pemutus litar.
  3. Jika proses PHP-FPM di luar kawalan, bunuh semua anak dan mulakan semula: bash systemctl stop php-fpm killall -9 php-fpm # hanya jika hentian biasa gagal systemctl start php-fpm

Pengesahan

  • Gunakan ab atau wrk untuk mensimulasikan permintaan: wrk -t4 -c100 -d30s http://localhost/, perhatikan masa tindak balas dan kadar ralat.
  • Periksa penggunaan CPU kembali normal (<60%).
  • Sahkan tiada ralat 504 dalam log.
  • Pastikan kependaman yang dilaporkan pengguna kembali ke garis dasar.

Bila Perlu Mengemukakan Tiket OpsGlobal

  • Isu berterusan >30 minit dan punca akar tidak jelas.
  • Memerlukan koordinasi merentas pasukan (cth., pasukan pangkalan data atau rangkaian).
  • Operasi berisiko tinggi (cth., pelarasan kernel) diperlukan dengan keyakinan rendah.
  • Kehilangan data atau gangguan perkhidmatan sepenuhnya (hantar tiket kecemasan segera).
  • Perlu bantuan pasca-mortem atau pendapat kedua untuk menambah baik runbook.

Senario Penggunaan

Sesuai untuk pasukan yang menyelesaikan isu DevOps dan memerlukan aliran kerja yang jelas.

Latar Belakang Masalah

Panduan praktikal untuk mendiagnosis dan menyelesaikan isu beban CPU tinggi pada pelayan web pengeluaran, mengikut struktur runbook SRE: senario, gejala, diagnosis, kawalan risiko, pengembalian, pengesahan, dan bila perlu mengemukakan tiket OpsGlobal.

Langkah Penyelesaian

Sahkan impak dan perubahan terkini, kumpul log, konfigurasi dan metrik, kemudian baiki mengikut risiko.

Contoh Arahan

Gantikan contoh dengan nama sumber sebenar dan simpan kata laluan, token atau kunci dalam pembolehubah persekitaran.

Risiko

Sebelum operasi produksi, semak sandaran, akses, tetingkap perubahan dan pelan rollback.

Pelan Rollback

Simpan konfigurasi dan versi asal; rollback konfigurasi, imej atau perubahan pangkalan data jika metrik tidak normal.

Senarai Serahan

Rekod punca isu, arahan penting, langkah pembaikan, hasil pengesahan dan cadangan susulan.

!

Perlu bantuan isu teknikal serupa?

Jika pelayan, Kubernetes, Docker, CI/CD, pangkalan data atau pemantauan anda bermasalah, hantar log dan konfigurasi untuk diagnosis jauh.

Tiket Hubungi WhatsApp Konsultasi