web-dev-qa-db-ja.com

新しいLinux Mint 18.2インストールでSSD(SanDisk SD8TB8U5)の書き込み速度が非常に遅い

最近、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
7
ardnew

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。

0
ardnew

不思議に思う人にとって、これは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の速度低下

0
insaner

SSDを使用すると、少なくとも100 MiB /秒の速度が確実に表示されます。通常はもっと。

質問の2番目の部分では、はい、インストールの正確な内容を新しいディスクに複製できます。

遅いディスクを診断するには、他の人が提案したことに加えて、いくつかのことを試すことができます。

  • sda/sdbなどのタイムアウトに関するメッセージについては、dmesgを参照してください
  • ケーブルを交換する
  • 別のコンピュータでディスクを試します
  • 別のディストリビューション(ライブUSBなど)を起動し、別のカーネルでディスク速度を確認する
  • 同じケーブル、同じポート、同じディストリビューションで別のSSDを試す
  • smartctl -a疑わしいことが報告されているかどうかを確認する
  • blkdiscardまたは 完全消去 を試してください(一部の古い/低品質のSSDは、パフォーマンスの低下により、依然として深刻な影響を受ける可能性があります)
  • sSDファームウェアを更新できるかどうかを確認します
  • メーカーの診断ツールを試す
0
jurez