¿Cómo puedo ajustar mi escritorio Linux para que sea más receptivo?

30

Tengo la experiencia de que Linux funciona bien hasta que se agota la memoria física. Tan pronto como se utiliza el espacio de intercambio, el rendimiento se degrada gravemente y la GUI deja de responder.

Este problema no se limita a una distribución o escritorio específico, porque he probado algunos (y el problema persiste).

¿Qué puedo hacer sobre esto?

txwikinger
fuente
Este es un problema conocido con el kernel de Linux ... Creo que leí que recientemente se confirmó un parche para solucionarlo. Buscando una referencia a eso ...
xenoterracide
1
Este artículo y este sobre phoronix es en lo que estaba pensando ... creo.
xenoterracide
Básicamente esos artículos hablan de parches que se van a 2.6.36 por lo que cuando lo que sale get que (a menos que se atreven a correr un RC o de maestro)
xenoterracide
¿Cuánta RAM tienes? ¿Qué programas ejecutas que tienen tanta hambre? VM? JVM?
tshepang
Tengo 8 GB de RAM y los culpables son las aplicaciones habituales (navegadores web como Firefox y Chrome, clientes de correo electrónico como Thunderbird y clientes IRC.)
txwikinger

Respuestas:

15

Sugiero leer SwapFAQ , en particular el parámetro de intercambio .

bitek
fuente
3
+1, swap es una curita que esperamos no usar ...
Avery Payne
1
He probado ampliamente diferentes configuraciones para el intercambio sin éxito. También he notado que las opiniones sobre el valor del intercambio no están unificadas en absoluto. Para los escritorios, algunos recomiendan 10, otros 100, lo que significa que sugieren que sugieren el efecto opuesto total.
txwikinger
1
Después de más pruebas, recomiendo no usar ni swapiness 100 ni 0. Ambas han creado situaciones en las que el escritorio entró en una manía de intercambio que incluso hizo que el reloj del panel se detuviera durante más de 20 minutos.
txwikinger
11

Algunos punteros:

  1. No ejecute tantos programas GUI a la vez.
  2. Asegúrese de que todos los programas que se ejecutan en segundo plano que no necesita, por ejemplo Apache, estén detenidos.
  3. Use una distribución dirigida a situaciones de poca memoria (por ejemplo, para una netbook)
  4. Compra más memoria.
  5. Compre un HD (o SSD) más rápido para su partición de intercambio. :)
Frozenskys
fuente
2
Con los SSD modernos, es probable que todo el sistema esté obsoleto y listo para ser reemplazado mucho antes de que el SSD muera. Realmente no vale la pena preocuparse por estos días. Las copias de seguridad, por supuesto, aún son necesarias porque un disco, SSD o mecánico, puede morir en cualquier momento.
cas
4

¿Comprar más memoria? :)

Si está ejecutando aplicaciones que usan más memoria de la que tiene presente en el sistema, no hay nada que ningún sistema operativo pueda hacer al respecto que no sea cambiar a la partición de intercambio. Si esta es una situación en la que se encuentra a menudo, deje de ejecutar algunos de los programas que no necesita o, realmente, compre más memoria, es muy barato en estos días.

