Ubuntu SSD - Був швидким, зараз надзвичайно повільним


12

Це те, що я зараз отримую, з вирішальним SSD MX300 750 Гб (з останньою прошивкою (оновлень прошивки ще немає)).

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

Дивіться, що швидкість читання буферизованого диска !!!! SOOOO SLOWWW !!!! Коли я вперше налаштував свій ноутбук, я бачив понад 400 Мб / сек, що було чудово зі мною, враховуючи, що це старший ноутбук, і все добре зашифроване добре.

Це моє /etc/fstab. Я ввімкнув обрізку, обробку вручну запустив, ввімкнув / вимкнув функції, перезавантажив все. Я не можу домогтися повернення цих швидких швидкостей:

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

Просто, щоб було зрозуміло, це варіанти, якими я користуюся. Я спробував різні комбінації з них безрезультатно:

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

Якісь поради? Це зводить мене з розуму.

Так само, я працюю на Ubuntu 16.04 (x64) на Lenovo T420 з 16 ГБ оперативної пам’яті та процесором 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

Вихід 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.

Що мене вбиває, це те, що він працював на час . Це працювало один день, а потім припинилося на наступний, і я навіть нічого не робив (що я можу придумати), що мало би змінити це.

ОНОВЛЕННЯ

Випробували конкретний пристрій ( /dev/sda1), але такі ж повільні результати:

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

ОНОВЛЕННЯ

Тестовано і на логічному розділі:

 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

ОНОВЛЕННЯ ddтест

Цей тест показує, що він навіть повільніше, ніж показує 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

ОНОВЛЕННЯ: Вирівнювання розділів

Ось вирівнювання розділів на моєму ноутбуці:

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)

Я не впевнений, що думати, що розділ 2 не буде вирівнюватися: ^ /, але розділи 1 і 5 все ж є.

Крім того, ось розділи, як видно з 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

