Ubuntu SSD - Était rapide, est maintenant extrêmement lent


12

C'est ce que je reçois maintenant, avec un SSD Crucial MX300 750 Go (avec le dernier firmware [il n'y a pas encore de mises à jour du 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

Voir cette vitesse de lecture du disque tamponné !!!! SOOOO SLOWWW !!!! Lorsque j'ai configuré mon ordinateur portable pour la première fois, je voyais plus de 400 Mo / s, ce qui me convenait parfaitement étant donné qu'il s'agit d'un ordinateur portable plus ancien, et que tout est crypté luks est bien.

Ceci est mon /etc/fstab. J'ai activé le trim, exécuté manuellement le trim, activé / désactivé les fonctionnalités, redémarré, tout. Je ne peux pas faire revenir ces vitesses rapides:

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

Juste pour que ce soit clair, ce sont les options que j'utilise. J'ai essayé différentes combinaisons d'entre eux en vain:

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

Des conseils? Ça me rend fou.

Oh, aussi, j'utilise Ubuntu 16.04 (x64) sur un Lenovo T420 avec 16 Go de RAM et un processeur 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

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

Ce qui me tue, c'est que ça fonctionnait depuis un certain temps . Cela a fonctionné un jour, puis s'est arrêté le lendemain, et je n'ai même rien fait (à quoi je peux penser) qui aurait dû le changer.

METTRE À JOUR

Testé un appareil spécifique ( /dev/sda1), mais mêmes résultats lents:

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

METTRE À JOUR

Testé également sur une partition logique:

 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

MISE À JOUR ddTest

Ce test montre qu'il est encore plus lent que ne le montre 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

MISE À JOUR: Alignement de partition

Voici l'alignement de la partition sur mon ordinateur portable:

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)

Je ne sais pas quoi penser de la partition 2 non alignée: ^ / mais les partitions 1 et 5 le sont cependant.

En outre, voici les partitions vues depuis 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

MISE À JOUR: FIXE? J'ai changé le planificateur en un planificateur noop (au lieu de la date limite). Cela semble avoir fonctionné (l'a fait en changeant /etc/default/grubpour avoir la ligne:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash elevator=noop"

Et puis mettre à jour grub avec sudo update-grub2et redémarrer.

Je vais attendre quelques jours pour voir si cela fonctionne après quelques redémarrages / utilisation avant de répondre et de l'accepter.

Vitesses actuelles maintenant après avoir changé le planificateur:

 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

Les options de fstab sont:

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

entrez la description de l'image ici

MISE À JOUR "FIX"