Greg KH
fuente
3
Ya tengo RAM máxima. Me gustaría saber algunos ajustes que hacen que el intercambio sea más eficiente de lo que es.
txwikinger
1
Descubrí que deshabilitar el intercambio tiende a hacer que un sistema responda más rápido. El núcleo notifica a las aplicaciones que no tienen memoria y responden en consecuencia.
cjac
3
@cjac: Ese no suele ser el caso. Puede configurar el kernel para hacer esto, pero de manera predeterminada se comprometerá en exceso (le dará a su aplicación memoria que su sistema no tiene). Tan pronto como una aplicación toca la memoria y el núcleo no puede encontrar más, el asesino de falta de memoria terminará uno o más procesos.
Kristof Provost
@txwikinger, la razón por la que el intercambio es lento es porque las velocidades de RAM son mucho más rápidas que los discos duros. El tiempo de búsqueda de RAM se mide en nanosegundos (10 ^ -9). Los tiempos de búsqueda de HDD se miden en milisegundos (10 ^ -3). Eso es seis órdenes de magnitud, en otras palabras, la RAM es un millón de veces más rápida que el intercambio. Su pregunta es como preguntar cómo hacer que una bicicleta vaya tan rápido como un jet Concorde. No puedes
bahamat
1
@bahamat. Estás diciendo lo obvio, pero no es el problema. El problema es que el intercambio se realiza de manera muy ineficaz y, por lo tanto, crea algo en la dirección del problema del filósofo.
txwikinger
2

Intente cambiar los valores de las variables del núcleo 'vm.swappiness' y 'vm.page-cluster' a valores más apropiados.

  1. Inicie un emulador de terminal.
  2. cd /etc/sysctl.d/
  3. sudo echo "vm.swappiness = 0" > 60-memory-management.conf
  4. sudo echo "vm.page-cluster = 1" >> 60-memory-management.conf
  5. sudo chmod 644 60-memory-management.conf
  6. Reiniciar.

Compruebe si los nuevos valores están en uso con:

  1. cat /proc/sys/vm/swappiness
  2. cat /proc/sys/vm/page-cluster
Pedro Dias
fuente
1

El intercambio disminuirá en gran medida el rendimiento sin importar qué, por lo que es mejor evitarlo por completo. Esto puede sonar estúpido, pero una opción es no configurar una partición de intercambio. He estado ejecutando swap-free en todos mis sistemas desde hace algún tiempo:

  • 1 GB en la netbook es suficiente para navegar por la web, escuchar música y otras cosas livianas.
  • 4 GB en mi escritorio son suficientes para todas las cosas anteriores más el desarrollo (incluso en Eclipse) y la edición básica de imágenes.

Si hace algo que requiere mucha memoria (Gimp con imágenes grandes, modelado 3D, CAD), probablemente deba comprar algo de RAM.

Eugen Anghel
fuente
Sí. Poco a poco llego a la misma conclusión. Me parece que la forma en que el kernel de Linux cambia no es muy eficiente para los escritorios (en los servidores todo esto funciona bien). Por lo tanto, tal vez la recomendación debería ser desactivar todo el espacio de intercambio en los escritorios. Por cierto. Uso 8GB de RAM :)
txwikinger
1
@txwikinger: ¿puedo preguntar por qué está bien en los servidores?
phunehehe
1

Puedes probar compcache , si puedes descubrir cómo configurarlo en tu distribución. Por ejemplo, en Ubuntu, puede habilitarlo editando /etc/initramfs-tools/initramfs.conf y editando la línea "COMPCACHE_SIZE".

No creo que mi intercambio en disco haya sido tocado una vez desde que habilité compcache. Aquí están mis estadísticas de intercambio actuales:

% swapon -s
Filename                                Type            Size    Used    Priority
/dev/ramzswap0                          partition       1028084 69504   100
/dev/sda5                               partition       3148668 0       -1

Observe que se usa el dispositivo compcache (ramzswap0) y no el dispositivo en disco (sda5).

Ryan C. Thompson
fuente
0

Compre RAM más rápido y asegúrese de que su sistema lo esté utilizando todo. ¿Qué CPU y arquitectura estás usando?

Mike H
fuente
¿Cómo ajusta eso el sistema Linux? El cambio o la mejora del hardware no es el problema aquí.
txwikinger
Es posible que su instalación de Linux no esté utilizando todo el hardware disponible. Este es un problema de rendimiento y has declarado en un comentario anterior que estás en tu límite máximo de RAM. Sin conocer más detalles sobre su configuración, una ruta fácil de tomar es un mejor hardware.
Mike H
1
El "sistema Linux" está compuesto de hardware y software. Agregar memoria es "ajustar" el sistema.
cjac
Linux es un software que se ejecuta en hardware. El hardware no está incluido dentro de Linux: p
txwikinger
1
Creo que más ram es más apropiado que más rápido ... La velocidad de RAM también está limitada por el Mobo por lo general ...
xenoterracide
0

