Ubuntu SSD-高速でしたが、現在は非常に低速です


12

これは、Crucial MX300 750GB SSDで私が今手に入れているものです(最新のファームウェア[ファームウェアのアップデートはまだありません])。

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 !!!! 私が最初にラップトップをセットアップしたとき、400MB /秒以上が表示されていました。これは古いラップトップであり、すべてが暗号化されていることは問題ありません。

これは私/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

任意のヒント?これは私を夢中にさせています。

また、16GB RAMとi7プロセッサーを搭載したLenovo T420でUbuntu 16.04(x64)を実行しています。

 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.

私を殺しているのは、ITがWHILEのために機能していたことです。ある日はうまくいき、次の日は止まり、私はそれを変えるべきだった(私が考えることができる)ことさえ何もしませんでした。

更新

特定のデバイス(/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

UPDATE 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

ここに画像の説明を入力してください

「修正」更新

それを少し使用して数回再起動した後、スロースピードに戻ります :( :( :( :( :( :(

更新-可能な「修正」

おそらく、私のラップトップは、起動してバッテリーが切れたときにバッテリー節約の最適化を行っているのではないかと思っていました。充電器を接続した状態で起動する1つの簡単なテストの後、それは本当に速い速度に戻ります。私はこれが事実であることをかなり確信しています-常に充電器を接続した高速でテストしました。検証するためにさらにいくつかのテストを実行しますが、これがスローダウンの原因であったことはかなり確信しています。


たとえばでは/dev/sda1なく、特定のパーティションの速度をテストするとどうなります/dev/sdaか?
thomasrutter 2016年

いい質問です-私はそれを試して私の質問を更新します
d0c_s4vage 2016年

また、論理パーティションにも例があります/dev/mapper/ubuntu--gnome--vg-root
thomasrutter

テスト済み/dev/sda1、論理パーティションもテストする
d0c_s4vage

k、両方をテスト、不運:6 /
d0c_s4vage

回答:


19

簡単な答え:

sudo hdparm -B254 /dev/sda

長い答え:

一般に、Linuxまたはラップトップ(LenovoとDellの両方で検証済み)は、バッテリーで起動するとデフォルトでAPMレベル80h(128)になり、AC電源で起動するとFEh(254)になるようです。

ほとんどのSSDでは、大きな違いはありません。ライトオンSSDは電源管理をまったくサポートしていないようで、常に最大速度で実行されます。Intel SSDは、APMレベル128ではフルスピードで約75%、APMレベル254/255では100%で動作するようです。ただし、Crucial SSDは、APMレベル254(AC電源で起動)と比較すると、APMレベル128(バッテリーで起動)で約6%のフルスピードで動作するようです。

悪い知らせは、ここにはバグも欠陥もないということです。ATA仕様は、APMモード128で超低速で動作するCrucial SSDが許可されており、仕様に準拠しているため、あいまいです。同様に、APMレベル80h(128)のデフォルトのラップトップは完全に妥当です。仕様はただ言う:

表106 — APMレベル
COUNTフィールドレベル
00h予約済み
01hスタンバイモードでの最小電力消費量
02h..7Fh スタンバイモードでの中間電力管理レベル
80hスタンバイモードなしでの最小電力消費量
81h..FDh スタンバイモードなしでの中間電力管理レベル
FEh最大パフォーマンス
FFh予約済み

ATA仕様から)

これは、バッテリー電源で起動したCrucial MX300 SSDでの私の経験です。

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

同じ:(フォーマットの欠如についての謝罪、インデントはコメントでは機能しないようです)$ sudo hdparm -t / dev / sdb2 / dev / sdb2:タイミングバッファー付きディスクの読み取り:3.01秒で76 MB = 25.23 MB /秒$ sudo hdparm -t / dev / sda3 $ sudo hdparm -B / dev / sdb / dev / sdb:APM_level = 128 $ sudo hdparm -B254 / dev / sdb / dev / sdb:Advanced Power Managementレベルを0xfe(254)APM_level =に設定254 $ sudo hdparm -t / dev / sdb2 / dev / sdb2:タイミングバッファーディスク読み取り:3.00秒で1448 MB = 482.28 MB /秒
KevinButler

ワオ。すごい。この答えは非常に役に立ちます。もう1つ:GNOMEを使用している場合、Disksユーティリティを使用すると、GUIでAPMレベルを設定できます。
Venemo 2017

APM_level = not supportedデスクトップPCのSamsung SSD 840 EVO 120GB()で同じ問題が発生するため(バッテリーではありません)、完全な答えではないと思います。読み取り速度の低下には、より一般的な理由があるはずです。
cprn

WD ssdと大きな違いはありませんが、非常に優れた分析ですが、この問題を理解することは非常に役立ちます。ありがとう
ajcg

6

/etc/hdparm.confをチェックして、電源モードとバッテリーモードのapmレベルを設定できる場合があります。

追加

apm = 254
apm_battery = 254

/etc/hdparm.confに


3

私は一貫して私が接続されながらノートパソコンを起動したときに、私は速い速度を打つことができたことがわかった。私はそれがバッテリーオフ実行中にノートパソコンを起動し、そして場合は、その後に差し込まれ、私はまだ遅い速度に貼り付けました。

これは私のラップトップ(Lenovo T420)に固有のものであった可能性があります。私はすべてのBIOS設定を変更して、電力を節約しないようにして、最大のパフォーマンスを得ました。ただし、これは、バッテリーのみを使用している場合は高速になりませんでした。起動時に高速で接続する必要がありました。

もう1つの注意:起動時にプラグインして、起動したらラップトップのプラグを抜くことができます。ラップトップは、次に起動するまで高速を維持します。

回答:起動時に接続されていること。


0

新しい十分なカーネル(v4.15 +)を使用して、Crucial MX300にmed_power_with_dipmを使用してみてください。

LPM min_powerがすべてのドライバーでうまく機能しない場合、med_power_with_dipmが機能する場合、min_powerが選択されたときにmed_power_with_dipmにフォールバックできるようにするために、新しい癖を使用する必要があります。

また、Launchpadでバグを報告してください。そうすれば、Ubuntuカーネルエンジニアがバグを解決したり、問題を上流に報告したりできます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.