Dalam beberapa hari terakhir saya telah mencoba untuk memahami keanehan yang terjadi di infrastruktur kami, tetapi saya belum dapat mengetahuinya, jadi saya beralih kepada kalian untuk memberi saya beberapa petunjuk.
Saya telah memperhatikan di Graphite, lonjakan di load_avg yang terjadi dengan keteraturan mematikan sekitar setiap 2 jam - ini bukan tepat 2 jam tetapi sangat teratur. Saya lampirkan tangkapan layar ini yang saya ambil dari Graphite
Saya terjebak dalam penyelidikan ini - keteraturan ini membuat saya berpikir bahwa itu adalah semacam pekerjaan cron atau sesuatu seperti itu tetapi tidak ada cronjobs yang berjalan di server ini - sebenarnya ini adalah VM yang berjalan di cloud Rackspace. Apa yang saya cari adalah semacam indikasi yang mungkin menyebabkan masalah ini dan bagaimana menyelidiki ini lebih lanjut.
Server cukup siaga - ini adalah lingkungan pementasan sehingga hampir tidak ada lalu lintas masuk / seharusnya tidak ada beban pada mereka. Ini semua 4 VM core virtual. Yang saya tahu pasti adalah bahwa kami mengambil banyak sampel Graphite setiap 10 detik tetapi jika itu adalah penyebab beban maka saya berharap itu akan terus tinggi daripada terjadi setiap 2 jam dalam gelombang di server yang berbeda.
Bantuan apa pun untuk menyelidiki hal ini akan sangat dihargai!
Berikut adalah beberapa data dari sar untuk app01 - yang merupakan lonjakan biru pertama pada gambar di atas - Saya tidak dapat menarik kesimpulan APAPUN dari data. Juga bukan bahwa byte menulis spike yang Anda lihat terjadi setiap setengah jam (TIDAK SETIAP 2 JAM) adalah karena chef-client beroperasi setiap 30 menit. Saya akan mencoba untuk mengumpulkan lebih banyak data walaupun saya sudah melakukan itu tetapi tidak bisa benar-benar menarik kesimpulan dari keduanya.
BEBAN
09:55:01 PM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked
10:05:01 PM 0 125 1.28 1.26 0.86 0
10:15:01 PM 0 125 0.71 1.08 0.98 0
10:25:01 PM 0 125 4.10 3.59 2.23 0
10:35:01 PM 0 125 0.43 0.94 1.46 3
10:45:01 PM 0 125 0.25 0.45 0.96 0
10:55:01 PM 0 125 0.15 0.27 0.63 0
11:05:01 PM 0 125 0.48 0.33 0.47 0
11:15:01 PM 0 125 0.07 0.28 0.40 0
11:25:01 PM 0 125 0.46 0.32 0.34 0
11:35:01 PM 2 130 0.38 0.47 0.42 0
11:45:01 PM 2 131 0.29 0.40 0.38 0
11:55:01 PM 2 131 0.47 0.53 0.46 0
11:59:01 PM 2 131 0.66 0.70 0.55 0
12:00:01 AM 2 131 0.81 0.74 0.57 0
CPU
09:55:01 PM CPU %user %nice %system %iowait %steal %idle
10:05:01 PM all 5.68 0.00 3.07 0.04 0.11 91.10
10:15:01 PM all 5.01 0.00 1.70 0.01 0.07 93.21
10:25:01 PM all 5.06 0.00 1.74 0.02 0.08 93.11
10:35:01 PM all 5.74 0.00 2.95 0.06 0.13 91.12
10:45:01 PM all 5.05 0.00 1.76 0.02 0.06 93.10
10:55:01 PM all 5.02 0.00 1.73 0.02 0.09 93.13
11:05:01 PM all 5.52 0.00 2.74 0.05 0.08 91.61
11:15:01 PM all 4.98 0.00 1.76 0.01 0.08 93.17
11:25:01 PM all 4.99 0.00 1.75 0.01 0.06 93.19
11:35:01 PM all 5.45 0.00 2.70 0.04 0.05 91.76
11:45:01 PM all 5.00 0.00 1.71 0.01 0.05 93.23
11:55:01 PM all 5.02 0.00 1.72 0.01 0.06 93.19
11:59:01 PM all 5.03 0.00 1.74 0.01 0.06 93.16
12:00:01 AM all 4.91 0.00 1.68 0.01 0.08 93.33
IO
09:55:01 PM tps rtps wtps bread/s bwrtn/s
10:05:01 PM 8.88 0.15 8.72 1.21 422.38
10:15:01 PM 1.49 0.00 1.49 0.00 28.48
10:25:01 PM 1.54 0.00 1.54 0.03 29.61
10:35:01 PM 8.35 0.04 8.31 0.32 411.71
10:45:01 PM 1.58 0.00 1.58 0.00 30.04
10:55:01 PM 1.52 0.00 1.52 0.00 28.36
11:05:01 PM 8.32 0.01 8.31 0.08 410.30
11:15:01 PM 1.54 0.01 1.52 0.43 29.07
11:25:01 PM 1.47 0.00 1.47 0.00 28.39
11:35:01 PM 8.28 0.00 8.28 0.00 410.97
11:45:01 PM 1.49 0.00 1.49 0.00 28.35
11:55:01 PM 1.46 0.00 1.46 0.00 27.93
11:59:01 PM 1.35 0.00 1.35 0.00 26.83
12:00:01 AM 1.60 0.00 1.60 0.00 29.87
JARINGAN:
10:25:01 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
10:35:01 PM lo 8.36 8.36 2.18 2.18 0.00 0.00 0.00
10:35:01 PM eth1 7.07 4.77 5.24 2.42 0.00 0.00 0.00
10:35:01 PM eth0 2.30 1.99 0.24 0.51 0.00 0.00 0.00
10:45:01 PM lo 8.35 8.35 2.18 2.18 0.00 0.00 0.00
10:45:01 PM eth1 3.69 3.45 0.65 2.22 0.00 0.00 0.00
10:45:01 PM eth0 1.50 1.33 0.15 0.36 0.00 0.00 0.00
10:55:01 PM lo 8.36 8.36 2.18 2.18 0.00 0.00 0.00
10:55:01 PM eth1 3.66 3.40 0.64 2.19 0.00 0.00 0.00
10:55:01 PM eth0 0.79 0.87 0.08 0.29 0.00 0.00 0.00
11:05:01 PM lo 8.36 8.36 2.18 2.18 0.00 0.00 0.00
11:05:01 PM eth1 7.29 4.73 5.25 2.41 0.00 0.00 0.00
11:05:01 PM eth0 0.82 0.89 0.09 0.29 0.00 0.00 0.00
11:15:01 PM lo 8.34 8.34 2.18 2.18 0.00 0.00 0.00
11:15:01 PM eth1 3.67 3.30 0.64 2.19 0.00 0.00 0.00
11:15:01 PM eth0 1.27 1.21 0.11 0.34 0.00 0.00 0.00
11:25:01 PM lo 8.32 8.32 2.18 2.18 0.00 0.00 0.00
11:25:01 PM eth1 3.43 3.35 0.63 2.20 0.00 0.00 0.00
11:25:01 PM eth0 1.13 1.09 0.10 0.32 0.00 0.00 0.00
11:35:01 PM lo 8.36 8.36 2.18 2.18 0.00 0.00 0.00
11:35:01 PM eth1 7.16 4.68 5.25 2.40 0.00 0.00 0.00
11:35:01 PM eth0 1.15 1.12 0.11 0.32 0.00 0.00 0.00
11:45:01 PM lo 8.37 8.37 2.18 2.18 0.00 0.00 0.00
11:45:01 PM eth1 3.71 3.51 0.65 2.20 0.00 0.00 0.00
11:45:01 PM eth0 0.75 0.86 0.08 0.29 0.00 0.00 0.00
11:55:01 PM lo 8.30 8.30 2.18 2.18 0.00 0.00 0.00
11:55:01 PM eth1 3.65 3.37 0.64 2.20 0.00 0.00 0.00
11:55:01 PM eth0 0.74 0.84 0.08 0.28 0.00 0.00 0.00
Bagi orang yang penasaran dengan cronjobs. Berikut ini ringkasan semua cronjobs yang dibuat di server (saya memilih app01 tetapi ini juga terjadi pada beberapa server lain dengan pengaturan cronjobs yang sama)
$ ls -ltr /etc/cron*
-rw-r--r-- 1 root root 722 Apr 2 2012 /etc/crontab
/etc/cron.monthly:
total 0
/etc/cron.hourly:
total 0
/etc/cron.weekly:
total 8
-rwxr-xr-x 1 root root 730 Dec 31 2011 apt-xapian-index
-rwxr-xr-x 1 root root 907 Mar 31 2012 man-db
/etc/cron.daily:
total 68
-rwxr-xr-x 1 root root 2417 Jul 1 2011 popularity-contest
-rwxr-xr-x 1 root root 606 Aug 17 2011 mlocate
-rwxr-xr-x 1 root root 372 Oct 4 2011 logrotate
-rwxr-xr-x 1 root root 469 Dec 16 2011 sysstat
-rwxr-xr-x 1 root root 314 Mar 30 2012 aptitude
-rwxr-xr-x 1 root root 502 Mar 31 2012 bsdmainutils
-rwxr-xr-x 1 root root 1365 Mar 31 2012 man-db
-rwxr-xr-x 1 root root 2947 Apr 2 2012 standard
-rwxr-xr-x 1 root root 249 Apr 9 2012 passwd
-rwxr-xr-x 1 root root 219 Apr 10 2012 apport
-rwxr-xr-x 1 root root 256 Apr 12 2012 dpkg
-rwxr-xr-x 1 root root 214 Apr 20 2012 update-notifier-common
-rwxr-xr-x 1 root root 15399 Apr 20 2012 apt
-rwxr-xr-x 1 root root 1154 Jun 5 2012 ntp
/etc/cron.d:
total 4
-rw-r--r-- 1 root root 395 Jan 6 18:27 sysstat
$ sudo ls -ltr /var/spool/cron/crontabs
total 0
$
Seperti yang Anda lihat tidak ada cronjobs JAM. Hanya harian / mingguan, dll.
Saya telah mengumpulkan banyak statistik (vmstat, mpstat, iostat) - betapapun kerasnya saya mencoba, saya tidak dapat melihat petunjuk yang menunjukkan adanya komponen VM yang bermasalah ... Saya mulai condong ke masalah potensial di hypervisor. Merasa bebas untuk melihat statistik Intinya dimulai dengan sar -q output di sekitar waktu "menyinggung" dan kemudian Anda dapat melihat vm, mp dan iostats ....
Pada dasarnya itu masih menjadi misteri bagiku ...
Jawaban:
Menarik.
Pertama, bisakah Anda meningkatkan frekuensi penebangan sar. Sebagai ganti 10 menit, cobalah login setiap menit. Cronjob sysstat dapat dikonfigurasi.
Selanjutnya, cobalah untuk skrip keluar perintah berikut.
Kumpulkan kumpulan data ini di setiap iterasi saat rata-rata beban meningkat secara manual atau melalui cron. Sebaiknya memiliki data setidaknya satu hari kerja penuh.
Sekarang, saya mengerti bahwa server tidak digunakan tetapi masih ada beberapa aplikasi yang harus berjalan. Apakah mereka?
Apakah mungkin Anda dapat menjalankan beberapa alat profil, seperti perf atau oprofile.
Apakah ada komponen perangkat keras server yang diubah? Bahkan sesuatu yang tidak berbahaya seperti peningkatan firmware atau peningkatan perangkat lunak.
Hei, satu pertanyaan. Apa penjadwal yang Anda jalankan. Saya percaya itu cfq, setiap kesempatan Anda dapat mengubahnya ke noop. Masukkan
elevator=noop
parameter baris perintah kernel dan reboot sistem dan lihat apakah itu meningkatkannya.sumber
Proses Log Top
Karena kejadiannya sangat teratur, atur tugas cron untuk memantau proses teratas selama periode tersebut
Ubah
20-59
ke*
akan mencatat seluruh jam untuk setiap jam angka genap. Pekerjaan Cron akan berjalan sekali per menit dalam kedua kasus.Anda mungkin ingin menambahkan file top.log ke rotasi log sehingga tidak akan mengambil semua ruang jika Anda lupa menonaktifkannya.
Periksa file Log
Cari entri file log pada periode pemuatan tinggi
Ambil entri pemuatan berikut sebagai contoh
Melakukan
Itu akan menampilkan semua entri log untuk
22:2x:xx
. Mungkin harus memasukkan direktori log lainnya.Minggu 6 Januari 21:00:07 2013: xvda w_await spike
xvda Chart - Spike w_await ada di Sun 6 Jan 21:00:07 2013
sumber
Satu hal yang pasti akan saya periksa:
Sunting: Tidak mendapatkannya pertama kali :) Anda menjalankan di Rackspace, jadi tidak ada kontrol pada hypervisor, namun mungkin ada baiknya untuk menanyakan rackspace jika mereka dapat memeriksa apakah pola ini umum pada VM lain di host yang sama .
sumber