Saya mengalami masalah memuat dengan server saya dan meskipun saya seorang admin Linux yang agak berpengalaman, saya kehabisan ide sekarang.
Masalahnya adalah beban yang perlahan tapi terus meningkat di server tanpa sebab yang jelas.
Server adalah AMD Athlon (tm) 64 X2 Dual Core Processor 6000+ dengan 6GB RAM. Ini menjalankan Debian Stable dengan Linux gir 2.6.26-2-amd64 # 1 SMP Rabu 19 Agustus 22:33:18 UTC 2009 x86_64 GNU / Linux.
Server pada dasarnya menjalankan Lighttpd, beberapa proses PHP FastCGI dan database MySQL. Tugas server web tipikal.
CPU tidak pernah benar-benar habis dan memori terutama digunakan untuk buffer dan cache yang baik-baik saja. Saya mencoba untuk me-restart berbagai layanan untuk melihat apakah salah satu dari mereka akan mengurangi beban lagi, tetapi tidak berhasil.
Berikut ini adalah gambar yang menunjukkan beban, CPU dan IOStat:
Jadi, pertanyaannya adalah: Apa yang bisa menyebabkan beban yang perlahan tapi terus meningkat? Dan bagaimana saya mencari tahu apa yang bertanggung jawab?
Pembaruan: Saya lupa menyebutkan, ketika saya me-reboot server, bebannya akan turun menjadi sekitar 0,3 hingga 0,6 dan akan mulai naik lagi secara perlahan selama beberapa minggu ke depan.
Jawaban:
Setiap proses zombie menambahkan 1,0 ke beban. Anda mungkin melihat akumulasi zombie.
sumber
for N in {1..100} ; do sleep 60 & done ; exec sleep 500
harus cukup untuk menyebabkan beban tinggi. Tapi ternyata tidak. Perintah itu menghasilkan 100 zombie, tetapi beban di komputer saya tetap di bawah 1.Saya menemukan petunjuk bagus untuk menjawab pertanyaan yang berbeda .
Mencari proses dalam keadaan 'D' menunjukkan empat proses PHP yang tampaknya menggantung cukup lama sesuai dengan "langkah-langkah" dalam kurva beban:
Jadi ini tampaknya menjadi masalah. Saya sekarang perlu mencari tahu sementara proses-proses tersebut hang dan bagaimana cara memperbaikinya. Terimakasih semuanya.
sumber
Dugaan saya adalah server kelaparan IO, mungkin Anda harus menambahkan statistik iotop ke grafik
Saya ingin tahu apakah Anda dapat memiliki aktivitas per aplikasi io yang juga merupakan faktor untuk memuat server
http://rt.wiki.kernel.org/index.php/I/Otop_utility
alat lainnya adalah dstat
sumber
Jika itu I / O, maka dia akan melihat iowait (merah muda) pada grafik cpu.
sumber
Masalah seperti ini sering datang dari harddisk yang tidak cukup cepat untuk melayani data yang dibutuhkan oleh database MySQL dan server HTTP. Anda harus melihat perintah iostat
sumber
Secara umum, sebenarnya bukan hal yang buruk untuk memiliki beban server yang tinggi; itu berarti Anda tidak duduk diam dan melakukan lebih sedikit dari yang seharusnya. Kapasitas 80% -90% dari total kapasitas Anda (dengan ruang "burst") adalah yang biasanya dicari. Saya akan merekomendasikan memeriksa output mpstat dan vmstat. Secara khusus, 2 angka pertama dari vmstat dapat memberi Anda info yang lebih bermakna tentang bagaimana "dicadangkan" Anda dalam hal proses dalam menjalankan antrian. Kolom terakhir ("wa") dari output vmstat dapat memberi tahu Anda jika, dan untuk berapa lama, Anda menunggu penyelesaian I / O. Ukuran antrian run dan waktu tunggu I / O sering berkorelasi. Lihat juga sar (dari paket sysstat): yang memberi Anda pandangan rinci tentang apa yang terjadi selama periode waktu; metrik yang dicatatnya sangat teliti.
sumber