it-swarm-es.com

¿Cómo optimizo el sistema operativo para SSD?

¿Qué pasos se deben tomar antes/durante/después de la instalación de Ubuntu en una unidad de estado sólido para optimizar el rendimiento y garantizar la máxima durabilidad de la unidad?

145
Lars Haugseth

He utilizado con éxito varias técnicas diferentes para mejorar la forma en que Ubuntu usa el dispositivo de almacenamiento, ya sea en estado sólido o en una unidad tradicional.

Para los SSD, también busca minimizar la cantidad de veces que se escribe la unidad, ya que las lecturas no deberían agregar desgaste a la unidad.

1) Administrar el archivo de intercambio

Si no hiberna su computadora y tiene suficiente memoria RAM para ejecutar todas sus aplicaciones, entonces, en teoría, no necesita una partición de intercambio.

Si tiene una combinación de SSD y discos duros, coloque su partición de intercambio solo en los discos duros.

2) No hay escrituras para marcas de tiempo de lectura (adecuado para SSD y discos duros)

Montar sus particiones con las opciones noatime y nodiratime detendrá las escrituras de marcas de tiempo cuando Lees archivos y carpetas. Estas escrituras de marca de tiempo generalmente no son necesarias a menos que use un cliente de servidor de correo local como mutt. La razón por la que generalmente es una mala idea, es porque cada lectura producirá una escritura al actualizar las marcas de tiempo. Esto disminuye la vida de la SSD.

Edite su archivo de configuración /etc/fstab (con cuidado, realice una copia de seguridad para asegurarse de que romper la configuración de fstab puede evitar que su sistema funcione):

cp /etc/fstab ~/fstab-backup
gksudo gedit /etc/fstab

Edite las opciones de montaje para sus particiones agregando el texto noatime y nodiratime a las líneas que definen su raíz (/) y otras particiones si las tiene (/ home) - Nota: si tiene un/home partición, comience con eso simplemente cambiando esa partición si le preocupa romper algo

# / was on /dev/sda2 during installation
UUID=587e0dc5-2db1-4cd9-9792-a5459a7bcfd2 /               ext4    noatime,nodiratime,errors=remount-ro 0       1

# /home was on /dev/sda3 during installation
UUID=2c919dc4-24de-474f-8da0-14c7e1240ab8 /home           ext4    noatime,nodiratime,defaults        0       2

Deberá reiniciar su máquina antes de que estos cambios surtan efecto

3) Minimizando las escrituras desde el SO y las aplicaciones

Suponiendo que no está ejecutando un servidor de producto de misión crítica, la mayoría de las personas no miran los registros si algo sale mal (especialmente porque los errores graves son raros para la mayoría de los usuarios de Ubuntu). Por lo tanto, puede configurar Ubuntu para que todos los registros se escriban en la memoria RAM en lugar de en la SSD.

Nota: solo realice los siguientes cambios cuando haya instalado todo el software que va a utilizar (especialmente cosas como el servidor web Apache), de lo contrario, puede experimentar algunos problemas con la falta de directorios en/var/log

Para conocer los antecedentes de este enfoque, consulte prolongación de la vida útil de su unidad flash en ubuntu-eee.com

Abra /etc/fstab con un editor (suponiendo que haya realizado una copia de seguridad del archivo/etc/fstab)

gksudo gedit /etc/fstab

Agregue las siguientes líneas al final del archivo fstab y guarde:

# Uncomment these after all server based applications installed - eg. Apache
#tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
#tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0
#tmpfs /var/log tmpfs defaults,noatime,mode=0755 0 0 
#tmpfs /var/log/apt tmpfs defaults,noatime 0 0
# none /var/cache unionfs dirs=/tmp:/var/cache=ro 0 0

Deberá reiniciar su máquina antes de que estos cambios surtan efecto

Ver también:

108
jr0cket

SSD Life

En general, no me molestaría: las preocupaciones sobre la vida de los SSD son exageradas. Puede leer esto artículo detallado sobre por qué realmente no debería preocuparse . En resumen, los circuitos dentro de los SSD modernos manejan la nivelación del desgaste por usted, y saben cómo hacerlo mucho mejor que usted.

En el artículo hay un cálculo de la vida útil de un SSD que recibe escrituras a una velocidad continua de 80M/s. La vida es 51 años . Eso se basa en la tecnología de 2007: la vida útil del SSD será más larga ahora. Y casi seguro que no escribe en su SSD a 80M/s las 24 horas del día.

Rendimiento SSD

