En los últimos días he estado tratando de entender la rareza que está sucediendo en nuestra infraestructura, pero no he podido entenderlo así que me dirijo a ustedes para darme algunas pistas.
He estado notando en Graphite, picos en load_avg que ocurren con regularidad mortal aproximadamente cada 2 horas: no son exactamente 2 horas, pero es muy regular. Adjunto una captura de pantalla de esto que tomé de Graphite
Me he quedado atrapado investigando esto; la regularidad de esto me llevó a pensar que es una especie de trabajo cron o algo así, pero NO hay cronjobs ejecutándose en estos servidores; en realidad, estas son máquinas virtuales que se ejecutan en la nube Rackspace. Lo que estoy buscando es algún tipo de indicación de que podría estar causando estos problemas y cómo investigar más a fondo.
Los servidores están bastante inactivos: este es un entorno provisional, por lo que casi no entra tráfico / no debería haber carga en ellos. Estas son las 4 máquinas virtuales de núcleos virtuales. Lo que sé con certeza es que estamos tomando un montón de muestras de grafito cada 10 segundos, pero si esa es la causa de la carga, entonces esperaría que sea constantemente alta en lugar de suceder cada 2 horas en olas en diferentes servidores.
Cualquier ayuda para investigar esto sería muy apreciada.
Aquí hay algunos datos de sar para app01, que es el primer pico azul en la imagen de arriba, no pude sacar ninguna conclusión de los datos. Tampoco es que el pico de escritura de bytes que ves que ocurre cada media hora (NO CADA 2 HORAS) se deba a que el chef-cliente se ejecuta cada 30 minutos. Intentaré recopilar más datos aunque ya lo haya hecho, pero tampoco podría sacar ninguna conclusión de ellos.
CARGA
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
UPC
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
RED:
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
Para personas curiosas sobre cronjobs. Aquí está el resumen de todos los cronjobs configurados en el servidor (elegí app01 pero esto también está sucediendo en algunos otros servidores con la misma configuración de cronjobs)
$ 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
$
Como puede ver, no hay cronjobs HORARIOS. Solo diariamente / semanalmente, etc.
He reunido un montón de estadísticas (vmstat, mpstat, iostat); por mucho que lo intento, simplemente no puedo ver ninguna pista que sugiera un mal comportamiento de cualquier componente de VM ... Estoy empezando a inclinarme hacia posibles problemas en el hipervisor. Siéntase libre de echar un vistazo a las estadísticas La esencia comienza con la salida sar -q alrededor del tiempo "ofensivo" y luego puede ver vm, mp y iostats ...
Básicamente sigue siendo un misterio total para mí ...
Respuestas:
Interesante.
En primer lugar, ¿puede aumentar la frecuencia del registro sar? En lugar de 10 minutos, intente iniciar sesión cada minuto. El cronjob de sysstat es configurable.
A continuación, intente escribir los siguientes comandos.
Reúna este conjunto de datos en cada iteración cuando el promedio de carga aumente manualmente o mediante cron. Sería bueno tener datos de al menos un día hábil completo.
Ahora, entiendo que los servidores están inactivos pero aún algunas aplicaciones deben estar ejecutándose. ¿Qué son?
¿Es posible que pueda ejecutar alguna herramienta de creación de perfiles, como perf u oprofile?
¿Se ha cambiado algún componente de hardware del servidor? Incluso algo tan inocuo como una actualización de firmware o una actualización de software.
Hola, una pregunta. ¿Cuál es el planificador que está ejecutando? Creo que es cfq, cualquier posibilidad de que pueda cambiarlo a noop. Ponga
elevator=noop
el parámetro de línea de comando del núcleo y reinicie el sistema y vea si lo mejora.fuente
Procesos principales de registro
Dado que la ocurrencia es muy regular, configure el trabajo cron para monitorear los principales procesos durante ese período
Cambiar
20-59
a*
registrará toda la hora por cada número par horas. El trabajo de Cron se ejecutará una vez por minuto en cualquier caso.Es posible que desee agregar el archivo top.log al registro de rotación para que no ocupe todo el espacio en caso de que olvide deshabilitarlo.
Verificar archivo de registro
Buscar entradas de archivo de registro en el período de carga alta
Tome la siguiente entrada de carga como ejemplo
Hacer
Eso mostrará todas las entradas de registro para
22:2x:xx
. Puede que tenga que incluir otros directorios de registro.Dom 6 de enero 21:00:07 2013: xvda w_await spike
Gráfico xvda - El pico de w_await es el domingo 6 de enero 21:00:07 2013
fuente
Una cosa que definitivamente verificaría:
Editar: no lo obtuve la primera vez :) Está ejecutando en Rackspace, por lo que no tiene control sobre el hipervisor, sin embargo, podría valer la pena preguntar a rackspace si podrían verificar si este patrón es común en otras máquinas virtuales en el mismo host .
fuente