Ubuntu SSD - Foi rápido, agora é extremamente lento

12

É isso que estou recebendo agora, com um SSD Crucial MX300 de 750GB (com o firmware mais recente [ainda não há atualizações de firmware]).

lptp [ blah ]: sudo hdparm -Tt /dev/sda

/dev/sda:
 Timing cached reads:   10202 MB in  2.00 seconds = 5103.20 MB/sec
 Timing buffered disk reads: 128 MB in  3.06 seconds =  41.88 MB/sec

Veja que a velocidade de leitura do disco em buffer !!!! SOOOO SLOWWW !!!! Quando eu configurei meu laptop pela primeira vez, eu estava vendo mais de 400 MB / s, o que foi perfeitamente aceitável para mim, considerando que este é um laptop mais antigo e que tudo está criptografado pelo luks.

Este é o meu /etc/fstab. Eu habilitei o trim, executei o trim manualmente, recursos habilitados / desabilitados, reiniciei tudo. Não consigo recuperar essas velocidades rápidas:

/dev/mapper/ubuntu--gnome--vg-root /               ext4    noatime,nodiratime,errors=remount-ro,barrier=0,discard 0       1

Só para ficar claro, estas são as opções que estou usando. Eu tentei várias combinações deles sem sucesso:

noatime,nodiratime,errors=remount-ro,barrier=0,discard

Alguma dica? Isto está me enlouquecendo.

Também estou executando o Ubuntu 16.04 (x64) em um Lenovo T420 com 16GB de ram e um processador i7:

 lptp [ blah ]: lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.1 LTS
Release:    16.04
Codename:   xenial

Saída Smartctl:

 lptp [ blah ]: sudo smartctl /dev/sda -a
smartctl 6.5 2016-01-24 r4214 [x86_64-linux-4.4.0-38-generic] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Device Model:     Crucial_CT750MX300SSD1
Serial Number:    XXXXXX
LU WWN Device Id: 5 XXXXX XXXXXXX
Firmware Version: M0CR011
User Capacity:    750,156,374,016 bytes [750 GB]
Sector Size:      512 bytes logical/physical
Rotation Rate:    Solid State Device
Form Factor:      2.5 inches
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   ACS-3 T13/2161-D revision 5
SATA Version is:  SATA 3.2, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is:    Tue Nov  1 21:22:05 2016 CDT
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x00) Offline data collection activity
                    was never started.
                    Auto Offline Data Collection: Disabled.
Self-test execution status:      (   0) The previous self-test routine completed
                    without error or no self-test has ever 
                    been run.
Total time to complete Offline 
data collection:        ( 1987) seconds.
Offline data collection
capabilities:            (0x7b) SMART execute Offline immediate.
                    Auto Offline data collection on/off support.
                    Suspend Offline collection upon new
                    command.
                    Offline surface scan supported.
                    Self-test supported.
                    Conveyance Self-test supported.
                    Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
                    power-saving mode.
                    Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                    General Purpose Logging supported.
Short self-test routine 
recommended polling time:    (   2) minutes.
Extended self-test routine
recommended polling time:    (  10) minutes.
Conveyance self-test routine
recommended polling time:    (   3) minutes.
SCT capabilities:          (0x0035) SCT Status supported.
                    SCT Feature Control supported.
                    SCT Data Table supported.

SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x002f   100   100   000    Pre-fail  Always       -       0
  5 Reallocated_Sector_Ct   0x0032   100   100   010    Old_age   Always       -       0
  9 Power_On_Hours          0x0032   100   100   000    Old_age   Always       -       52
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       41
171 Unknown_Attribute       0x0032   100   100   000    Old_age   Always       -       0
172 Unknown_Attribute       0x0032   100   100   000    Old_age   Always       -       0
173 Unknown_Attribute       0x0032   100   100   000    Old_age   Always       -       1
174 Unknown_Attribute       0x0032   100   100   000    Old_age   Always       -       11
183 Runtime_Bad_Block       0x0032   100   100   000    Old_age   Always       -       0
184 End-to-End_Error        0x0032   100   100   000    Old_age   Always       -       0
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
194 Temperature_Celsius     0x0022   059   052   000    Old_age   Always       -       41 (Min/Max 21/48)
196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0030   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0032   100   100   000    Old_age   Always       -       0
202 Unknown_SSD_Attribute   0x0030   100   100   001    Old_age   Offline      -       0
206 Unknown_SSD_Attribute   0x000e   100   100   000    Old_age   Always       -       0
246 Unknown_Attribute       0x0032   100   100   000    Old_age   Always       -       138859820
247 Unknown_Attribute       0x0032   100   100   000    Old_age   Always       -       4354463
248 Unknown_Attribute       0x0032   100   100   000    Old_age   Always       -       1675456
180 Unused_Rsvd_Blk_Cnt_Tot 0x0033   000   000   000    Pre-fail  Always       -       3558
210 Unknown_Attribute       0x0032   100   100   000    Old_age   Always       -       0

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
No self-tests have been logged.  [To run self-tests, use: smartctl -t]

SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