Sin embargo, la degradación del rendimiento a lo largo del tiempo puede ser un problema y TRIM es la solución. Hay dos opciones

  • tRIM automático/en línea, también conocido como descarte
  • recorte manual

Tienes que habilita el ajuste automático tú mismo . (Básicamente, agrega la opción discard a sus opciones de montaje, siempre que esté usando ext4.) He encontrado una publicación de blog que informa que la opción de descarte ralentiza su sistema al eliminar archivos .

Ocasionalmente puede hacerlo manualmente (o en un trabajo cron) usando fstrim . Si solo tiene una partición, todo lo que necesita hacer es:

Sudo fstrim /

Tenga en cuenta que fstrim solo está disponible en 11.10 y posteriores. Para sistemas más antiguos, necesitará el script wiper.sh. Encontré el script en /usr/share/doc/hdparm/contrib/wiper.sh.gz en mi sistema.

Si se está preguntando, el problema que TRIM resuelve, como descrito por Wikipedia , es:

Los SSD almacenan datos en celdas de memoria flash que se agrupan en páginas, con las páginas (típicamente 4 kB cada una) agrupadas en bloques (típicamente 128 páginas por bloque, totalizando 512 kB). Las celdas de memoria flash NAND solo se pueden escribir directamente cuando están vacías. Si se considera que contienen datos, primero se debe borrar el contenido antes de que una operación de escritura se pueda realizar de manera confiable. En los SSD, se puede realizar una operación de escritura en el nivel de página, pero debido a limitaciones de hardware, los comandos de borrado siempre afectan a bloques enteros. Como resultado, escribir datos en medios SSD es muy rápido siempre que se puedan usar páginas vacías, pero se ralentiza considerablemente una vez que se deben sobrescribir las páginas previamente escritas Como es necesario borrar las celdas de la página antes de que se pueda volver a escribir, pero solo se pueden borrar bloques completos, una sobrescritura iniciará un ciclo de lectura-borrado-modificación-escritura: el contenido de todo el bloque debe almacenarse en la memoria caché antes de que se borre efectivamente en el medio flash, luego la página sobrescrita se modifica en la memoria caché para que el bloque en caché esté actualizado, y solo entonces está todo el bloque (con la página actualizada ) escrito en el medio flash . Este fenómeno se conoce como amplificación de escritura.

92
Hamish Downer

Hay varios puntos:

Alineación:

Lo que a menudo se señala es el derecho alineación de la partición. Esto debería ser igual al tamaño de bloque de la SSD. Juega seguro y alinea tus particiones con los límites de MiB. Tenga en cuenta que no puede hacer esto con la herramienta de partición del instalador de Ubuntu (que usa MB no MiB), pero puede iniciar el CD en vivo, usar Gparted (que usa MiB), luego hacer clic en Instalar para usar las particiones que configuró.

El planificador correcto:

Un punto importante es el planificador que debe ser noop. Puede configurar este programador mediante el parámetro del kernel elevator=noop o mediante una entrada echo noop > /sys/block/sda/queue/scheduler en su rc.local.

Banderas de montaje:

Yo recomendaría noatime y discard

Tmpfs

Poner tmp en un ramdisk puede aumentar el tiempo de vida del ssd. Para usar esto, ponga la siguiente línea en su fstab: none /tmp tmpfs defaults 0 0

En general, si desea profundizar en este tema, le recomendaría esto excelente artículo wiki.

20
Sebastian Rühl

Curso de ajuste rápido para su SSD en Ubuntu:

sistema de archivos

Arch wiki menciona pocas opciones preferibles para el sistema de archivos SSD: una de ellas es inestable, otras son ext *. Supongo que ext4 es una de las mejores elecciones.
Nota: en el caso de ext4 es posible que desee utilizar la opción de montaje discard.

fstab

# <file system> <mount point> <type> <options>                                  <dump>  <pass>
proc            /proc         proc   nodev,noexec,nosuid                        0       0
tmpfs           /tmp          tmpfs  nodev,nosuid,noatime,mode=1777             0       0
/dev/sda1       /             ext4   defaults,noatime,discard,errors=remount-ro 0       1
/dev/sda2       /home         ext4   defaults,noatime,discard,user_xattr        0       2
/dev/sda3       /windows      ntfs   defaults,noatime,discard,umask=007,gid=46  0       0

Algunas cosas importantes aquí son:

  • Para sistemas con> = 2 gigas de memoria, es deseable ubicar/tmp en RAM.
  • No swap partición. Hoy en día solo se necesita para la hibernación, ya que las máquinas modernas tienen una cantidad bastante grande de RAM.
  • noatime y discard opciones. La información es aquí .

