Sentir la presion

Ultimamente me toca hacer de bombero, llevo 4 en estas ultimas semanas de situaciones de crisis todo por temas de performance. Estoy acostumbrado pero hoy creo que desayuné mal.

Fui a un cliente con urgencia porque se hizo un upgrade de 9i a 10g hace un par de semanas y todo dejó de funcionar literalmente.

Es un servidor con 16 CPU y 64GB de memoria sirviendo a 2500 usuarios concurrentes, con sistema operativo Linux x86-64 y Oracle 10.2.0.4. Llego al cliente y lo que me enseñaron primero es el Grid Control de la base de datos, madre mia el numero de sesiones activas marcaba hasta 80!!! Ahi me entro algun dolor de estomago porque tenia a 4 tios atras observando a ver si sacaba alguna varita magica. Empiezo a revisar datos de dias anteriores y madre mia otra vez, habia tope de 160 sesiones activas!!!

Me meto en la maquina y en el mismo empiezo a lanzar mi query favorita para ver la actividad, constantemente salian 80 sesiones activas con esperas de db file sequential read y direct path read. vmstat mostraba memoria libre y CPU libre, empece a sentirme un poco indispuesto, es raro no era la primera vez que tuviese a 4 ó 5 atras mirando pero la verdad es que la cosa no pintaba bien.

Llegó la hora punta y lanzo la query de la sesiones activas y boom, 150 sesiones activas que no me cabian en la pantalla, habia unas 2300 sesiones de usuarios. Viendo esos 150 sesiones me senti muy mal asi que tuve que irme al baño a quitarme un poco la presion y refrescarme la cara. Vuelvo y veo unos colorines muy guapos en el grafico de Grid, marron oscuro, rojo oscuro que son categorias configuration y concurrency. Logico, con tantas sesiones activas alguna contencion tiene que haber. Lo raro es que el servidor respondía bien, tenia CPU y memoria de sobra. Bueno CPU tenia como 20% libres tampoco para tirar cohetes.

Llegó la hora de comida empiezo a hacer cambios, unos 5 cambios introduje, tanto configuracion de sistema operativo como parametrizacion de la instancia. Suerte que eso solucionó el problema.

Pero el proposito de este post no es como se solucinó, es como aguantar la presión. Mantener la cabeza fria (con agua fria), no temblar, no decir tonterias (he visto a algunos decir tonterias en el pasado) porque puede volver en tu contra, analizar, comparar datos actuales con historicos y finalmente no ponerse nervioso.

3 thoughts on “Sentir la presion

  1. Dani

    Pero no nos dejes con la miel en la boca ¡ Cuentanos un poco por encima que es lo que pasaba y como se soluciono😉

    Reply
  2. Samuel G. Cristobal

    Si Dani, nos deja en ascuas, Li ya sabes lo mucho que nos gustan los detalles morbosos😉
    Buen post, me quedo con lo principal: no nervios, no precipitarse, tomarse tiempo, analizar y comparar datos actuales con historicos.
    Lo de tener gente pegada a la espalda es un poco incomodo si.
    Un profesor de la OU España, Javier Marcos me conto que el en algun “incendio” se suele encerrar en una habitacion
    y desconectar los telefonos.

    Reply
  3. lscheng Post author

    Se me habia pasado lo de Dani perdona.

    El problema era leian tanto a disco (habias varias sesiones con consultas de informes a tablas de 1200 millones registros con full scan) con cache de filesystem activado que el proceso de kswapd no daba a basto y cada vez que tenia que swapear la maquina se quedaba totalmente “colgada”, eso proceso lo tenia que hacer cada 1 ó 2 minutos por lo tanto empezaba a encolar peticiones.

    El arreglo es muy facil, activar Direct I/O y no usar cache de filesystem para evitar el efecto de “double buffering”.

    Reply

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s