¿Cómo optimizo el sistema operativo para SSD?

143

¿Qué pasos deben darse 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?

    
pregunta Lars Haugseth 06.08.2010 - 16:03

13 respuestas

106

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

En el caso de las SSD, usted busca minimizar el número de veces que la unidad también está escrita, 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 una memoria RAM suficiente para ejecutar todas sus aplicaciones, entonces, en teoría, no necesita una partición de intercambio.

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

2) No escribe para leer marcas de tiempo (adecuado para SSD y discos duros)

Al montar sus particiones con las opciones noatime y nodiratime se detendrá la escritura de marcas de tiempo cuando lea archivos y carpetas. Estas escrituras de marcas de tiempo no son generalmente 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 reduce la vida útil de la SSD.

Edite su archivo de configuración / etc / fstab (cuidadosamente: realice una copia de seguridad para asegurarse de que la configuración de su fstab puede impedir que el 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 una partición / home , comienza con eso simplemente cambiando esa partición si te 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

Tendrá que reiniciar su máquina antes de que estos cambios entren en vigencia

3) Minimizar las escrituras del SO y las aplicaciones

Suponiendo que no esté ejecutando un servidor de productos de misión crítica, la mayoría de las personas no observa los registros en caso de que algo salga mal (especialmente porque los errores serios 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 vaya a usar (especialmente cosas como Apache web server); de lo contrario, puede experimentar algunos problemas con los directorios que faltan en / var / log

Para obtener antecedentes sobre 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 guárdelo:

# 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

Tendrá que reiniciar su máquina antes de que estos cambios entren en vigencia

Ver también:

respondido por el jr0cket 08.08.2010 - 15:09
90

SSD Life

En general, no me molestaría; las preocupaciones sobre la vida SSD son exageradas. Puede leer este artículo detallado sobre por qué no debería preocuparse . En resumen, la circuitería dentro de los SSD modernos te ayuda a nivelar el desgaste, y ellos saben cómo hacerlo mejor que tú.

En el artículo se incluye un cálculo de la vida útil de una 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 de SSD será más larga ahora. Y es casi seguro que no escriba en su SSD a 80M / s las 24 horas del día.

Rendimiento de 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 descartar
  • manual TRIM

Tienes que activar la función TRIM automáticamente . (Básicamente, usted 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 más reciente. 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 te estás preguntando, el problema que TRIM resuelve, como descrito por Wikipedia , es:

  

Las SSD almacenan datos en celdas de memoria flash que están agrupadas en páginas, con las páginas (normalmente 4 kB cada una) agrupadas en bloques (normalmente 128 páginas por bloque, un total de 512 kB). Las celdas de memoria flash NAND solo pueden escribirse directamente cuando están vacías. Si se considera que contienen datos, los contenidos primero deben borrarse antes de que una operación de escritura pueda realizarse 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 un medio SSD es muy rápido, siempre que se puedan usar páginas vacías, pero se ralentiza considerablemente una vez que las páginas escritas previamente deben sobrescribirse . Como se necesita borrar las celdas de la página antes de que se pueda volver a escribir, pero solo se pueden borrar bloques enteros, una sobrescritura iniciará un ciclo de lectura-borrado-modificación-escritura: el contenido del bloque completo tiene para que se almacene en caché antes de que se borre de manera efectiva en el medio flash, la página sobrescrita se modifica en el caché para que el bloque en caché esté actualizado, y solo entonces se escribe todo el bloque (con página actualizada) en el medio flash Este fenómeno se conoce como amplificación de escritura.

    
respondido por el Hamish Downer 08.08.2010 - 21:03
20

Hay varios puntos:

Alineación:

Lo que a menudo se señala es la alineación correcta 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) y luego hacer clic en Instalar para usar las particiones que configure. / p>

El programador correcto:

Un punto importante es el programador que debería ser noop . Puede configurar este planificador a través de kernelparameter elevator=noop o mediante una entrada echo noop > /sys/block/sda/queue/scheduler en usted rc.local.

Mountflags:

Recomendaría noatime y discard

Tmpfs

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

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

respondido por el Sebastian Rühl 03.02.2011 - 22:28
16

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

sistema de archivos

Arch wiki menciona algunas opciones preferibles para el sistema de archivos SSD: una de ellas es inestable, otras son ext * unos. Supongo que ext4 es una de las mejores selecciones.
Nota: En el caso de ext4 es posible que desee usar 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

Pocas cosas importantes aquí son:

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

programador

Considere cambiar del programador predeterminado, que en la mayoría de las distribuciones de Linux es cfq (colas completamente equitativas), al noop o planificador de fechas límite para una SSD. El uso del programador de 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 considera que esta opción es ventajosa para las SSD, ya que los tiempos de búsqueda son idénticos para todos los sectores en la SSD.

Agregue lo siguiente a /etc/rc.local :

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

información

one two

    
respondido por el Andrejs Cainikovs 09.12.2011 - 18:24
8

4) habilitar TRIM automática

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

    
respondido por el Uli 31.12.2010 - 00:37
3

