Este foro usa cookies
Este foro utiliza cookies para almacenar su información de inicio de sesión si está registrado y su última visita si no lo está. Las cookies son pequeños documentos de texto almacenados en su computadora; las cookies establecidas por este foro solo se pueden usar en este sitio web y no representan ningún riesgo de seguridad. Las cookies en este foro también rastrean los temas específicos que ha leído y la última vez que los leyó. Si Ud. continúa navegando, entenderemos que acepta todas las cookies.

Se almacenará una cookie en su navegador, independientemente de la elección, para evitar que se le vuelva a hacer esta pregunta. Podrá cambiar la configuración de sus cookies en cualquier momento utilizando el enlace en el pie de página.

El foro antiguo se encuentra accesible desde https://foro.gambas-es.org en modo de solo lectura.

Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

Si tu Linux va lento...
#1

Hola amigos.
Hace un tiempo Alfredo decía que su sistema iba lento, y en aquel momento no se me ocurrió que podría ser lo que lo causase, y pensé que estaría este estaría haciendo algo mal, porque, ¿Como iba Linux a ir lento? Así que no fui muy amable en aquel momento. Lo siento Alfredo.

Pero resulta que se pueden hacer un par de cosas para acelerar el sistema.
Bien, como hoy toco mantenimiento de mi sistema que es un Manjaro, me puse a revisar la lista de rutina y descubrí que no estaba activado ni funcionando el servicio TRIM y como uso un disco SSD eso no es bueno. Así que lo active, luego aplique unos consejos del manual de Arch para acelerar el navegador chromium y también incremento la velocidad del sistema.

Si tienes un SSD
  • Consultando si esl sistema soporta TRIM: lsblk --discard
  • Activar los servicios: fstrim.servicefstrim.timer
  • Hacer de vez en cuando find ~/.cache/ -type f -atime +100 -delete
Luego para Chromium, conviene ejecutarlo con la siguiente orden.
chromium --disable-sync-preferences --disk-cache-dir="$XDG_RUNTIME_DIR/chromium-cache" --user-data-dir=/tmp/chromium

1 Saludo.
[-] Los siguientes 1 usuarios dice gracias a tincho por este post:
  • Shordi
    ¡Gracias!
#2

Hola Tincho,

a lo que tu indicas (que ya lo tenía hecho) puedes «optimizar» el arranque del disco desde el fstab, esta es la configuración que utilizo para mi ssd (los detalles se explican en el manual de fstab)

UUID=<mi uuid> /              ext4    noatime,nodiratime,discard,nodelalloc,barrier=0,i_version,commit=30,inode_readahead_blks=64,errors=remount-ro 0 1

Saludos
[-] Los siguientes 2 usuarios dicen gracias a alberto-moyano por este post:
  • Shordi, tincho
    ¡Gracias!
#3

(30-09-2022, 19:55)alberto-moyano escribió:  UUID=<mi uuid> /              ext4    noatime,nodiratime,discard,nodelalloc,barrier=0,i_version,commit=30,inode_readahead_blks=64,errors=remount-ro 0 1

