У кого-нить есть логичное объяснение проблемам со скоростью?
Сразу скажу что я этот ssd уже мысленно похоронил. Но вдруг кто скажет как его оживить... Биос последний, ОС арчик amd64, ядро 3.8.3, но на 3.7 та же байда наблюдалась. Режим ahci.
Итак, имеется ноут asus ux32vd с распаянным ssd i100 на 32гектара. Производителем заявлена скорость работы под 300-400метров. Проверяем на ext4 с rw,relatime,discard,data=writeback,barrier=0,nobh:
ux32vd@~$ dd if=/dev/zero of=~/test bs=1M count=100 conv=fdatasync
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 32.3032 s, 3.2 MB/s
(barrier=0,nobh и data=writeback не влияют на скорость, но немного облегчили подвисоны. Сейчас ещё сделал elevator=noop, но это тоже скорости на запись не прибавило).
Надо ли говорить что ноут во время записи на диск просто умирает. Что интересно, ОС-то я как-то поставил и работал без проблем, вероятно когда ноут был новый проблемы не было.
Я пытался писать на raw-раздел, результат был такой же. А тут случайно промахнулся и вместо /dev/sda1 указал /dev/sda. И, о чудо:
[root@ux32vd ~]# dd if=/dev/zero of=/dev/sda bs=1M count=100 conv=fdatasync skip=4
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 1.20484 s, 87.0 MB/s
Чудо омрачнилось крайней нестабильностью результата:
[root@ux32vd ~]# swapoff /dev/sda1
[root@ux32vd ~]# dd if=/dev/zero of=/dev/sda bs=1M count=100 conv=fdatasync skip=4
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 4.67787 s, 22.4 MB/s
[root@ux32vd ~]# dd if=/dev/zero of=/dev/sda bs=1M count=100 conv=fdatasync skip=4
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 2.21489 s, 47.3 MB/s
[root@ux32vd ~]# dd if=/dev/zero of=/dev/sda bs=1M count=100 conv=fdatasync skip=4
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 1.37613 s, 76.2 MB/s
[root@ux32vd ~]# dd if=/dev/zero of=/dev/sda bs=1M count=100 conv=fdatasync skip=4
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 1.20484 s, 87.0 MB/s
[root@ux32vd ~]# sync
[root@ux32vd ~]# dd if=/dev/zero of=/dev/sda bs=1M count=100 conv=fdatasync skip=5
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 1.21545 s, 86.3 MB/s
[root@ux32vd ~]# dd if=/dev/zero of=/dev/sda bs=1M count=100 conv=fdatasync skip=5
(и игрался со skip/seek чтобы понять не влияет ли как-то смещение данных, сходу закономерности не обнаружил. Ну и я тут перепутал skip с seek). Скорость гуляет в разы, может и до 16 метров просесть.
Есть шанс вылечить?
Данные смарт:
[root@ux32vd ~]# smartctl -a /dev/sda
smartctl 6.0 2012-10-10 r3643 [x86_64-linux-3.8.1-pf] (local build)
Copyright (C) 2002-12, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Device Model: SanDisk SSD i100 32GB
Serial Number: 121700101194
LU WWN Device Id: 5 001b44 76179284a
Firmware Version: 11.50.00
User Capacity: 32,017,047,552 bytes [32.0 GB]
Sector Size: 512 bytes logical/physical
Rotation Rate: Solid State Device
Device is: Not in smartctl database [for details use: -P showall]
ATA Version is: ACS-2 T13/2015-D revision 3
SATA Version is: SATA 3.0, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is: Sun Mar 17 22:48:50 2013 CET
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: ( 120) seconds.
Offline data collection
capabilities: (0x11) SMART execute Offline immediate.
No Auto Offline data collection support.
Suspend Offline collection upon new
command.
No Offline surface scan supported.
Self-test supported.
No Conveyance Self-test supported.
No 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: ( 8) minutes.
SMART Attributes Data Structure revision number: 1
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
5 Reallocated_Sector_Ct 0x0002 100 100 000 Old_age Always - 0
9 Power_On_Hours 0x0002 100 100 000 Old_age Always - 961
12 Power_Cycle_Count 0x0002 100 100 000 Old_age Always - 472
171 Unknown_Attribute 0x0002 100 100 000 Old_age Always - 0
172 Unknown_Attribute 0x0002 100 100 000 Old_age Always - 0
173 Unknown_Attribute 0x0002 100 100 000 Old_age Always - 45
174 Unknown_Attribute 0x0002 100 100 000 Old_age Always - 163
187 Reported_Uncorrect 0x0002 100 100 000 Old_age Always - 0
230 Unknown_SSD_Attribute 0x0002 100 100 000 Old_age Always - 150
232 Available_Reservd_Space 0x0003 100 100 005 Pre-fail Always - 0
234 Unknown_Attribute 0x0002 100 100 000 Old_age Always - 118
241 Total_LBAs_Written 0x0002 100 100 000 Old_age Always - 1103882629
242 Total_LBAs_Read 0x0002 100 100 000 Old_age Always - 666393360
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]
Selective Self-tests/Logging not supported