Après l'avoir utilisé un peu et avoir redémarré plusieurs fois, c'est de retour aux vitesses lentes :( :( :( :( :( :(

MISE À JOUR - POSSIBLE "FIX"

Je pensais que mon ordinateur portable faisait peut-être des optimisations pour économiser la batterie lorsqu'il était démarré et fonctionnait à partir de la batterie. Après un simple test de démarrage avec le chargeur branché, il revient à ses vitesses très rapides. Je suis assez certain que c'est le cas - tout le temps qu'il testait à des vitesses rapides, je faisais brancher le chargeur. Je ferai encore quelques tests pour vérifier, mais je suis assez certain que c'est ce qui a causé le ralentissement.


Que se passe-t-il si vous testez la vitesse d'une partition particulière, par exemple /dev/sda1au lieu de /dev/sda?
thomasrutter

bonne question - je vais l'essayer et mettre à jour ma question
d0c_s4vage

Également sur la partition logique, par exemple/dev/mapper/ubuntu--gnome--vg-root
thomasrutter

testé /dev/sda1, va aussi tester la partition logique
d0c_s4vage

k, testé les deux, pas de chance: 6 /
d0c_s4vage

Réponses:


19

La réponse rapide:

sudo hdparm -B254 /dev/sda

La réponse longue:

Il semble que Linux ou les ordinateurs portables en général (vérifiés sur Lenovo et Dells) par défaut au niveau APM 80h (128) lorsqu'ils sont démarrés sur batterie et FEh (254) lorsqu'ils sont démarrés sur secteur.

Pour la plupart des SSD, vous ne remarquerez pas beaucoup de différence. Les SSD Lite-on ne semblent pas du tout prendre en charge la gestion de l'alimentation et fonctionnent toujours à la vitesse maximale. Les SSD Intel semblent fonctionner à environ 75% de la vitesse maximale au niveau APM 128 et à 100% de la vitesse au niveau APM 254/255. Cependant, les SSD cruciaux semblent fonctionner à environ 6% de la pleine vitesse au niveau APM 128 (démarré sur batterie) par rapport au niveau APM 254 (démarré sur secteur).

La mauvaise nouvelle est qu'il n'y a pas de bug ni de faute ici. La spécification ATA est suffisamment vague pour que les SSD Crucial fonctionnant très lentement en mode APM 128 soient autorisés et conformes à la spécification. De même, un ordinateur portable par défaut au niveau APM 80h (128) est parfaitement raisonnable. La spécification dit simplement:

Tableau 106 - Niveaux APM
Champ COUNT Niveau
00h Réservé
01h Consommation d'énergie minimale avec mode veille
02h..7Fh Niveaux de gestion d'alimentation intermédiaires avec mode veille
80h Consommation d'énergie minimale sans mode veille
81h..FDh Niveaux de gestion d'énergie intermédiaires sans mode veille
FEh Performances maximales
FFh Réservé

(D'après les spécifications ATA )

Voici mon expérience avec un SSD Crucial MX300 démarré sur batterie:

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

Idem: (excuses pour le manque de formatage, le retrait ne semble pas fonctionner dans les commentaires) $ sudo hdparm -t / dev / sdb2 / dev / sdb2: Disque en mémoire tampon de lecture: 76 Mo en 3,01 secondes = 25,23 Mo / sec $ sudo hdparm -t / dev / sda3 $ sudo hdparm -B / dev / sdb / dev / sdb: APM_level = 128 $ sudo hdparm -B254 / dev / sdb / dev / sdb: définition du niveau avancé de gestion de l'alimentation sur 0xfe (254) APM_level = 254 $ sudo hdparm -t / dev / sdb2 / dev / sdb2: lecture du disque tampon temporisé: 1448 Mo en 3,00 secondes = 482,28 Mo / sec
KevinButler

Sensationnel. Juste wow. Cette réponse est extrêmement utile. Encore une chose: si vous utilisez GNOME, leur utilitaire Disks permet en fait de définir le niveau APM sur son interface graphique.
Venemo

Je ne pense pas que ce soit une réponse complète car j'obtiens le même problème sur le Samsung SSD 840 EVO 120GB ( APM_level = not supported) sur un PC de bureau (c'est-à-dire jamais sur batterie). Il doit y avoir des raisons plus populaires pour les ralentissements de lecture.
cprn

Très bonne analyse, bien qu'il n'y ait pas beaucoup de différence avec WD ssd, mais c'est une grande aide pour comprendre ce problème. merci
ajcg

6

Vous voudrez peut-être vérifier /etc/hdparm.conf où vous pouvez configurer le niveau apm pour le mode d'alimentation et de batterie.

Ajouter

apm = 254
apm_battery = 254

à /etc/hdparm.conf


3

J'ai toujours constaté que je pouvais atteindre les vitesses rapides lorsque j'ai démarré l'ordinateur portable tout en étant branché. Si j'ai démarré l'ordinateur portable alors qu'il fonctionnait sur batterie, puis branché, j'étais toujours bloqué sur les vitesses lentes.

C'était peut-être quelque chose de spécifique à mon ordinateur portable (Lenovo T420). J'ai changé tous les paramètres du BIOS pour ne pas économiser d'énergie, pour des performances maximales; cependant, cela ne lui a pas permis d'avoir des vitesses rapides lorsqu'il n'utilisait que la batterie. Je devais encore être branché quand j'ai démarré pour avoir des vitesses rapides.

Autre remarque: je peux être branché lorsque je démarre, puis une fois démarré, débrancher l'ordinateur portable. L'ordinateur portable gardera les vitesses rapides jusqu'à ce qu'il démarre la prochaine fois.

RÉPONSE : Soyez branché au démarrage.


0

Veuillez utiliser un noyau suffisamment nouveau (v4.15 +), essayez d'utiliser med_power_with_dipm pour votre Crucial MX300.

LPM min_power ne fonctionne pas bien pour tous les pilotes, si med_power_with_dipm fonctionne pour vous, nous devrions utiliser un nouveau caprice pour le laisser retomber sur med_power_with_dipm lorsque min_power est sélectionné.

Veuillez également déposer un bogue sur Launchpad, afin que les ingénieurs du noyau Ubuntu puissent résoudre le bogue ou soulever le problème en amont.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.