Un poco de información acerca de que hace cada parámetro.
  • noatime desactiva por completo la escritura de los tiempos de acceso a los archivos en la unidad cada vez que se lee un archivo. Esto funciona bien para casi todas las aplicaciones, excepto para aquellas que necesitan saber si un archivo ha sido leído desde la última vez que fue modificado. La información del tiempo de escritura a un archivo continuará actualizándose cada vez que se escriba en el archivo con esta opción activada.
  • discard Emite las órdenes TRIM para dispositivos de bloques subyacentes cuando se liberan los bloques.
  • nodiratime desactiva la escritura de los tiempos de acceso a los archivos sólo para los directorios, mientras que otros archivos siguen recibiendo los tiempos de acceso.
  • lazytime  reduce las escrituras en disco manteniendo los cambios en las marcas de tiempo del inodo (tiempos de acceso, modificación y creación) sólo en memoria. Las marcas de tiempo en el disco se actualizan sólo cuando (1) el nodo del archivo necesita ser actualizado por algún cambio no relacionado con las marcas de tiempo del archivo, (2) se produce una sincronización con el disco, (3) un nodo no eliminado es desalojado de la memoria o (4) si han pasado más de 24 horas desde la última vez que la copia en memoria fue escrita en el disco.
  • nodelalloc  desactiva la función de ext4 de delayed allocation, que reserva el espacio pero no lo escribe. Aplaza la escritura de bloques hasta que se esté en el tiempo de escritura. Es más que nada por seguridad.
  • barrier=0: Desactiva las barreras automáticamente. Se refiere a los límites de escritura. Si es igual a cero los elimina, si es igual a 1, los activa. Podemos prescindir de estas barreras si los discos están protegidos contra cortes de corriente. Sólo en este caso, incluimos la opción barrier=0
  • i_version Habilita el uso de la versión extendida de 64 bits en sistemas de ficheros ext4.
  • commit=30: Retrasa la escritura de los metadatos de ficheros, con lo que se reduce mucho el uso de disco. No recomendable si estuviésemos en un ordenador con batería.
  • inode_readahead_blks=64 Este parámetro de ajuste controla el número máximo de bloques de la tabla de inodos que el algoritmo readahead de la tabla de inodos de ext4 preleerá en la caché del buffer. El valor por defecto es de 32 bloques.
Siguiendo tu ejemplo y cambiando un poco en base a lo que indican en la pagina de Arch, como por ejemplo que noatime implica nodiratime y no es necesario especificar ambos. Luego, agregando dos lineas más a fstab para montar los directorios temporales en la RAM quedo así:
  • Escenario 1: Laptop 64 bits con, al menos, 8GB de RAM, batería en buen estado y cargada es decir si se corta la energía el sistema no se apaga abruptamente sino que nos da tiempo a apagar el sistema de forma ordenada. Configurado para hacer TRIM periódico de una vez por semana.
Cita:UUID=<uuid>   /              ext4    noatime,nodelalloc,barrier=0,i_version,inode_readahead_blks=64,errors=remount-ro 0 1
  • Escenario 2: Igual que escenario 1 pero con TRIM continuo.
Cita:UUID=<uuid>   /              ext4    noatime,discard,nodelalloc,barrier=0,i_version,inode_readahead_blks=64,errors=remount-ro 0 1
 
Cita:tmpfs   /tmp   tmpfs         size=2G,noexec,rw,auto,nouser,sync,noatime,nodev,nosuid,mode=1777 0 0
tmpfs   /var/tmp   tmpfs   size=2G,noexec,rw,auto,nouser,sync,noatime,nodev,nosuid,mode=1777 0 0

Aquí debajo transcribo las notas de la pagina de Arch linux sobre el tema:
Cita:TRIM continuo
Nota: No hay necesidad de habilitar TRIM continuo si ejecuta fstrim periódicamente. Si quiere usar TRIM, use TRIM periódico o TRIM continuo.
En vez de ejecutar los comandos TRIM cada tanto (por defecto es una vez por semana si usa fstrim.timer), también es posible emitirlos cada vez que un archivo es borrado. Eso ultimo se conoce como TRIM continuo.

Advertencia: Antes de SATA 3.1, los comandos TRIM no eran ejecutados en cola, lo que provocaba que el sistema se congelara frecuentemente. En este caso, aplicar #TRIM periódico menos frecuentemente era una mejor alternativa. Se producía el mismo problema en un numero de dispositivos, vea ata_device_blacklist en el código fuente de Linux, donde la ejecución en cola de comandos TRIM esta prohibida por causar corrupción seria de datos. En ese caso, dependiendo de el dispositivo, el sistema puede estar forzado a enviar comandos TRIM fuera de cola en vez de en cola. Vea Wikipedia:Trim_(computing)#Disadvantages (en inglés) para más detalles.
Nota: El TRIM continuo no es la manera preferida para emitir comandos TRIM en la comunidad de Linux. Por ejemplo, en Ubuntu el TRIM periódico esta activado por defecto [5], Debian no recomienda usar TRIM continuo [6] y Red Hat recomienda usar TRIM periódico en vez de TRIM continuo si es posible. [7]
Usando la opción de montado discard en /etc/fstab habilita TRIM continuo al operar el dispositivo:

