Evitar que Ubuntu Linux vaya lento


Hay ocasiones en las que notamos que nuestro equipo va especialmente lento sin un motivo aparente.

Es en esas ocasiones cuando nos acordamos de las veces que hemos sufrido estas cosas ante un «ventanuco» con algún tiempo sin ser reinstalado (acabado de instalar va decentemente bien pero tiende con excesiva rapidez a volverse lento e inestable, por no hablar de los virus).

Cuando le ocurre a nuestro Ubuntu Linux es momento de buscar el causante y darle una solución.

Los motivos por los que nuestro equipo puede ir lento son esencialmente tres

Un proceso monopoliza la CPU

Ya sea de forma accidental o intencionada.

Detección

Para detectarlo nada mejor que lanzar el monitor del sistema y ordenar (pinchando sobre el nombre de la columna) por el uso de CPU

En este ejemplo (es una simulación que he hecho con no demasiado acierto por el desfase producido por el tiempo que tarda en realizarse la captura) puede observarse que la terminal está ocupando el 55% del tiempo de cálculo de la CPU.

Solución

Ante este problema podemos:

  1. Cerrar directamente la terminal (perderíamos lo que estamos haciendo)
  2. Cambiar la prioridad del proceso. Para ello recomiendo seguir las instrucciones que dimos en su día respecto al manejo de la prioridad en Linux

La memoria RAM está saturada

Para poder ejecutar un programa es necesario pasarlo (junto con parte de sus datos) del disco duro a la memoria física del equipo.

Cuando la memoria RAM no es suficiente suele hacerse uso de cierto espacio del disco duro (memoria swap) que simula la anterior pero con tiempos de respuesta mucho más lentos.

Si tu equipo tarda mucho para cambiar entre las ventanas de los distintos programas abiertos puedes comenzar a sospechar el origen del problema.

Detección

La mejor forma de comprobarlo es, lanzar desde la terminal el comando

free -m

obteniéndose, en la prueba que estoy realizando, el siguiente resultado

Como puede observarse, quedan libres 51 MB de memoria y se ha dispuesto de 34 MB (de los 486 que la forman) de la memoria de swapping.

Solución

Para mejorar la situación nade mejor que, frente al monitor del sistema, ordenar por la columna memoria

detectar los programas que mayor consumo están realizando de memoria y cerrarlos temporalmente para conseguir recuperar la estabilidad del sistema.

Observad que indico cerrar, nada de matarlos porque podrían quedar «restos» de memoria ocupados de forma indebida.

Exceso de accesos a disco

Provocados tanto por un programa que hace uso intensivo de los dispositivos de almacenamiento como por simular la falta de memoria física mediante la de swap.

Detección

Para ello contamos con el comando atop (si no lo tienes instalado prueba con un sudo apt-get install atop), como salida al mismo obtendríamos

En la imagen se observa que hay un 88% de acceso a disco y mirando un poco más en profundidad descubrimos que se debe fundamentalmente al proceso con PID 11182 correspondiente a un comando dd (el chivato es el valor D en la columna S de Status)

Solución

Igual que hicimos con el abuso de la CPU podemos cambiar la prioridad a la hora de los accesos a disco utilizando para ello el comando ionice.

En nuestro ejemplo particular deberíamos lanzar un

ionice -p11182 -n7

Donde

  • 11182 es el PID del proceso
  • 7 es la prioridad que queremos darle en el rango
    • 0 = alta prioridad
    • 7 = baja prioridad

Conclusión

Tres posibles causas con sus soluciones y la forma de detectarlas.

Espero que nunca os hagan falta pero si el sistema se está comportando de forma extraña espero que os puedan ser de utilidad compañeros.

12 comentarios en “Evitar que Ubuntu Linux vaya lento

  1. Muchas gracias por los consejos.
    El problema principal, como ya te comenté, es que cuando al acceso al terminar es prácticamente imposible, por que el sistema se pone, lento lento lento.

    De todas maneras, muchas gracias por los consejos, sobretodo el del disco duro, que lo desconocía.

    Me gusta

  2. @Rafa puedes probar a cambiar a una sesión en modo texto (CTRL+ALT+F1 o F2, …) y hacer las comprobaciones oportunas desde ella.

    @Aziru depende de la implicación de la misma en el proceso; normalmente se cuenta con mecanismos como DMA para evitar su participación en el proceso pero no siempre es utilizado y/o eficiente

    Me gusta

  3. Hola, buenos días:
    No entiendo bien cómo hacer para el Ubuntu no vaya tan lento. Además se abren ventanas que no he solicitado.
    El antivirus no detecta ningún virus(klamAV), paso el GConfCleaner y tampoco sale nada.
    Por favor explícalo sencillo, sé poca informática.

    Ismael

    Me gusta

    1. La idea Ismael es buscar el proceso (programa si lo prefieres) que tiene ocupado al procesador o descubrir si el cuello de botella está en el disco duro (el acceso suele ralentizar el sistema completo).

      Creo que está bien explicado en el artículo; cualquier duda no tienes mas que preguntar que estaré encantado de echar una mano.

      Suerte y un saludo

      Me gusta

  4. Excelente. Muchas gracias por la datta, ya veremos como y cuando usarla. En mi caso, solo tuve que cambiar la prioridad de un proceso que quizás en algún otro momento le había puesto prioridad muy alta. Lo acomodé por la columna prioridad en el monitor del sistema, le cambié de muy alta a normal y listo.
    Muchas gracias nuevamente.

    Me gusta

  5. hola, dejame hacerte una pregunta, yo instale una imagen de cliente ligeros ubuntu 16.04 y esta muy lento, demasiado como para ponerla ya a funcionar, con un solo usuario conectado se traba al cambiar de pestañas, no se que configurar para poder ponerla mas rápido, si pudieran ayudarme, gracias

    Me gusta

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.