Ubuntu SSD - был быстрым, сейчас очень медленным


12

Это то, что я получаю сейчас, с SSD Crucial 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

ОБНОВЛЕНИЕ: ИСПРАВЛЕНО? Я изменил планировщик на планировщик noop (вместо крайнего срока). Это, кажется, сработало (сделал это, изменив /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" ОБНОВЛЕНИЕ

После его использования и перезагрузки несколько раз, это НАЗАД НА МЕДЛЕННЫЕ СКОРОСТИ :( :( :( :( :( :(

ОБНОВЛЕНИЕ - ВОЗМОЖНО "FIX"

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


Что произойдет, если вы проверите скорость для определенного раздела, например, /dev/sda1вместо /dev/sda?
Томасрутер

хороший вопрос - я попробую и
обновлю

Также на логическом разделе, например/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 вы не заметите большой разницы. Облегченные твердотельные накопители вообще не поддерживают управление питанием и всегда работают на максимальной скорости. Похоже, твердотельные накопители Intel работают на полной скорости около 75% на уровне APM 128 и на скорости 100% на уровне APM 254/255. Однако ключевые SSD работают на полной скорости около 6% на уровне APM 128 (загружается от батареи) по сравнению с уровнем APM 254 (загружается от сети переменного тока).

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

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

(Из спецификации ATA )

Вот мой опыт работы с Crucial 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

То же самое: (извините за отсутствие форматирования, отступ, похоже, не работает в комментариях) 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 в его графическом интерфейсе.
Venemo

Я не думаю, что это полный ответ, потому что я получаю ту же проблему на Samsung SSD 840 EVO 120GB ( APM_level = not supported) на настольном ПК (то есть никогда не на батарее). Должны быть более популярные причины замедления чтения.
CpRn

Очень хороший анализ, хотя с WD ssd нет большой разницы, но это помогает понять эту проблему. спасибо
ajcg

6

Вы можете проверить /etc/hdparm.conf, где вы можете настроить уровень apm для режима питания и батареи.

Добавить

apm = 254
apm_battery = 254

в /etc/hdparm.conf


3

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

Возможно, это было что-то особенное для моего ноутбука (Lenovo T420). Я изменил все настройки BIOS, чтобы не экономить энергию, чтобы добиться максимальной производительности; однако, это не позволило ему иметь высокие скорости при использовании только батареи. Я все еще должен был быть включен, когда я загружался, чтобы иметь быстрые скорости.

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

ОТВЕТ : подключайтесь при загрузке.


0

Пожалуйста, используйте достаточно новое ядро ​​(v4.15 +), попробуйте использовать med_power_with_dipm для вашего Crucial 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.