У меня есть sata ssd, который, когда я использую в Windows (двойная загрузка), так же рекламируется, имеет производительность чтения и записи около 500 МБ / s, но, с другой стороны, когда я использую его в ubuntu (20.4-20.10), производительность записи не превышает 100 МБ / с, хотя скорость чтения нормальная. Итак, я подумал, может быть, это какая-то магия планировщика ввода-вывода. Поэтому я решил изменить его, и даже после создания правила udev для sda с атрибутом планировщика ввода-вывода «none» (пробовал также kyber, mq-deadline по умолчанию) никаких улучшений нет. Итак, чтобы разобраться в проблеме, я использовал dd
с мониторингом iotop
, чтобы выяснить, что на самом деле происходит, то, что я обнаружил, было совершенно неожиданным. Он действительно поднялся до 500 МБ / с только на небольшой промежуток времени, за исключением того, что он никогда не превышал 100 МБ / с, а иногда даже падал ниже 20 МБ / с. И да, APM отключен (255). Теперь я понятия не имею, что мне делать, чтобы повысить производительность SSD.
Вот некоторая информация:
$ sudo hdparm -I /dev/sda
/dev/sda:
ATA device, with non-removable media
Model Number: TS240GSSD220S
Serial Number: F528440890
Firmware Revision: R0510A0
Media Serial Num:
Media Manufacturer:
Transport: Serial, ATA8-AST, SATA 1.0a, SATA II Extensions, SATA Rev 2.5, SATA Rev 2.6, SATA Rev 3.0
Standards:
Used: unknown (minor revision code 0x0110)
Supported: 9 8 7 6 5
Likely used: 9
Configuration:
Logical max current
cylinders 16383 16383
heads 16 16
sectors/track 63 63
--
CHS current addressable sectors: 16514064
LBA user addressable sectors: 268435455
LBA48 user addressable sectors: 468862128
Logical Sector size: 512 bytes
Physical Sector size: 512 bytes
Logical Sector-0 offset: 0 bytes
device size with M = 1024*1024: 228936 MBytes
device size with M = 1000*1000: 240057 MBytes (240 GB)
cache/buffer size = unknown
Form Factor: 2.5 inch
Nominal Media Rotation Rate: Solid State Device
Capabilities:
LBA, IORDY(can be disabled)
Queue depth: 32
Standby timer values: spec'd by Standard, no device specific minimum
R/W multiple sector transfer: Max = 1 Current = 1
Advanced power management level: disabled
DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6
Cycle time: min=120ns recommended=120ns
PIO: pio0 pio1 pio2 pio3 pio4
Cycle time: no flow control=120ns IORDY flow control=120ns
Commands/features:
Enabled Supported:
* SMART feature set
Security Mode feature set
* Power Management feature set
* Write cache
* Look-ahead
* Host Protected Area feature set
* WRITE_BUFFER command
* READ_BUFFER command
* DOWNLOAD_MICROCODE
Advanced Power Management feature set
SET_MAX security extension
* 48-bit Address feature set
* Mandatory FLUSH_CACHE
* FLUSH_CACHE_EXT
* SMART error logging
* SMART self-test
* General Purpose Logging feature set
* WRITE_{DMA|MULTIPLE}_FUA_EXT
* 64-bit World wide name
* {READ,WRITE}_DMA_EXT_GPL commands
* Segmented DOWNLOAD_MICROCODE
* Gen1 signaling speed (1.5Gb/s)
* Gen2 signaling speed (3.0Gb/s)
* Gen3 signaling speed (6.0Gb/s)
* Native Command Queueing (NCQ)
* Phy event counters
* READ_LOG_DMA_EXT equivalent to READ_LOG_EXT
* DMA Setup Auto-Activate optimization
Device-initiated interface power management
* Software settings preservation
Device Sleep (DEVSLP)
* SANITIZE feature set
* BLOCK_ERASE_EXT command
* DOWNLOAD MICROCODE DMA command
* WRITE BUFFER DMA command
* READ BUFFER DMA command
* Data Set Management TRIM supported (limit 8 blocks)
* Deterministic read data after TRIM
Security:
Master password revision code = 65534
supported
not enabled
not locked
frozen
not expired: security count
supported: enhanced erase
2min for SECURITY ERASE UNIT. 2min for ENHANCED SECURITY ERASE UNIT.
Logical Unit WWN Device Identifier: 57c3548185201a3a
NAA : 5
IEEE OUI : 7c3548
Unique ID : 185201a3a
Device Sleep:
DEVSLP Exit Timeout (DETO): 90 ms (drive)
Minimum DEVSLP Assertion Time (MDAT): 26 ms (drive)
Checksum: correct
inxi -Fxz
$ inxi -Fxz
System:
Kernel: 5.8.0-26-generic x86_64 bits: 64 compiler: gcc v: 10.2.0 Desktop: N/A
Distro: Ubuntu 20.10 (Groovy Gorilla)
Machine:
Type: Desktop Mobo: Micro-Star model: X470 GAMING PLUS MAX (MS-7B79) v: 3.0
serial: <filter> UEFI: American Megatrends v: H.60 date: 06/11/2020
CPU:
Info: 6-Core model: AMD Ryzen 5 3600 bits: 64 type: MT MCP arch: Zen 2
L2 cache: 3072 KiB
flags: avx avx2 lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
bogomips: 86399
Speed: 3602 MHz min/max: N/A Core speeds (MHz): 1: 3602 2: 3596 3: 3600 4: 3567
5: 3520 6: 3498 7: 3585 8: 3587 9: 3614 10: 3613 11: 3844 12: 3498
Graphics:
Device-1: AMD Ellesmere [Radeon RX 470/480/570/570X/580/580X/590]
vendor: Sapphire Limited driver: amdgpu v: kernel bus ID: 27:00.0
Display: x11 server: X.Org 1.20.9 driver: amdgpu,ati
unloaded: fbdev,modesetting,vesa resolution: 1366x768~60Hz
OpenGL:
renderer: Radeon RX 570 Series (POLARIS10 DRM 3.38.0 5.8.0-26-generic LLVM 11.0.0)
v: 4.6 Mesa 20.2.1 direct render: Yes
Audio:
Device-1: AMD Ellesmere HDMI Audio [Radeon RX 470/480 / 570/580/590]
vendor: Sapphire Limited driver: snd_hda_intel v: kernel bus ID: 27:00.1
Device-2: AMD Starship/Matisse HD Audio vendor: Micro-Star MSI driver: snd_hda_intel
v: kernel bus ID: 29:00.4
Sound Server: ALSA v: k5.8.0-26-generic
Network:
Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet
vendor: Micro-Star MSI driver: r8169 v: kernel port: f000 bus ID: 22:00.0
IF: enp34s0 state: up speed: 100 Mbps duplex: full mac: <filter>
Drives:
Local Storage: total: 1.13 TiB used: 156.29 GiB (13.5%)
ID-1: /dev/sda vendor: Transcend model: TS240GSSD220S size: 223.57 GiB temp: 51 C
ID-2: /dev/sdb vendor: Toshiba model: HDWD110 size: 931.51 GiB temp: 38 C
Partition:
ID-1: / size: 188.22 GiB used: 51.75 GiB (27.5%) fs: ext4 dev: /dev/sda5
Swap:
ID-1: swap-1 type: file size: 16.00 GiB used: 0 KiB (0.0%) file: /swapfile
Обновление: я получил, чтобы он не зависал. и последующий запуск hdparm -I
дает только одно отличие: теперь перед набором функций APM стоит звездочка (*). Я не знаю, что это значит
Вы обрезаете разделы? Я думаю, что Windows делает это автоматически, но в Ubuntu вы должны сделать это самостоятельно (это также можно сделать автоматически, ищите, и вы найдете, как).
sudo fstrim -v /
Это обрежет раздел, смонтированный в /