SSD ficando mais lento para arquivos maiores, normal?

SSD ficando mais lento para arquivos maiores, normal?

Gravar arquivos grandes em meu SSD principal parece lento e estou tentando descobrir o motivo. A placa-mãe é uma ASUS Maximus VIII Hero e tenho dois SSDs conectados:

  1. Samsung SSD 840 EVO 120GB --> sda
  2. Samsung SSD 840 EVO 500 GB --> sdb

Aqui está a saída do fdisk -l

Disk /dev/sda: 111.8 GiB, 120034123776 bytes, 234441648 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: A3DB9022-5AE0-4BF4-BCA0-E0DAF7BB2106

Device         Start       End   Sectors  Size Type
/dev/sda1       2048   1050623   1048576  512M EFI System
/dev/sda2    1050624 167569407 166518784 79.4G Linux filesystem
/dev/sda3  167569408 234440703  66871296 31.9G Linux swap

Disk /dev/sdb: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Portanto, 120 GB é meu disco de sistema e 500 GB é um disco secundário. Se eu escrever nos SSDs com dd, obtenho os seguintes resultados:

sda:

~$ dd if=/dev/zero of=/tmp/dd_performance bs=1G count=1 oflag=direct
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 2.1183 s, 507 MB/s

~$ dd if=/dev/zero of=/tmp/dd_performance bs=1G count=10 oflag=direct
10737418240 bytes (11 GB, 10 GiB) copied, 296.29 s, 36.2 MB/s

sdb:

~$ dd if=/dev/zero of=/mnt/temp_data/dd_performance bs=1G count=1 oflag=direct
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 2.13052 s, 504 MB/s

~$ dd if=/dev/zero of=/mnt/temp_data/dd_performance bs=1G count=10 oflag=direct
10737418240 bytes (11 GB, 10 GiB) copied, 21.1424 s, 508 MB/s

Portanto, para um arquivo de 1 GB, obtenho resultados muito semelhantes. Mas gravar um arquivo de 10 GB no sda fica dolorosamente lento.

eu encontreiperguntas semelhantesmas pensei que oflag=direct deveria pular todos os caches e escrever diretamente. Durante a execução, tive 25 GB de memória livre.

A única explicação que encontrei é que o sda tem muito mais arquivos (disco do sistema) e o SSD provavelmente tem mais trabalho para caber um arquivo de 10 GB nele do que no sdb. Esse comportamento é normal? Existe um teste melhor que eu poderia executar?

Responder1

Graças ao comentário de Daniel B, tenho certeza de que o comportamento é normal.

Solução

Os dois discos têm TurboWrites muito diferentes e é esperada uma queda ao gravar arquivos grandes. Para o disco menor, a queda acontece mais cedo e é muito maior. Além disso, o tamanho do bloco (1G) que usei não é ideal para testes. Usar um 1M mais razoável dá melhores resultados.

Conclusão

Ainda usarei o disco menor para minhas partições de sistema, pois elas têm muitos arquivos pequenos e funcionam rapidamente. Mas vou mover duas VMs que também estou executando neste SSD para uma maior, já que faço backups com frequência e as copio.

informação relacionada