Resposta curta
Escolha ext4 e monte-o com a discard
opção de suporte TRIM , ou use FITRIM (veja abaixo). Também use a noatime
opção se você tem medo de "desgaste do SSD".
Não altere seu CFQ (Agendador de E / S) padrão em servidores de vários aplicativos , pois ele oferece justiça entre os processos e possui suporte automático a SSD. No entanto, use o Prazo em áreas de trabalho para obter melhor capacidade de resposta sob carga.
Para garantir facilmente o alinhamento adequado dos dados, o setor inicial de cada partição deve ser múltiplo de 2048 (= 1 MiB). Você pode usar fdisk -cu /dev/sdX
para criá-los. Nas distribuições recentes, ele cuidará disso automaticamente.
Pense duas vezes antes de usar swap no SSD. Provavelmente será muito mais rápido comparado à troca no HDD, mas também desgastará o disco mais rapidamente (o que pode não ser relevante, veja abaixo).
Resposta longa
Ext4 é o sistema de arquivos Linux mais comum (bem conservado). Ele fornece bom desempenho com o SSD e suporta o recurso TRIM (e FITRIM) para manter um bom desempenho do SSD ao longo do tempo (isso limpa blocos de memória não utilizados para acesso rápido e posterior à gravação). NILFS é especialmente concebido para drives de memória flash, mas que não realmente executar melhor do que ext4 em benchmarks. Btrfs ainda é considerado experimental (e realmente não têm melhor desempenho , quer ).
O recurso TRIM limpa os blocos SSD que não são mais usados pelo sistema de arquivos. Isso otimizará o desempenho de gravação a longo prazo e é recomendado no SSD devido ao seu design. Isso significa que o sistema de arquivos deve poder informar a unidade sobre esses blocos. A discard
opção de montagem do ext4 emitirá esses comandos TRIM quando os blocos do sistema de arquivos forem liberados. Isso é descarte on - line .
No entanto, esse comportamento implica uma pequena sobrecarga de desempenho. Desde o Linux 2.6.37, você pode evitar o uso discard
e optar por descartar lotes ocasionalmente com o FITRIM (por exemplo, no crontab). O fstrim
utilitário faz isso (online), bem como a -E discard
opção de fsck.ext4
. Você precisará da versão "recente" dessas ferramentas, no entanto.
Você pode limitar as gravações em sua unidade, pois o SSD tem uma vida útil limitada a esse respeito. No entanto , não se preocupe muito , o pior SSD de 128 GB de hoje pode suportar pelo menos 20 GB de dados gravados por dia por mais de 5 anos (1000 ciclos de gravação por célula). Os melhores (e também os maiores) podem durar muito mais: você provavelmente o terá substituído até então.
Se você deseja usar o swap no SSD, o kernel notará um disco não rotacional e randomizará o uso do swap (nível de desgaste no nível do kernel): você verá um SS
(Solid State) na mensagem do kernel quando o swap estiver ativado:
Adicionando 2097148k de swap em / dev / sda1. Prioridade: -1 extensões: 1 em: 2097148k SS
Além disso, concordo com a maioria das respostas do aliasgar (mesmo que a maioria tenha sido copiada ilegalmente deste site ), mas devo discordar parcialmente da parte do agendador . Por padrão, o agendador de prazos é otimizado para discos rotacionais à medida que implementa o algoritmo do elevador . Então, vamos esclarecer esta parte.
Resposta longa sobre agendadores
A partir do kernel 2.6.29, os discos SSD são detectados automaticamente e você pode verificar isso com:
cat /sys/block/sda/queue/rotational
Você deve comprar 1
discos rígidos e 0
um SSD.
Agora, o planejador CFQ pode adaptar seu comportamento com base nessas informações. Desde o linux 3.1, o cfq-iosched.txt
arquivo de documentação do kernel diz :
O CFQ possui algumas otimizações para SSDs e se detectar uma mídia não rotacional que possa suportar maior profundidade da fila (várias solicitações em voo por vez), [...].
Além disso, o planejador de prazos tenta limitar os movimentos desordenados da cabeça em discos rotativos, com base no número do setor. Citando o documento do kernel deadline-iosched.txt
, fifo_batch
descrição da opção :
As solicitações são agrupadas em `` lotes '' de uma direção de dados específica (leitura ou gravação) que são atendidas em ordem crescente do setor.
No entanto, ajustar esse parâmetro para 1 ao usar um SSD pode ser interessante:
Este parâmetro ajusta o equilíbrio entre a latência por solicitação e a taxa de transferência agregada. Quando a baixa latência é a principal preocupação, menor é melhor (onde um valor de 1 gera comportamento de primeiro a chegar, primeiro a ser servido). Aumentar o fifo_batch geralmente melhora a taxa de transferência, ao custo da variação da latência.
Alguns benchmarks sugerem que há pouca diferença no desempenho entre os diferentes agendadores. Então, por que não recomendar justiça ? quando CFQ raramente é ruim no banco . No entanto, nas configurações da área de trabalho, você normalmente experimentará uma melhor capacidade de resposta usando o Prazo sob carga, devido ao seu design (provavelmente com um custo de taxa de transferência menor).
Dito isto, um benchmark melhor tentaria usar o Prazo com fifo_batch=1
.
Para usar o Prazo em SSDs por padrão, você pode criar um arquivo, /etc/udev.d/99-ssd.rules
como a seguir:
# all non-rotational block devices use 'deadline' scheduler
# mostly useful for SSDs on desktops systems
SUBSYSTEM=="block", ATTR{queue/rotational}=="0", ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/scheduler}="deadline"
gdisk
&grub 2.0.x
, (acho que alguém mencionou abaixo em uma resposta) e MBR é o método legado usando o antigogrub 0.9.7
efdisk
.. você pode encontrar mais aqui: wiki.archlinux.org/index.php/Solid_State_Drives