Ubuntu SSD - był szybki, jest teraz bardzo wolny

12

Właśnie to otrzymuję dzięki dyskowi SSD Crucial MX300 750GB (z najnowszym oprogramowaniem [jeszcze nie ma aktualizacji oprogramowania]).

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

Zobacz prędkość odczytu buforowanego dysku !!!! SOOOO SLOWWW !!!! Kiedy po raz pierwszy konfigurowałem laptopa, widziałem ponad 400 MB / s, co było w porządku, biorąc pod uwagę, że jest to starszy laptop, a wszystko jest zaszyfrowane przez Luks.

To jest mój /etc/fstab. Mam włączone przycinanie, ręcznie uruchamiane przycinanie, włączone / wyłączone funkcje, ponownie uruchomiłem wszystko. Nie mogę odzyskać tak dużych prędkości:

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

Dla jasności, z tych opcji korzystam. Próbowałem różnych kombinacji, ale bezskutecznie:

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

Jakieś wskazówki? Doprowadza mnie to do szału.

Och, także używam Ubuntu 16.04 (x64) na Lenovo T420 z 16 GB RAM i procesorem 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

Wyjście 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.

To, co mnie zabija, to fakt, że TO DZIAŁAŁO PRZEZ . To zadziałało jednego dnia, a potem przestało następnego, a ja nawet nie zrobiłem nic (o czym myślę), co powinno to zmienić.

AKTUALIZACJA

Testowano określone urządzenie ( /dev/sda1), ale takie same powolne wyniki:

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

AKTUALIZACJA

Testowany również na partycji logicznej:

 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 AKTUALIZACJI

Ten test pokazuje, że jest nawet wolniejszy niż pokazuje 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

AKTUALIZACJA: Wyrównanie partycji

Oto wyrównanie partycji na moim laptopie:

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)

Nie jestem pewien, co sądzić o nieprzystosowaniu partycji 2: ^ / ale partycje 1 i 5 są jednak.

Również tutaj są te partycje, jak widać z 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

