Ubuntu SSD - Era veloce, ora è estremamente lento


12

Questo è quello che sto ricevendo ora, con un SSD Crucial MX300 da 750 GB (con l'ultimo firmware [non ci sono ancora aggiornamenti del 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

Vedi quella velocità di lettura del disco bufferizzato !!!! SOOOO SLOWWW !!!! Quando ho installato il mio laptop per la prima volta, stavo vedendo oltre 400 MB / sec, il che andava benissimo con me considerando che si tratta di un laptop più vecchio, e tutto ciò che è crittografato è buono.

Questo è il mio /etc/fstab. Ho abilitato il taglio, il taglio manuale, le funzioni abilitate / disabilitate, il riavvio, tutto. Non riesco a ripristinare quelle velocità elevate:

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

Solo così è chiaro, queste sono le opzioni che sto usando. Ho provato varie combinazioni di loro senza risultati:

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

Qualche consiglio? Questo mi sta facendo impazzire.

Oh, anche, sto eseguendo Ubuntu 16.04 (x64) su un Lenovo T420 con ram da 16 GB e un processore 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

Uscita 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.

Quello che mi sta uccidendo è che STA FUNZIONANDO PER UN MENTRE . Ha funzionato un giorno e poi si è fermato il successivo, e non ho nemmeno fatto nulla (che mi viene in mente) che avrebbe dovuto cambiarlo.

AGGIORNARE

Testato un dispositivo specifico ( /dev/sda1), ma gli stessi risultati lenti:

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

AGGIORNARE

Testato anche su una partizione logica:

 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

ddTest di AGGIORNAMENTO

Questo test mostra che è ancora più lento degli spettacoli di 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

AGGIORNAMENTO: Allineamento delle partizioni

Ecco l'allineamento delle partizioni sul mio 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)

Non sono sicuro di cosa pensare che la partizione 2 non sia allineata: ^ / ma le partizioni 1 e 5 sono però.

Inoltre, ecco le partizioni viste da 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

AGGIORNAMENTO: FISSO? Ho cambiato lo scheduler in uno scheduler noop (invece della scadenza). Sembra che abbia funzionato (fatto cambiando /etc/default/grubper avere la linea:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash elevator=noop"

E quindi aggiornare grub con sudo update-grub2e riavviare.

Aspetterò alcuni giorni per vedere se funziona dopo qualche altro riavvio / utilizzo prima di fare una risposta e accettarla.

La velocità attuale ora dopo aver cambiato lo scheduler:

 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

Le opzioni in fstab sono:

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

inserisci qui la descrizione dell'immagine

AGGIORNAMENTO "FIX"

Dopo averlo usato per un po 'e aver riavviato alcune volte, è TORNA A VELOCE VELOCITÀ :( :( :( :( :( :(

AGGIORNAMENTO - POSSIBILE "FIX"

Ho pensato che forse il mio laptop sta facendo alcune ottimizzazioni per il risparmio della batteria quando è avviato e si sta esaurendo la batteria. Dopo un semplice test di avvio con il caricabatterie collegato, è tornato alle sue velocità davvero elevate. Sono abbastanza sicuro che sia così - per tutto il tempo in cui è stato testato a velocità elevate ho avuto il caricabatterie collegato. Eseguirò qualche altro test per verificare, ma sono abbastanza certo che questo è ciò che ha causato il rallentamento.


Cosa succede se si verifica la velocità per una partizione particolare, ad esempio /dev/sda1invece di /dev/sda?
thomasrutter,

bella domanda - Ci proverò e aggiornerò la mia domanda
d0c_s4vage

Anche sulla partizione logica, ad es/dev/mapper/ubuntu--gnome--vg-root
Thomasrutter,

testato /dev/sda1,
testerò

k, testato entrambi, senza fortuna: 6 /
d0c_s4vage

Risposte:


19

La risposta rapida:

sudo hdparm -B254 /dev/sda

La lunga risposta:

Sembra che Linux o laptop in generale (verificati sia su Lenovo che su Dells) passino automaticamente al livello APM 80h (128) quando avviato a batteria e FEh (254) quando avviato con alimentazione CA.

Per la maggior parte degli SSD, non noterai molte differenze. Gli SSD Lite-on sembrano non supportare affatto la gestione dell'alimentazione e funzionano sempre alla massima velocità. Gli SSD Intel sembrano funzionare a circa il 75% della velocità massima a livello APM 128 e la velocità del 100% a livello APM 254/255. Tuttavia, gli SSD cruciali sembrano funzionare a circa il 6% a piena velocità a livello APM 128 (avviato a batteria) rispetto al livello APM 254 (avviato a corrente alternata).

La cattiva notizia è che non c'è nessun bug e nessun difetto qui. Le specifiche ATA sono sufficientemente vaghe da consentire l'utilizzo di SSD Crucial super slow in modalità APM 128 ed è conforme alle specifiche. Allo stesso modo un laptop predefinito al livello APM 80h (128) è perfettamente ragionevole. La specifica dice solo:

Tabella 106 - APM livelli
COUNT campo Livello
00h Riservato
01h consumo di energia minimo con la modalità standby
livelli di gestione dell'alimentazione 02h..7Fh intermedi con modalità Standby
80h consumo energetico minimo, senza Standby modalità
livelli di gestione dell'alimentazione 81h..FDh intermedi senza Standby mode
FEh massima prestazione
FFh Riservato

(Dalle specifiche ATA )

Ecco la mia esperienza con un SSD Crucial MX300 avviato a batteria:

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

Lo stesso: (si scusa per la mancanza di formattazione, il rientro non sembra funzionare nei commenti) $ sudo hdparm -t / dev / sdb2 / dev / sdb2: il disco buffer temporizzato legge: 76 MB in 3,01 secondi = 25,23 MB / sec $ sudo hdparm -t / dev / sda3 $ sudo hdparm -B / dev / sdb / dev / sdb: APM_level = 128 $ sudo hdparm -B254 / dev / sdb / dev / sdb: impostazione del livello Advanced Power Management su 0xfe (254) APM_level = 254 $ sudo hdparm -t / dev / sdb2 / dev / sdb2: Letture disco buffer temporizzate: 1448 MB in 3,00 secondi = 482,28 MB / sec
KevinButler,

Wow. Wow. Questa risposta è immensamente utile. Ancora una cosa: se usi GNOME, la loro utility Disks in realtà consente di impostare il livello APM sulla sua GUI.
Venemo,

Non penso che sia una risposta completa perché ho lo stesso problema su Samsung SSD 840 EVO 120GB ( APM_level = not supported) su un PC desktop (cioè mai sulla batteria). Devono esserci ragioni più popolari per i rallentamenti della lettura.
cprn

Ottima analisi, anche se non c'è molta differenza con WD ssd, ma è di grande aiuto per capire questo problema. grazie
ajcg

6

Potresti voler controllare /etc/hdparm.conf dove puoi configurare il livello apm per alimentazione e modalità batteria.

Inserisci

apm = 254
apm_battery = 254

su /etc/hdparm.conf


3

Ho costantemente scoperto che ero in grado di raggiungere le alte velocità quando ho avviato il laptop mentre ero collegato. Se avessi avviato il laptop mentre era a batteria scarica, e quindi collegato, ero ancora bloccato alle basse velocità.

Questo potrebbe essere stato qualcosa di specifico per il mio laptop (Lenovo T420). Ho modificato tutte le impostazioni del BIOS per non risparmiare energia, per ottenere le massime prestazioni; tuttavia, ciò non gli ha permesso di avere velocità elevate quando si utilizza solo la batteria. Ho dovuto essere collegato quando ho avviato per avere le alte velocità.

Un'altra nota: posso essere collegato all'avvio e, una volta avviato, scollegare il laptop. Il laptop manterrà le velocità elevate fino all'avvio successivo.

RISPOSTA : essere collegato all'avvio.


0

Usa un kernel abbastanza nuovo (v4.15 +), prova a usare med_power_with_dipm per il tuo Crucial MX300.

LPM min_power non funziona bene per tutti i driver, se med_power_with_dipm funziona per te, dovremmo usare una nuova stranezza per consentirne il fallback a med_power_with_dipm quando min_power viene selezionato.

Inoltre, si prega di presentare un bug su Launchpad, in modo che gli ingegneri del kernel Ubuntu possano risolvere il bug o sollevare il problema a monte.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.