Últimamente mi sitio ha experimentado una ligera y repentina lentitud al cargar páginas. Tuve un problema en el que se generó una copia de seguridad y excedió el espacio en mi volumen de DigitalOcean, lo que provocó la caída del sitio. Desde entonces, he tenido dificultades para reconstruir el sitio. Estos eventos podrían estar relacionados según el momento en que ocurrieron. Actualmente, el sitio parece estar en un estado estable, pero simplemente más lento de lo que estoy acostumbrado.
Podría entrar en más detalles sobre lo que sucedió, pero preferiría hacer una pregunta más general. ¿Cuáles son algunas técnicas para diagnosticar la causa de una lentitud? Mi droplet tiene una utilización promedio de CPU del 20%, por lo que parece que tengo recursos suficientes (4 GB de memoria / 2 vCPU AMD / 80 GB de disco, ~15k visitas a páginas al día).
¡Gracias! Si tuvieras escasez de memoria, los números de caché serían pequeños, y si estuvieras paginando mucho, las columnas si y so serían grandes. Pero no es así.
Vemos un gran pico en bi y bo, que típicamente es actividad de disco. Me pregunto si algo en algún lugar está construyendo, reparando o escaneando algo.
Quizás intenta ejecutar ps auxrc
cada cinco segundos durante un minuto más o menos, para ver si puedes capturar un proceso ocupado en acción.
Hay otras utilidades que quizás aún no estén instaladas: quizás busca “Cómo monitorear la E/S de disco en un sistema Linux” o similar.
Vale la pena señalar que si tienes dudas sobre la integridad de tu sistema, reconstruirlo a partir de una copia de seguridad podría ser la forma más rápida de avanzar. Pero asegúrate de tener una copia externa de la copia de seguridad, si no dos, en caso de accidente. Y, idealmente, haz la instalación en una nueva instancia y mantén la existente hasta que la nueva funcione correctamente.
Lo más interesante es que tienes muchos procesos de sidekiq y, sin embargo, veo la anotación “0 de 5 ocupados”, tienes más de 5. También parece que tienes muchos hilos de unicorn.
Sugiero un nuevo tema aquí, con tu salida de htop, incluyendo tu configuración yml sobre si has ajustado tu recuento de unicorn. Pregunta si este conjunto de procesos parece razonable.
Ah sí, debería haber revisado mi propio htop: muy similar.
Otra idea muy diferente, para la observación original de ‘una ralentización’, es activar el mini-profiler con Alt-P, luego acceder a una página típica grande de tu foro y ver qué consultas se están realizando y cuánto tiempo tardan, haciendo clic en la cifra de tiempo que aparece en la esquina superior derecha.
Pude hacer una actualización de apt y también reconstruir. Este problema: Pups error on rebuild 🐕 me impidió reconstruir durante un tiempo.
Desde la reconstrucción, se siente mejorado. Sin embargo, no me gusta operar por intuición en este caso, prefiero tener análisis y datos medibles. Agradezco los consejos @Ed_S, serán útiles para un monitoreo adicional.
Me pregunto si es posible capturar algunos de estos datos de perfil para mostrar la “salud” de la instancia a través de la página de administración. ¿Quizás una idea de plugin potencial o una característica central futura?