O que está me matando é que estava trabalhando por um tempo . Funcionou um dia e depois parou no dia seguinte, e eu nem fiz nada (que eu possa pensar) que deveria ter mudado.

ATUALIZAR

Testou um dispositivo específico ( /dev/sda1), mas os mesmos resultados lentos:

lptp [ ~ ]: sudo hdparm -Tt /dev/sda1

/dev/sda1:
 Timing cached reads:   13130 MB in  2.00 seconds = 6568.77 MB/sec
 Timing buffered disk reads: 128 MB in  3.06 seconds =  41.79 MB/sec

ATUALIZAR

Testado em uma partição lógica também:

 lptp [ ~ ]: sudo hdparm -Tt /dev/mapper/ubuntu--gnome--vg-root 

/dev/mapper/ubuntu--gnome--vg-root:
 Timing cached reads:   11468 MB in  2.00 seconds = 5736.85 MB/sec
 Timing buffered disk reads: 178 MB in  3.04 seconds =  58.47 MB/sec

ddTeste de atualização

Este teste mostra que é ainda mais lento que o hdparm ...

 lptp [ blah ]:  dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc status=progress
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 35.0156 s, 30.7 MB/s
 lptp [ blah ]: sudo bash -c "echo 3 > /proc/sys/vm/drop_caches"
 lptp [ blah ]: dd if=tempfile of=/dev/null bs=1M count=1024 status=progress
1066401792 bytes (1.1 GB, 1017 MiB) copied, 34.0193 s, 31.3 MB/s
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 34.256 s, 31.3 MB/s

UPDATE: Alinhamento de partição

Aqui está o alinhamento da partição no meu laptop:

lptp [ ~ ]: sudo parted
GNU Parted 3.2
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) p                                                                
Model: ATA Crucial_CT750MX3 (scsi)
Disk /dev/sda: 750GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End    Size   Type      File system  Flags
 1      1049kB  512MB  511MB  primary   ext2         boot
 2      513MB   750GB  750GB  extended
 5      513MB   750GB  750GB  logical

(parted) align-check opt 1                                                       
1 aligned
(parted) align-check opt 2
2 not aligned
(parted) align-check opt 5
5 aligned
(parted)

Não sei bem o que pensar da partição 2 não estar alinhada: ^ / mas as partições 1 e 5 estão no entanto.

Além disso, aqui estão as partições vistas em fdisk -l

Device     Boot   Start        End    Sectors   Size Id Type
/dev/sda1  *       2048     999423     997376   487M 83 Linux
/dev/sda2       1001470 1465147391 1464145922 698.2G  5 Extended
/dev/sda5       1001472 1465147391 1464145920 698.2G 83 Linux

