Memuat keanehan rata-rata di Linux Ubuntu

9

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

Load Averag - Klik untuk memperbesar

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 ...

milosgajdos
sumber
Apakah Anda memiliki data interaktif yang dapat Anda bagikan untuk menyelidiki lebih lanjut (yaitu, apa yang ditampilkan 'atas', 'htop' dan 'iotop' selama lonjakan beban berulang)? Juga, sudahkah Anda memeriksa log aplikasi Anda selama waktu yang bersangkutan untuk melihat apakah mereka memperlihatkan perilaku aneh? Selain itu, apakah Anda memiliki host dengan konfigurasi serupa yang tidak di-host pada infrastruktur cloud publik, dan jika demikian, apakah mereka menunjukkan perilaku yang sama?
esquireofoz
Dalam hal log aplikasi - tidak ada yang terjadi. Satu-satunya entri log yang dikandungnya adalah pemeriksaan dari pemantauan yang terjadi setiap menit - pada dasarnya sistem pemantauan mengenai situs utama dan melaporkan kode hasil - selain dari itu log benar-benar kosong. Juga seperti yang Anda lihat ada berbagai host di atas - ini terjadi pada mereka semua (redis, server aplikasi, server chef, dll.)
milosgajdos
Sudahkah Anda mencoba menggunakan psacct untuk mempersempitnya?
HTTP500
Anda mengasumsikan keteraturan, tetapi data yang Anda perlihatkan tidak menunjukkan lonjakan yang terjadi secara rutin .. harap lebih spesifik tentang periode yang tepat menunjukkan keteraturan di (selama beberapa hari mungkin? pada gambar, tidak ada keteraturan.) Anda bisa jalankan "top -n 1" setiap 1mn atau lebih dan simpan dalam file, dan ini bisa membantu melihat proses lain yang bersaing untuk cpu pada saat yang sama terjadi lonjakan. Jika App1 adalah aplikasi yang menghadap ke internet, mungkin itu hanya seseorang yang mendapatkan akses dan memaksakan perilaku itu? tambahkan juga "netstat -an" logging (setiap menit?)
Olivier Dulac
Apakah Anda melihat tangkapan layar terlampir? Jika itu tidak menunjukkan regularitu, saya tidak tahu apa. Saya sekarang telah menambah periode pengambilan sampel untuk sar jadi saya mengambil sampel setiap 5 menit. Keteraturan pada gambar lebih dari jelas - ini terjadi setiap dua jam. Ini adalah lingkungan pementasan tanpa lalu lintas sama sekali - karena Anda pasti dapat melihat dari keluaran sar di atas untuk statistik jaringan.
milosgajdos

Jawaban:

3

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.

ps auxf > /tmp/ps.out
vmstat 1 50 > /tmp/vm.out
mpstat -P ALL 1 50 > /tmp/mp.out
iostat -xdk 1 50 > /tmp/io.out
cat /proc/meminfo > /tmp/meminfo.out

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=noopparameter baris perintah kernel dan reboot sistem dan lihat apakah itu meningkatkannya.

Soham Chakraborty
sumber
Saya menambahkan suntingan kecil tentang penjadwal. tolong lihat hasilnya.
Soham Chakraborty
1

Proses Log Top

Karena kejadiannya sangat teratur, atur tugas cron untuk memantau proses teratas selama periode tersebut

#app01
20-59 0/2 * * * root /usr/bin/top -b -n 1 | /usr/bin/head -n 15 >> /var/log/top.log

Ubah 20-59ke *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

10:25:01 PM         0       125      4.10      3.59      2.23         0

Melakukan

grep ' 22:2' /var/log/*
grep ' 22:2' /var/log/apache2/*

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 masukkan deskripsi gambar di sini

John Siu
sumber
0

Satu hal yang pasti akan saya periksa:

  • Grafik vSphere untuk pola yang sama, mungkin VM lain pada host yang sama memakan CPU (sehingga beban pada VM Anda meningkat karena dibutuhkan lebih banyak waktu untuk memproses jumlah data yang sama dengan aliran konstan karena lebih sedikit waktu CPU yang tersedia untuk VM Anda).

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 .

Martino Dino
sumber
1
Saya juga curiga terhadap hal itu - ini bukan pertama kalinya Rackspace cloud menyebabkan semacam kegilaan. Saya ragu mereka memonitor salah satu server hypervisor mereka - maksud saya dalam hal kesalahan VM, namun saya ingin mengesampingkan segala kemungkinan "internal" sebelum saya beralih ke pilihan terakhir - dukungan Rackspace.
milosgajdos
Apakah kinerja hypervisor akan memengaruhi rata-rata beban VM sendiri? Ini membuat saya berpikir tentang bagaimana rata-rata beban dihitung. Mungkinkah ini merupakan efek dari fitur hijau / hemat daya yang secara berkala mengubah pekerjaan menjadi lebih sedikit core yang tidak diketahui OS? Atau bagaimana dengan mengubah laju jam secara dinamis berdasarkan misalnya input lingkungan?
trp
Rata-rata beban dihitung oleh algoritma penjadwalan, dengan kata sederhana, jika Anda memiliki 100 tugas dalam antrian pemrosesan dan hypervisor 100% efisien dalam mengeksekusi 10 tugas per 1 detik, maka Anda perlu 10 detik untuk menjalankan 100 tugas, jika hypervisor Anda hanya 50% efisien (mungkin overpprovisioning CPU) akan membutuhkan waktu 20 detik untuk menjalankan jumlah tugas yang sama, sehingga mengarah pada peningkatan beban. Penjelasan lengkap: blog.scoutapp.com/articles/2009/07/31/…
Martino Dino