ОНОВЛЕННЯ: ФІКСОВАНО? Я змінив планувальник на плануючий планувальник (замість строку). Це, здається, спрацювало (зробив це, змінивши /etc/default/grubрядок:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash elevator=noop"

А потім оновлення grub sudo update-grub2і перезавантаження.

Я зачекаю кілька днів, щоб побачити, чи працює вона після ще декількох перезавантажень / використання, перш ніж я відповім і прийму це.

Поточні швидкості тепер після зміни планувальника:

 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

Варіанти в fstab:

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

введіть тут опис зображення

ОНОВЛЕННЯ "ВИМОГИ"

Після невеликого використання та перезавантаження декілька разів, ПОВЕРНУТИСЯ МІЖНІЙ ШВИДКИ :( :( :( :( :( :(

ОНОВЛЕННЯ - МОЖЛИВО "FIX"

У мене була думка, що, можливо, мій ноутбук робить деякі оптимізації для економії акумулятора, коли він завантажується та працює від акумулятора. Після одного простого тесту завантаження із зарядним пристроєм, що підключений, він повертається до дійсно високих швидкостей. Я цілком впевнений, що це так - я весь час тестував на швидких швидкостях, у мене був зарядний пристрій. Я проведу ще кілька тестів для перевірки, але я впевнений, що саме це спричинило уповільнення.


Що станеться, якщо ви протестуєте швидкість для певного розділу, наприклад /dev/sda1замість /dev/sda?
thomasrutter

гарне запитання - я спробую це і
оновлю

Також на логічному розділі, наприклад,/dev/mapper/ubuntu--gnome--vg-root
thomasrutter

перевірено /dev/sda1, я теж перевіряю логічний розділ
d0c_s4vage

k, перевірене обоє, не пощастило: 6 /
d0c_s4vage

Відповіді:


19

Швидка відповідь:

sudo hdparm -B254 /dev/sda

Довга відповідь:

Виявляється, що Linux або ноутбуки в цілому (перевірені як у Lenovo, так і в Dells) за замовчуванням до рівня APM 80h (128) при завантаженні на батареї та FEh (254) при завантаженні від живлення змінного струму.

У більшості SSD-дисків різниці ви не помітите. Очевидно, що вбудовані SSD зовсім не підтримують управління живленням і завжди працюють з максимальною швидкістю. Схоже, що SSD-диски Intel працюють на рівні 75% від повної швидкості на рівні APM 128, а 100% - на рівні APM 254/255. Однак, здається, важливі SSD-диски працюють на близько 6% від повної швидкості на рівні 128 APM (завантажується на батареї) у порівнянні з рівнем 254 APM (завантажено на змінного струму).

Погана новина полягає в тому, що тут немає ніякої помилки і жодної вини. Специфікація ATA є достатньо розпливчастою, що вирішальні SSD-диски, які працюють надмірно повільно в режимі 128 APM, дозволені і відповідають стандартам. Так само цілком розумний ноутбук, дефолт до рівня APM 80h (128). Специфікація просто говорить:

Таблиця 106 - APM рівні
COUNT поле Рівень
00h Зарезервоване
01h Мінімальне енергоспоживання в режимі очікування
02h..7Fh Проміжні рівні управління потужністю в режимі очікування
80h Мінімальне енергоспоживання без режиму очікування
81h..FDh Проміжні рівні управління потужністю без режиму очікування
FEh Максимальна продуктивність
FFh Зарезервований

(Від специфікації ATA )

Ось мій досвід роботи з ключовим SSD MX300, завантаженим на батареї:

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

Те саме: (вибачення за відсутність форматування, відступ, здається, не працює в коментарях) $ sudo hdparm -t / dev / sdb2 / dev / sdb2: дисковий завантажений диск зчитується: 76 Мб за 3,01 секунди = 25,23 Мб / сек $ sudo hdparm -t / dev / sda3 $ sudo hdparm -B / dev / sdb / dev / sdb: APM_level = 128 $ sudo hdparm -B254 / dev / sdb / dev / sdb: встановлення рівня розширеного управління потужністю до 0xfe (254) APM_level = 254 $ sudo hdparm -t / dev / sdb2 / dev / sdb2: дисковий буферний диск читає: 1448 МБ за 3,00 секунди = 482,28 Мб / сек
KevinButler

Ого. Просто вау. Ця відповідь надзвичайно корисна. І ще одне: якщо ви використовуєте GNOME, їх утиліта Disks фактично дозволяє встановити рівень APM на його графічному інтерфейсі.
Венемо

Я не думаю, що це повноцінна відповідь, тому що я отримую те саме питання про Samsung SSD 840 EVO 120GB ( APM_level = not supported) на настільному ПК (тобто ніколи не від акумулятора). Повинно бути більше популярних причин уповільнення читання.
cprn

Дуже хороший аналіз, хоча різниця з WD ssd не дуже велика, але це чудова допомога для розуміння цієї проблеми. спасибі
ajcg

6

Ви можете перевірити /etc/hdparm.conf, де ви можете налаштувати рівень програми для живлення та режиму акумулятора.

Додайте

apm = 254
apm_battery = 254

до /etc/hdparm.conf


3

Я послідовно виявляв, що мені вдалося досягти швидких швидкостей, коли я завантажував ноутбук під час підключення. Якщо я завантажував ноутбук, поки він виряджався від акумулятора, а потім підключався, я все ще застряг на повільній швидкості.

Можливо, це було щось специфічне для мого ноутбука (Lenovo T420). Я змінив усі налаштування BIOS, щоб не економити енергію, щоб досягти максимальної продуктивності; однак це не дозволило йому мати швидкісні швидкості лише при використанні акумулятора. Мені все одно доводилося підключатись, коли я завантажувався, щоб мати швидкі швидкості.

Ще одна примітка: я можу бути підключений під час завантаження, а потім після завантаження відключити ноутбук. Ноутбук буде підтримувати високі швидкості, доки він не завантажиться наступного разу.

ВІДПОВІДЬ : Будьте підключені під час завантаження.


0

Будь-ласка, використовуйте нове досить ядро ​​(v4.15 +), спробуйте використовувати med_power_with_dipm для вашого вирішального MX300.

LPM min_power не працює добре для всіх драйверів, якщо med_power_with_dipm працює для вас, ми повинні використати нову химерність, щоб дозволити їй повернутися до med_power_with_dipm, коли min_power буде вибрано.

Крім того, будь-ласка, подайте помилку на Launchpad, щоб інженери ядра Ubuntu могли вирішити помилку або підняти проблему вгору.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.