ATUALIZAÇÃO: CORRIGIDO? Alterei o agendador para um agendador noop (em vez de prazo). Isso parece ter funcionado (fiz isso alterando /etc/default/grubpara ter a linha:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash elevator=noop"

E então atualizando o grub sudo update-grub2e reiniciando.

Vou esperar alguns dias para ver se funciona depois de mais algumas reinicializações / uso antes de responder e aceitá-lo.

Velocidades atuais agora após alterar o agendador:

 lptp [ ~ ]: sudo hdparm -Tt /dev/sda

/dev/sda:
 Timing cached reads:   12388 MB in  2.00 seconds = 6197.19 MB/sec
 Timing buffered disk reads: 1454 MB in  3.00 seconds = 484.59 MB/sec

As opções no fstab são:

noatime,nodiratime,errors=remount-ro,barrier=0

insira a descrição da imagem aqui

ATUALIZAÇÃO "CORRIGIR"

Depois de usá-lo um pouco e reiniciar algumas vezes, está DE VOLTA ÀS VELOCIDADES LENTES :( :( :( :( :( :( :(

ATUALIZAÇÃO - POSSÍVEL "CORRIGIR"

Pensei que talvez meu laptop estivesse fazendo algumas otimizações de economia de bateria quando inicializado e esgotando a bateria. Após um simples teste de inicialização com o carregador conectado, ele volta a suas velocidades realmente rápidas. Estou bastante certo de que é esse o caso - durante todo o tempo que ele testou em alta velocidade, liguei o carregador. Fiz mais alguns testes para verificar, mas estou certo de que foi isso que estava causando a desaceleração.

d0c_s4vage
fonte
O que acontece se você testar a velocidade de uma partição específica, por exemplo, em /dev/sda1vez de /dev/sda?
thomasrutter
boa pergunta - eu vou experimentá-lo e atualizar a minha pergunta
d0c_s4vage
Também na partição lógica, por exemplo/dev/mapper/ubuntu--gnome--vg-root
thomasrutter 2/16
testado /dev/sda1, vai testar a partição lógica também
d0c_s4vage
k, testou os dois, sem sorte: 6 /
d0c_s4vage 02/11/16

Respostas:

19

A resposta rápida:

sudo hdparm -B254 /dev/sda

A resposta longa:

Parece que o Linux ou laptops em geral (verificados na Lenovo e na Dells) assumem o nível 80h (128) do APM quando inicializados com bateria e FEh (254) quando inicializados com energia CA.

Para a maioria dos SSDs, você não notará muita diferença. Os SSDs Lite-on parecem não oferecer suporte ao gerenciamento de energia e sempre são executados na velocidade máxima. Os SSDs da Intel parecem funcionar a cerca de 75% da velocidade total no nível APM 128 e 100% da velocidade no nível APM 254/255. No entanto, os SSDs cruciais parecem funcionar a cerca de 6% da velocidade máxima no nível 128 do APM (inicializado com bateria) quando comparados ao nível 254 do APM (inicializado com energia CA).

A má notícia é que não há erros nem falhas aqui. A especificação ATA é suficientemente vaga para que SSDs cruciais que executam super lento no modo APM 128 sejam permitidos e estejam em conformidade com a especificação. Da mesma forma, um laptop com nível APM 80h (128) é perfeitamente razoável. A especificação apenas diz:

Tabela 106 -
Campo APUNT de níveis COUNT Nível
00h Reservado
01h Consumo mínimo de energia com o modo de espera
02h..7Fh Níveis intermediários de gerenciamento de energia com o modo de espera
80h Consumo mínimo de energia sem o modo de espera
81h..FDh Níveis intermediários de gerenciamento de energia sem o modo de espera
FEh Desempenho máximo
FFh Reservado

(A partir da especificação ATA )

Aqui está minha experiência com um SSD Crucial MX300 inicializado com bateria:

root@ubuntu:~# hdparm -B /dev/sda

/dev/sda:
 APM_level  = 128

root@ubuntu:~# hdparm -t /dev/sda

/dev/sda:
 Timing buffered disk reads:  94 MB in  3.02 seconds =  31.11 MB/sec

root@ubuntu:~# hdparm -B254 /dev/sda

/dev/sda:
 setting Advanced Power Management level to 0xfe (254)
 APM_level  = 254

root@ubuntu:~# hdparm -t /dev/sda

/dev/sda:
 Timing buffered disk reads: 1466 MB in  3.00 seconds = 488.44 MB/sec
Daniel van Vugt
fonte
Mesmo: (desculpas por falta de formatação, o recuo parece não funcionar nos comentários) $ sudo hdparm -t / dev / sdb2 / dev / sdb2: Cronometrando o buffer de leitura em disco: 76 MB em 3.01 segundos = 25.23 MB / s $ sudo hdparm -t / dev / sda3 $ sudo hdparm -B / dev / sdb / dev / sdb: APM_level = 128 $ sudo hdparm -B254 / dev / sdb / dev / sdb: configurando o nível de gerenciamento avançado de energia para 0xfe (254) APM_level = 254 $ sudo hdparm -t / dev / sdb2 / dev / sdb2: Momento disco tamponada lê: 1448 MB em 3,00 segundos = 482,28 MB / seg
KevinButler
Uau. Apenas Uau. Esta resposta é imensamente útil. Mais uma coisa: se você usa o GNOME, o utilitário Disks permite realmente definir o nível de APM em sua GUI.
Venemo 27/08
Não acho que seja uma resposta completa, pois o mesmo problema ocorre no Samsung SSD 840 EVO 120GB ( APM_level = not supported) em um PC de mesa (ou seja, nunca na bateria). Deve haver razões mais populares para desacelerações de leitura.
cprn 23/02
Análise muito boa, embora não exista muita diferença com o WD ssd, mas é uma grande ajuda para entender esse problema. obrigado
ajcg 04/04
6

Você pode verificar /etc/hdparm.conf onde pode configurar o nível apm para o modo de energia e bateria.

Adicionar

apm = 254
apm_battery = 254

para /etc/hdparm.conf

christianonline
fonte
3

Eu sempre achei que era capaz de atingir as velocidades mais rápidas quando inicializava o laptop enquanto estava conectado. Se eu inicializava o laptop enquanto ele estava ficando sem bateria e, em seguida, conectado, ainda estava preso nas velocidades lentas.

Isso pode ter sido algo específico para o meu laptop (Lenovo T420). Alterei todas as configurações do BIOS para não economizar energia, para obter o desempenho máximo; no entanto, isso não permitiu que ele obtivesse velocidades rápidas ao usar apenas a bateria. Eu ainda tinha que estar conectado quando inicializei para ter as velocidades mais rápidas.

Outra observação: posso ser conectado ao inicializar e, depois de inicializado, desconecte o laptop. O laptop manterá as velocidades rápidas até inicializar na próxima vez.

RESPOSTA : Conecte-se ao inicializar.

d0c_s4vage
fonte
0

Por favor, use um kernel novo o suficiente (v4.15 +), tente usar med_power_with_dipm para o seu Crucial MX300.

O min_power do LPM não funciona bem para todos os drivers; se o med_power_with_dipm funcionar para você, devemos usar uma nova peculiaridade para permitir que ele retorne ao med_power_with_dipm quando o min_power for selecionado.

Além disso, registre um bug no Launchpad, para que os engenheiros do kernel do Ubuntu possam resolver o problema ou elevar o problema para o upstream.

khfeng
fonte