planificador

Considere cambiar del planificador predeterminado, que en la mayoría de las distribuciones de Linux es cfq (colas completamente justas), al planificador noop o de fecha límite para un SSD. El uso del planificador noop, por ejemplo, simplemente procesa las solicitudes en el orden en que se reciben, sin tener en cuenta dónde residen físicamente los datos en el disco. Se piensa que esta opción es ventajosa para los SSD ya que los tiempos de búsqueda son idénticos para todos los sectores en el SSD.

Agregue lo siguiente a /etc/rc.local :

# SSD performance tuning
echo noop > /sys/block/sda/queue/scheduler

información

nodos

16

4) habilitar TRIM automático

Si su SSD lo admite, también debe habilitar TRIM automático (como se describe aquí )

8
Uli

TRIM permite que un sistema operativo informe a un SSD qué bloques de datos ya no se consideran en uso y pueden borrarse internamente. El recorte permite que el SSD maneje la sobrecarga de recolección de basura, lo que de lo contrario ralentizaría significativamente las futuras operaciones de escritura en los bloques involucrados, por adelantado. 1

En Ubuntu 14.04, se ha agregado una nueva función al paquete util-linux que recorta regularmente las SSD de forma automática, pero solo las SSD de Intel y Samsung tienen TRIM habilitado de forma predeterminada , porque algunos SSD baratos pueden incluso bloquearse cuando se ejecuta TRIM.2 El contenido de /etc/cron.weekly/fstrim en Ubuntu 14.04:

#!/bin/sh
# call fstrim-all to trim all mounted file systems which support it
set -e

# This only runs on Intel and Samsung SSDs by default, as some SSDs with faulty
# firmware may encounter data loss problems when running fstrim under high I/O
# load (e. g.  https://launchpad.net/bugs/1259829). You can append the
# --no-model-check option here to disable the vendor check and run fstrim on
# all SSD drives.
exec fstrim-all

1https://en.wikipedia.org/wiki/Trim_%28computing%29
2¿Cómo se habilita Trim?

3
karel

No agregaría esta línea a su carpeta fstab, var/tmp está destinada a sobrevivir reinicios, y eso podría causarle problemas.

tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0

Cuando configuro un nuevo sistema, dejo toda la carpeta tmp comentada de esta manera, si sucede algo, puedo verificar los registros y demás. Luego, una vez que tenga la configuración principal del sistema, los descomentaré, pero nunca agrego la línea anterior, esto es lo que uso:

tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
tmpfs /var/log tmpfs defaults,noatime,mode=0755 0 0 
tmpfs /var/log/apt tmpfs defaults,noatime 0 0

Y si tengo algún problema con mi sistema, los comento para poder verificar todo incluso después de un reinicio o reinicio forzado después de un bloqueo.

Además, no necesita nodiratime, la opción noatime se ocupa de ambos por sí misma.

En cuanto a TRIM, si su hw/sw lo admite, es imprescindible, no uso descartar en fstab. Creo un cron diario, porque mi PC siempre está encendida, al hacer esto:

gksu gedit /etc/cron.daily/trim

