最近、2台のSanDisk SSDを搭載した新しいPCにLinux Mint 18.2をインストールしました。インストールはエラーなしで完了しました。
この新しいPCで必要なすべてのソフトウェアをセットアップした後、ディスクのパフォーマンスが非常に遅いことに気付きました。特に書き込み速度です。 例、dd
は平均で約3.5MB/sを示しています:
$ dd bs=1M count=256 if=/dev/zero of=test conv=fdatasync
256+0 records in
256+0 records out
268435456 bytes (268 MB, 256 MiB) copied, 61.9192 s, 4.3 MB/s
$ dd bs=1M count=256 if=/dev/urandom of=test conv=fdatasync
256+0 records in
256+0 records out
268435456 bytes (268 MB, 256 MiB) copied, 86.7794 s, 3.1 MB/s
これを診断または修正するためにどこから始めればよいのかわかりません。それ以外の場合は非常に高速なPCをほとんど使用できなくなります。
インストールされているファイルシステムはext4で、noatime,errors=remount-ro
のオプション/etc/fstab
でマウントされています。
Advanced Power Management(hdparm -B 254 /dev/sda
)を下げたり、無効にしたり、ルートfs(fstrim /
)でTRIMを手動で実行したりしました。これらのいずれも違いをもたらすようには見えなかった。
25MiBファイルを元のファイル自体と同じディスクとパーティションにコピーするのに15秒はかからないはずです。
$ stat test
File: 'test'
Size: 26214400 Blocks: 51200 IO Block: 4096 regular file
Device: 801h/2049d Inode: 10880436 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ aps) Gid: ( 1000/ aps)
Access: 2017-10-14 15:48:24.460658106 -0500
Modify: 2017-10-14 15:37:22.577357279 -0500
Change: 2017-10-14 15:37:22.577357279 -0500
Birth: -
$ \time -v cp test test.out
Command being timed: "cp test test.out"
User time (seconds): 0.03
System time (seconds): 0.00
Percent of CPU this job got: 0%
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:14.36
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 2188
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 134
Voluntary context switches: 1452
Involuntary context switches: 1
Swaps: 0
File system inputs: 0
File system outputs: 51200
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
hdparm
は次の詳細を示します。
$ Sudo hdparm -I /dev/sda
/dev/sda:
ATA device, with non-removable media
Model Number: SanDisk SD8TB8U512G1001
Serial Number: 165125801567
Firmware Revision: X4133101
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 0
heads 16 0
sectors/track 63 0
--
LBA user addressable sectors: 268435455
LBA48 user addressable sectors: 1000215216
Logical Sector size: 512 bytes
Physical Sector size: 512 bytes
Logical Sector-0 offset: 0 bytes
device size with M = 1024*1024: 488386 MBytes
device size with M = 1000*1000: 512110 MBytes (512 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: 254
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
* 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
* 64-bit World wide name
* WRITE_UNCORRECTABLE_EXT command
* {READ,WRITE}_DMA_EXT_GPL commands
* Segmented DOWNLOAD_MICROCODE
unknown 119[8]
* 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)
* reserved 69[4]
* DOWNLOAD MICROCODE DMA command
* WRITE BUFFER DMA command
* READ BUFFER DMA command
* Data Set Management TRIM supported (limit 8 blocks)
* Deterministic read ZEROs after TRIM
Security:
Master password revision code = 1
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: 5001b448b48ce759
NAA : 5
IEEE OUI : 001b44
Unique ID : 8b48ce759
Device Sleep:
DEVSLP Exit Timeout (DETO): 30 ms (drive)
Minimum DEVSLP Assertion Time (MDAT): 30 ms (drive)
Checksum: correct
PCにインストールされている2番目のSSDは現在フォーマットされていません。この現在のMintのユーザースペースのインストール/設定をコピーしたまま、この問題を解決する方法で他のディスクを準備することはできますか?この低速ディスクにセットアップされているすべてのソフトウェアを再インストールする必要があるのは、悪夢です。
編集
inxi
のシステム仕様:
$ inxi -Fz
System: Host: dapadev Kernel: 4.8.0-53-generic i686 (32 bit) Desktop: Cinnamon 3.4.3
Distro: Linux Mint 18.2 Sonya
Machine: System: LENOVO product: 30B7000YUS v: ThinkStation P710
Mobo: LENOVO model: 1030 v: SBB0J05441 WIN 3305058809791 Bios: LENOVO v: S01KT40A date: 05/04/2017
CPU: Octa core Intel Xeon E5-2620 v4 (-HT-MCP-) cache: 20480 KB
clock speeds: max: 3000 MHz 1: 2099 MHz 2: 2100 MHz 3: 2120 MHz 4: 2100 MHz 5: 2099 MHz 6: 2100 MHz
7: 2299 MHz 8: 2100 MHz
Graphics: Card: NVIDIA GK107GL [Quadro K420]
Display Server: X.Org 1.18.4 drivers: nvidia (unloaded: fbdev,vesa,nouveau)
Resolution: [email protected]
GLX Renderer: Quadro K420/PCIe/SSE2 GLX Version: 4.5.0 NVIDIA 375.66
Audio: Card-1 NVIDIA GK107 HDMI Audio Controller driver: snd_hda_intel Sound: ALSA v: k4.8.0-53-generic
Card-2 Intel C610/X99 series HD Audio Controller driver: snd_hda_intel
Network: Card-1: Intel Ethernet Connection (2) I218-LM driver: e1000e
IF: eth0 state: up speed: 1000 Mbps duplex: full mac: <filter>
Card-2: Intel I210 Gigabit Network Connection driver: igb
IF: eth1 state: down mac: <filter>
Card-3: Intel I210 Gigabit Network Connection driver: igb
IF: eth2 state: up speed: 100 Mbps duplex: full mac: <filter>
Drives: HDD Total Size: 2024.4GB (2.1% used) ID-1: /dev/sda model: SanDisk_SD8TB8U5 size: 512.1GB
ID-2: /dev/sdb model: SanDisk_SD8TB8U5 size: 512.1GB ID-3: /dev/sdc model: ST1000DM003 size: 1000.2GB
Partition: ID-1: / size: 438G used: 8.9G (3%) fs: ext4 dev: /dev/sda1
ID-2: swap-1 size: 34.24GB used: 0.00GB (0%) fs: swap dev: /dev/sda5
RAID: No RAID devices: /proc/mdstat, md_mod kernel module present
Sensors: System Temperatures: cpu: 43.0C mobo: N/A gpu: 53C
Fan Speeds (in rpm): cpu: N/A
Info: Processes: 275 Uptime: 3 days Memory: 1887.9/32323.8MB Client: Shell (bash) inxi: 2.2.35
lsblk
からのドライブの詳細:
$ lsblk -Sfalt
NAME HCTL TYPE VENDOR MODEL REV TRAN NAME FSTYPE LABEL UUID MOUNTPOINT NAME ALIGNMENT MIN-IO OPT-IO PHY-SEC LOG-SEC ROTA SCHED RQ-SIZE RA WSAME
sdb 3:0:0:0 disk ATA SanDisk SD8TB8U5 3101 sata sdb sdb 0 512 0 512 512 0 deadline 128 128 0B
sr0 6:0:0:0 rom PLDS DVD-RW DH16AFSH DL3M sata sr0 sr0 0 512 0 512 512 1 deadline 128 128 0B
sdc 4:0:0:0 disk ATA ST1000DM003-1SB1 CC62 sata sdc sdc 0 4096 0 4096 512 1 deadline 128 128 0B
sda 2:0:0:0 disk ATA SanDisk SD8TB8U5 3101 sata sda sda 0 512 0 512 512 0 deadline 128 128 0B
smartctl
からのドライブの詳細:
$ Sudo smartctl -a /dev/sda
smartctl 6.5 2016-01-24 r4214 [i686-linux-4.8.0-53-generic] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Device Model: SanDisk SD8TB8U512G1001
Serial Number: 165125801567
LU WWN Device Id: 5 001b44 8b48ce759
Firmware Version: X4133101
User Capacity: 512,110,190,592 bytes [512 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-2 T13/2015-D revision 3
SATA Version is: SATA 3.2, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is: Sat Oct 14 16:05:13 2017 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: ( 16) The self-test routine was aborted by
the Host.
Total time to complete Offline
data collection: ( 0) 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: ( 10) minutes.
SMART Attributes Data Structure revision number: 4
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
5 Reallocated_Sector_Ct 0x0032 100 100 --- Old_age Always - 0
9 Power_On_Hours 0x0032 100 100 --- Old_age Always - 519
12 Power_Cycle_Count 0x0032 100 100 --- Old_age Always - 309
170 Unknown_Attribute 0x0032 100 100 --- Old_age Always - 0
171 Unknown_Attribute 0x0032 100 100 --- Old_age Always - 0
172 Unknown_Attribute 0x0032 100 100 --- Old_age Always - 0
173 Unknown_Attribute 0x0032 100 100 --- Old_age Always - 0
174 Unknown_Attribute 0x0032 100 100 --- Old_age Always - 48
178 Used_Rsvd_Blk_Cnt_Chip 0x0032 100 100 --- Old_age Always - 0
180 Unused_Rsvd_Blk_Cnt_Tot 0x0033 100 100 010 Pre-fail Always - 100
184 End-to-End_Error 0x0033 100 100 097 Pre-fail Always - 0
187 Reported_Uncorrect 0x0032 100 100 --- Old_age Always - 0
194 Temperature_Celsius 0x0022 068 033 --- Old_age Always - 32 (Min/Max 23/33)
199 UDMA_CRC_Error_Count 0x0032 100 100 --- Old_age Always - 0
233 Media_Wearout_Indicator 0x0033 100 100 001 Pre-fail Always - 16772743
234 Unknown_Attribute 0x0032 100 100 --- Old_age Always - 90
241 Total_LBAs_Written 0x0030 253 253 --- Old_age Offline - 101
242 Total_LBAs_Read 0x0030 253 253 --- Old_age Offline - 13
249 Unknown_Attribute 0x0032 100 100 --- Old_age Always - 40
SMART Error Log Version: 1
No Errors Logged
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Short offline Aborted by Host 00% 519 -
Selective Self-tests/Logging not supported
Linux Mint 18.2 32ビットをLinux Mint 18.2 64ビットに置き換えると、問題に対する適切な修正よりも回避策が多くなり、非常に遅い書き込み速度が永続的に解決されました。
もっと詳しく興味がありますか?ああ、親愛なる読者、読んでください!
特定の32ビットコンパイラツールチェーンを使用する必要があります。これにより、32ビットOSをインストールするのが最適だと思い、Linux Mint Cinnamon(カーネル4.8)を選択しました。 Linux。
起動直後、200 MiB /秒を超える高速書き込み。 1時間後、5 MiB /秒未満に戻ります。
まったく同じ動作がManjaro Linux 32ビット(カーネル4.9 LTS、および一部の4.10も)を実行しているときに観察されました。
そこで、Linux Mint 64ビット(ここでも同じ4.8カーネル)をインストールしてみました。そして今、ディスクの書き込みは高速で始まり、高速のままです。ディスクの問題はまったくありません。これは、特に32ビット環境用のSSDドライバーの1つであるカーネルバグとしてすぐに私を襲います。
幸い、apt
にはx86ライブラリの確実なコレクションをインストールするメタパッケージia32-libs
があり、32ビットコンパイラツールチェーンを実行するのにほぼ十分でした-手動で1つ追加でインストールする必要がありましたlib。
不思議に思う人にとって、これはLinuxカーネルのバグであり、 4.x +/i386/16 + RAMでのディスク書き込みが3.x と比べて100倍遅い
(およびここ: 32ビットカーネルHDDの書き込み速度が遅い 、およびここ: アップタイム後のディスク書き込みが遅い、32ビット/ 16 + RAM/4 +のみカーネル )
12GB(8GB?)以上のRAM(有効)を持つ32ビットカーネルでトリガーされます。これは明らかにカーネルv4.2.0で導入され、まだ解決されていません(RedHatは軽減パッチを提供しているようですが、アップストリームにしたことはありません)。
1人のユーザーがGRUB
cmdlineオプションでこれを設定することにより回避策を見つけました:
mem=12G
(またはそれより低い任意の値)しかし、ご想像のとおり、そのセッションで使用可能なメモリの量を制限します。
個人的に見つけた設定vm.highmem_is_dirtyable=1
は機能します(32ビットカーネルをまだ使用していたときは、このオプションは64ビットカーネルには存在しません)。次のコマンドを実行してテストできます。
sysctl -w vm.highmem_is_dirtyable=1
これが問題に関する素晴らしい記事です: PAEカーネルによる極端なI/Oの速度低下
SSDを使用すると、少なくとも100 MiB /秒の速度が確実に表示されます。通常はもっと。
質問の2番目の部分では、はい、インストールの正確な内容を新しいディスクに複製できます。
遅いディスクを診断するには、他の人が提案したことに加えて、いくつかのことを試すことができます。
smartctl -a
疑わしいことが報告されているかどうかを確認するblkdiscard
または 完全消去 を試してください(一部の古い/低品質のSSDは、パフォーマンスの低下により、依然として深刻な影響を受ける可能性があります)