1 Saludo.
[-] Los siguientes 3 usuarios dicen gracias a tincho por este post:
  • jguardon, Shell, Shordi
    ¡Gracias!
#4

¿y discard?

No podemos regresar
    ¡Gracias!
#5

Gracias por la aclaración, no sé en tu máquina, pero en la mía el runtime de gambas no corre si llevo a ram los temporales de \var.

Sls
    ¡Gracias!
#6

(01-10-2022, 21:55)alberto-moyano escribió:  Gracias por la aclaración, no sé en tu máquina, pero en la mía el runtime de gambas no corre si llevo a ram los temporales de \var.

De nada.
En mi maquina que tiene /var/tmp y /tmp montados en la RAM no sucede eso. Funciona todo normalmente.

(01-10-2022, 21:00)Shordi escribió:  ¿y discard?

Si pones la opción discard TRIM se hara de modo continuo, es decir cada vez que se borre un archivo.
En el caso que plantee antes, que uso en mi pc, no debería tener este parámetro porque en mi sistema tengo configurado el TRIM periódico.
Voy a corregir el ejemplo para aclarar esto.

1 Saludo.
    ¡Gracias!
#7

Comento algo mas que puede ser útil.
En el caso que tengas estipulado fstrim.timer una vez por semana, como es mi caso; generalmente va bien pero a veces luego de una gran actualización de paquetes puede que sea necesario ejecutar manualmente trim si todavía faltan unos días para que este se realice de forma automática con cron.

Para saber cuando se ejecuto la ultima vez y cuando falta para la próxima:
  • systemctl list-timers
Para ejecutarlo manualmente:
  • fstrim --fstab

1 Saludo.
    ¡Gracias!
#8

Buenas!.

Lo sé, ya tiene un tiempo el post, pero como son cosas que se van dejando para adelante por motivos de no poder leer completamente el post.

Tincho:

Bash
  1. lsblk --discard



Es un poco larga la salida. Y no tan directa como esta.
Si quieres saber si tu disco soporta trim puedes hacer:

Por ejemplo de todos los parámetros del disco que nos devuelve la instrucción, buscamos la palabra trim.

Bash
  1. # Sustituir la X por la unidad que quieres comprobar a,b...
  2. sudo hdparm -I /dev/sdX | grep -i TRIM



Si queremos saber si tenemos el servicio fstrim en el sistema podemos hacer:

Bash
  1. systemctl cat fstrim.service



Para conocer su estado:

Bash
  1. systemctl status fstrim.timer



Para conocer la configuración del servicio.

Bash
  1. systemctl cat fstrim.timer



Suele ejecutarse cada semana y la salida no te la muestra.
En el caso de que no lo tengamos el servicio, lo podemos activar.

Bash
  1. sudo systemctl enable fstrim.service



Ahora si tenemos el servicio, pero no iniciado. Lo iniciamos.

Bash
  1. sudo systemctl start fstrim.service



Para ver los registros que han ido creando los servicios:

Bash
  1. # Para ver los logs del servicio fstrim.service
  2.  
  3. journalctl -u fstrim.service



Y ahora el del fstrim.timer.

Bash
  1. journalctl -u fstrim.timer



Saludos

"El buen perfume en frasco pequeño se vende"
    ¡Gracias!


Posibles temas similares…
Tema / Autor Respuestas Vistas Último mensaje

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)