AKTUALIZACJA: NAPRAWIONO? Zmieniłem harmonogram na harmonogram noop (zamiast terminu). Wygląda na to, że zadziałało (zrobił to zmieniając /etc/default/grublinię:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash elevator=noop"

A następnie aktualizowanie GRUB-a sudo update-grub2i restartowanie.

Poczekam kilka dni, aby zobaczyć, czy to działa po kilku kolejnych uruchomieniach / użyciu, zanim odpowiem i zaakceptuję.

Bieżące prędkości teraz po zmianie harmonogramu:

 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

Opcje w fstab to:

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

wprowadź opis zdjęcia tutaj

AKTUALIZACJA „FIX”

Po kilkukrotnym użyciu go i ponownym uruchomieniu, powraca do POWOLNEJ PRĘDKOŚCI :( :( :( :( :( :(

AKTUALIZACJA - MOŻLIWA „FIX”

Pomyślałem, że być może mój laptop optymalizuje oszczędzanie baterii, gdy jest uruchamiany i rozładowuje się z baterii. Po jednym prostym teście rozruchu z podłączoną ładowarką, powraca on do naprawdę dużych prędkości. Jestem całkiem pewien, że tak jest - przez cały czas testowania przy dużych prędkościach miałem podłączoną ładowarkę. Przeprowadzę jeszcze kilka testów w celu weryfikacji, ale jestem pewien, że to właśnie spowodowało spowolnienie.

d0c_s4vage
źródło
Co się stanie, jeśli przetestujesz prędkość dla konkretnej partycji np. /dev/sda1Zamiast /dev/sda?
thomasrutter
dobre pytanie - spróbuję i zaktualizuję moje pytanie
d0c_s4vage
Również na partycji logicznej, np./dev/mapper/ubuntu--gnome--vg-root
thomasrutter,
przetestowane /dev/sda1, przetestuję też partycję logiczną
d0c_s4vage
k, przetestowano oba, bez powodzenia: 6 /
d0c_s4vage

Odpowiedzi:

19

Szybka odpowiedź:

sudo hdparm -B254 /dev/sda

Długa odpowiedź:

Wygląda na to, że Linux lub ogólnie laptopy (sprawdzone zarówno w Lenovo, jak i Dellach) domyślnie mają poziom APM 80h (128) po uruchomieniu z baterii i FEh (254) po uruchomieniu z zasilania sieciowego.

W przypadku większości dysków SSD nie zauważysz dużej różnicy. Dyski SSD Lite-on wydają się wcale nie obsługiwać zarządzania energią i zawsze działają z maksymalną prędkością. Wydaje się, że dyski SSD firmy Intel pracują z pełną prędkością około 75% na poziomie APM 128 i 100% na poziomie APM 254/255. Wydaje się jednak, że kluczowe dyski SSD pracują z pełną prędkością około 6% na poziomie APM 128 (uruchamiany na baterii) w porównaniu do poziomu APM 254 (uruchamiany na zasilaniu prądem przemiennym).

Zła wiadomość jest taka, że ​​nie ma tutaj błędu i nie ma winy. Specyfikacja ATA jest na tyle niejasna, że ​​dozwolone są dyski SSD Crucial działające bardzo wolno w trybie APM 128 i są zgodne ze specyfikacją. Podobnie laptop domyślnie ustawiony na poziom APM 80h (128) jest całkowicie rozsądny. Specyfikacja mówi tylko:

Tabela 106 - Poziomy APM
Pole COUNT Poziom
00h Zarezerwowany
01h Minimalny pobór mocy w trybie gotowości
02h..7Fh Pośrednie poziomy zarządzania energią w trybie gotowości
80h Minimalne zużycie energii bez trybu gotowości
81h..FDh Pośrednie poziomy zarządzania energią bez trybu gotowości
FEh Maksymalna wydajność
FFh Zarezerwowany

(Ze specyfikacji ATA )

Oto moje doświadczenie z dyskiem Crucial MX300 SSD zasilanym z baterii:

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
źródło
To samo: (przeprosiny za brak formatowania, wcięcie wydaje się nie działać w komentarzach) $ sudo hdparm -t / dev / sdb2 / dev / sdb2: Odczyt buforowanego dysku taktowania: 76 MB w 3,01 sekundy = 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: ustawienie poziomu zaawansowanego zarządzania energią na 0xfe (254) poziom APM = 254 $ sudo hdparm -t / dev / sdb2 / dev / sdb2: Odczyt dysku buforowanego czasowo: 1448 MB w 3,00 sekundy = 482,28 MB / s
KevinButler
Łał. Po prostu łał. Ta odpowiedź jest niezwykle pomocna. Jeszcze jedno: jeśli korzystasz z GNOME, ich narzędzie dyskowe faktycznie pozwala ustawić poziom APM w jego GUI.
Venemo
Nie sądzę, aby była to kompletna odpowiedź, ponieważ mam ten sam problem na Samsung SSD 840 EVO 120GB ( APM_level = not supported) na komputerze stacjonarnym (tj. Nigdy na baterii). Powody spowolnienia odczytu muszą być bardziej popularne.
cprn
Bardzo dobra analiza, chociaż nie ma dużej różnicy z WD ssd, ale bardzo pomaga zrozumieć ten problem. dzięki
ajcg
6

Możesz sprawdzić /etc/hdparm.conf, gdzie możesz skonfigurować poziom apm dla trybu zasilania i baterii.

Dodaj

apm = 254
apm_battery = 254

do /etc/hdparm.conf

christianonline
źródło
3

Konsekwentnie stwierdziłem, że byłem w stanie osiągnąć duże prędkości, gdy uruchamiałem laptopa, gdy byłem podłączony. Gdybym uruchomił laptopa, gdy był rozładowany, a następnie podłączony, nadal utknąłem na wolnych prędkościach.

To mogło być coś specyficznego dla mojego laptopa (Lenovo T420). Zmieniłem wszystkie ustawienia BIOS-u, aby nie oszczędzać energii, aby uzyskać maksymalną wydajność; nie pozwoliło to jednak na uzyskanie dużych prędkości przy korzystaniu wyłącznie z baterii. Wciąż musiałem być podłączony do sieci, kiedy startowałem, aby mieć duże prędkości.

Kolejna uwaga: mogę się podłączyć podczas uruchamiania, a następnie po uruchomieniu odłącz laptop. Laptop zachowa duże prędkości, dopóki nie uruchomi się następnym razem.

ODPOWIEDŹ : Podłącz się podczas uruchamiania.

d0c_s4vage
źródło
0

Użyj wystarczająco nowego jądra (v4.15 +), spróbuj użyć med_power_with_dipm dla twojego Crucial MX300.

LPM min_power nie działa dobrze dla wszystkich sterowników, jeśli med_power_with_dipm działa dla Ciebie, powinniśmy użyć nowego dziwactwa, aby pozwolić mu wrócić do med_power_with_dipm, gdy zostanie wybrana min_power.

Prosimy również o zgłoszenie błędu w Launchpad, aby inżynierowie jądra Ubuntu mogli go rozwiązać lub podnieść go na wyższy poziom.

khfeng
źródło