Luego agregue esto al archivo y guárdelo (si no tiene una partición separada/de inicio en ssd, o tiene otras partes que están en ssd, debe tener la idea de cómo modificar esto:

#!/bin/sh
LOG=/var/log/trim.log
echo "*** $(date -R) ***" >> $LOG
fstrim -v / >> $LOG
fstrim -v /home >> $LOG

Luego haga que el archivo sea ejecutable:

Sudo chmod +x /etc/cron.daily/trim

También edito mi rc.local así:

gksu gedit /etc/rc.local

Agregue esto arriba de "salir 0" y debajo del último #:

# Modification for SSD
# you may want to add more folders to be checked/created to this list
for dir in apparmor apt ConsoleKit cups dist-upgrade fsck gdm installer news ntpstats samba speech-dispatcher unattended-upgrades; do
  if [ ! -e /var/log/$dir ] ; then
    mkdir /var/log/$dir
  fi
done

Puede copiar y pegar desde aquí para que no haya errores, para el lego se ve fuera de control, no lo es.

También he leído que dejar el 10% de su disco ssd sin formato puede ayudar a extender la vida, eso está por verse. No he leído mucho sobre esto, así que no puedo responder si tiene sentido hacerlo.

Esta es la mejor guía completa, no pasó por Google por un día y luego encontró una guía, deberías echarle un vistazo AQUÍ

3
JohnRB

Hay buena información sobre cómo ajustar y optimizar SSD para Ubuntu, Linux Mint desde http://namhuy.net/1563/how-to-Tweak-and-optimize-ssd-for-ubuntu-linux-mint .html te puede interesar

Usar precarga

Para instalar preload en Ubuntu, Linux Mint o distribuciones basadas en Debian

# apt-get update && apt-get install preload

Apague su intercambio

Para cambiar la configuración de intercambio:

$ su -
# nano /etc/sysctl.conf

Y agregue esta línea al archivo sysctl.conf.

vm.swappiness = 10
2
Sue Russell

Está claro que /var/tmp no debería estar en tmpfs ya que, por definición, su contenido debe conservarse más allá de los reinicios:

2
user95602

Ok "larga historia corta":

  1. Sí. Es como un disco duro normal. Aquí es una buena descripción general.
  2. Algunos extras especiales que cubriré.
  3. Bastante bien. Lo uso con un servidor.

Formatee como ext4 durante la instalación y cree un pequeño intercambio ~ 1 GB. Después de instalar, edite fstab con Sudo gedit /etc/fstab y agregue la siguiente línea

tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0

Esto creará una memoria RAM para sus archivos temporales, lo que reducirá el envejecimiento. Agregue también noatime,nodiratime,discard a su línea ext4 después de los valores predeterminados. Esto también reducirá el desgaste y habilitará la función TRIM. Guardar y reiniciar.

2
gajdipajti

Se requiere UPS. En el archivo /etc/sysctl.conf

vm.dirty_writeback_centisecs = 15000
vm.swappiness = 10

Busque el daemon del archivo de configuración, generalmente /etc/syslog.conf или /etc/rsyslog.d/ y todas las rutas del formulario /var/log/ cambian escribiendo un signo menos ("-") delante de las formas. Antes de mail.err

/var/log/mail.err

Después
mail.err -/var/log/mail.err

use FS btrfs y use la opción -o ssd

Más http://vasilisc.com/speedup_ubuntu_eng#speedup_fs

Cómo ajustar y optimizar SSD para Ubuntu, Linux Mint

Habilitar TRIM

TRIM (el comando Trim le permite a un sistema operativo saber qué bloques SSD no se están utilizando y se pueden borrar)

Haga una copia de seguridad de fstab primero en caso de que ocurra algo incorrecto.

# cp /etc/fstab ~/fstab.bk

Editar archivo fstab

# nano /etc/fstab

Agregue el descarte a sus unidades o particiones ssd, después de ext4

UUID=bef10b86-494d-41c6-aa46-af72cfba90fd / ext4 discard,errors=remount-ro 0 1
Adding noatime and nodiratime

noatime y nodiratime son opciones de montaje en linux para el sistema de archivos de linux. noatime deshabilita las actualizaciones de atime en el sistema de archivos, y nodiratime deshabilita las actualizaciones de atime en el sistema de directorio. Al agregar noatime y nodiratime se reducirá en gran medida la carga ssd significa ganancias de rendimiento.

Editar archivo fstab

# nano /etc/fstab

Agregue noatime, nodiratime a sus unidades o particiones ssd, después de ext4

UUID=bef10b86-494d-41c6-aa46-af72cfba90fd / ext4 discard,noatime,nodiratime,errors=remount-ro 0 1
1
user223973

Sugiero colocar solo aquellas cosas que se leen en el momento del arranque en el SSD, cualquier aplicación que requiera mucho tiempo para cargar. Datos y registros y otras cosas no críticas que localizaría en un HDD normal. También puede configurar su ubuntu para cargar solo un gran initramfs desde SSD en el momento del arranque y no escribir cambios en ssd. Esto tiene la ventaja de que los cambios en esta partición no son persistentes, lo que es algo así como una protección para su sistema de arranque. Por lo tanto, necesitaría mucho más RAM por supuesto.

Yo p. coloque las particiones /,/etc,/usr,/boot,/lib 32/64 en SSD mientras algo

/ opt,/bin,/sbin,/root,/home e incluso intercambiar (aumentar RAM !!!) en HDD

Wikipedia dice:

El kernel de Linux admite la función TRIM a partir de la versión 2.6.33. El sistema de archivos ext4 es compatible cuando se monta utilizando el parámetro "descartar". Las utilidades de disco más recientes (y, por lo tanto, el software de instalación que las utiliza) también aplican una alineación de partición adecuada.

Para las copias de seguridad hay muchas formas, la más simple de las cuales es (r) sincronización más trabajo cron.

0
Michael K