Ejecuto el applet Monitor de sistema en un dock en el lado derecho de mi pantalla. Cada vez que el sistema se siente lento, miro los medidores. Si algo se ejecuta a una capacidad superior al 10%, eso es una indicación de que un proceso se está yendo de las manos.

Si hace clic en el monitor del sistema, puede profundizar en los procesos que consumen recursos en su sistema.

http://www.colliertech.org/~cjac/tmp/screenies/system_monitor.png

cjac
fuente
1
La mayoría de los monitores de sistemas simplemente arrastran hacia abajo un sistema lento, más es el gato de Schrödinger. Sin aumentar la memoria, tiene que reparar las pérdidas de memoria o recortar los programas innecesarios que se están ejecutando.
jjclarkson
0

Hace unos años, era habitual usar una unidad dedicada para el intercambio, mientras estaba conectado a su propio bus IDE / ATA; el intercambio de datos en la misma unidad simplemente no tenía sentido en términos de rendimiento.

Ese truco funcionó hace diez años, pero con las velocidades de manejo ahora realmente no deberías ver una degradación de rendimiento tan agitada, a menos que estés intercambiando la biblioteca del congreso, de lo contrario me preocuparía la salud de tu disco. ¿Lo has verificado últimamente?

Siempre puedes intentarlo, no tienes muchas alternativas si tu RAM ya está al máximo. En todo caso, espero que haga que su GUI sea más receptiva.

invertir
fuente
Muchos usos para el escritorio no ofrecen esta opción, ya que son laptops o netbooks que no permiten una segunda unidad.
txwikinger
@txwikinger obviamente es cierto, pero consideré el título de la pregunta que dice "escritorio", de lo contrario no habría sugerido esto si se mencionara específicamente una computadora portátil :-)
invierta
Bueno ... me refería al escritorio para distinguirme de los servidores, donde creo que el intercambio funciona razonablemente bien. :)
txwikinger
0

Instale un segundo sistema Linux en su red con una buena cantidad de RAM, NFS lo monte en su sistema principal y coloque el archivo de intercambio en eso.

LawrenceC
fuente
1
Con Gigabit Ethernet, esto va a ser mucho más lento que un SSD de rango medio, y no estoy seguro de si podría alcanzar la velocidad de un disco duro de 7200 rpm. Quizás con Firewire pueda alcanzar la velocidad del intercambio local. Pero sería más efectivo simplemente agregar RAM.
Gilles 'SO- deja de ser malvado'
0

Una forma es mediante el uso de un núcleo optimizado .

Ikem
fuente
Por favor, no solo publique enlaces; incluya algo de contexto para que, en caso de que el sitio que está vinculando se caiga, haya suficiente información aquí para que la respuesta tenga sentido.
jasonwryan
0

Por muchos años de experiencia, puedo decirte que no hay mucho que modificar

Pero, lo que hice recientemente ayudó mucho.

1

Me mudé de Ubuntu a Arch Linux, de Unity / Gnome al escritorio xfce.

Ubuntu es mortalmente lento, de todas partes. arranque / gráficos ... lento.

2

Compré un Intel SSD (80 g) y planté mi sistema raíz en él.

Mi arch Linux + XFCE4 + docky + conky, arranca en 10 segundos (inicio de sesión automático con lxdm), todas las aplicaciones instaladas en SSD, por ejemplo, Matlab, comienzan mucho más rápido.

El dinero lo vale.

3

Realice su / tmp en otro lugar, utilizo un tamaño limitado de ramdisk para evitar que el sistema de archivos raíz se codifique

margarita
fuente