No agregaría esta línea a tu fstab, la carpeta var / tmp está destinada a sobrevivir al reinicio, y eso podría causarte problemas.

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

Cuando configuro el nuevo sistema, dejo toda la carpeta tmp comentada de esta manera, si pasa algo, puedo verificar los registros y esas cosas. Luego, una vez que tengo la configuración del sistema principal, los voy a des-comentar, 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 ninguna horadiada, la opción noatime se ocupa de ambas cosas por su cuenta.

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

gksu gedit /etc/cron.daily/trim

Añádelo al archivo y guárdalo (si no tienes una partición separada / home en ssd, o tienes otras partes en ssd, deberías 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 haz que el archivo sea ejecutable por:

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

También edito mi rc.local así:

gksu gedit /etc/rc.local

Agregue esto arriba "exit 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

Puedes copiar y pegar desde aquí para que no haya errores, para el profano se ve fuera de peligro, no lo es.

También he leído que dejar 10% de tu disco ssd sin formatear puede ayudar a prolongar 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 para todos, no pasó un día en Google y luego se le ocurrió una guía. Debería verificarla AQUÍ

    
respondido por el JohnRB 29.07.2013 - 00:53
3

TRIM permite que un sistema operativo informe a un SSD qué bloques de datos ya no se consideran en uso y se pueden borrar internamente. El recorte permite al SSD manejar la sobrecarga de recolección de basura, que de lo contrario podría retrasar significativamente las futuras operaciones de escritura a los bloques involucrados, con anticipación. 1

En Ubuntu 14.04 se ha agregado una nueva característica al paquete util-linux que recorta automáticamente SSDs de forma automática, pero solo los SSDs de Intel y Samsung tienen TRIM habilitado por defecto, porque algunos SSD baratos pueden incluso ellos mismos 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

1 enlace
2 Cómo ¿Está habilitado Trim?

    
respondido por el karel 25.12.2013 - 02:52
2

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

  • Diferencias entre TMP y VarTMP
respondido por el user95602 09.10.2012 - 18:12
2

Bien "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. Muy bien. Lo uso con un servidor.

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

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

Esto creará un ramdrive para sus archivos temporales, lo que reducirá el envejecimiento. También agregue 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. Guarde y reinicie.

    
respondido por el gajdipajti 24.04.2012 - 00:06
2

Hay alguna buena información Cómo ajustar y optimizar SSD para Ubuntu, Linux Mint de enlace que podría interesarte

Usar precarga

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

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

Desactivar el intercambio

Para cambiar la configuración de swappiness:

$ su -
# nano /etc/sysctl.conf

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

vm.swappiness = 10
    
respondido por el Sue Russell 09.11.2013 - 19:58
2

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

vm.dirty_writeback_centisecs = 15000
vm.swappiness = 10

Encuentre 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 mail.err

/var/log/mail.err

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

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

Más enlace

    
respondido por el Василий Алексеенко 12.05.2012 - 13:08
1

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

Activar TRIM

TRIM (el comando Trim le permite a un SO saber qué bloques SSD no se están usando 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 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 desactiva las actualizaciones atime en el sistema de archivos, y nodiratime desactivará las actualizaciones atime en el sistema de directorio. Al agregar noatime y nodiratime se reducirá en gran medida la carga de 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
    
respondido por el user223973 24.12.2013 - 23:44
0

Sugiero colocar solo las cosas que se leen durante el arranque en la SSD, tal vez aplicaciones que requieren mucho tiempo de carga. Datos y registros y otras cosas sin críticas que localizaría en una HDD normal. También podría configurar su ubuntu cargar solo un gran initramfs desde SSD en el 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 mucha más RAM por supuesto.

Yo, por ejemplo, colocar las particiones /, / etc, / usr, / boot, / lib 32/64 en SSD, mientras que algo como

/ opt, / bin, / sbin, / root, / home e incluso swap (¡aumenta la RAM!) en el disco duro

Wikipedia dice:

  

El kernel de Linux admite la función TRIM comenzando con 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) sync plus cron job.

    
respondido por el Michael K 09.12.2011 - 17:26

Lea otras preguntas en las etiquetas