这就是我现在得到的,使用 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
Run Code Online (Sandbox Code Playgroud)
看到缓冲的磁盘读取速度!!!!太慢了!!!!当我第一次设置我的笔记本电脑时,我看到超过 400MB/秒,考虑到这是一台较旧的笔记本电脑,这对我来说非常好,而且一切都经过加密。
这是我的/etc/fstab。我已经启用修剪,手动运行修剪,启用/禁用功能,重新启动,一切。我无法让那些快速恢复:
/dev/mapper/ubuntu--gnome--vg-root / ext4 noatime,nodiratime,errors=remount-ro,barrier=0,discard 0 1
Run Code Online (Sandbox Code Playgroud)
很明显,这些是我正在使用的选项。我尝试了它们的各种组合都无济于事:
noatime,nodiratime,errors=remount-ro,barrier=0,discard
Run Code Online (Sandbox Code Playgroud)
有小费吗?这真让我抓狂。
哦,还有,我在配备 16GB 内存和 i7 处理器的联想 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
Run Code Online (Sandbox Code Playgroud)
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.
Run Code Online (Sandbox Code Playgroud)
令我失望的是它已经工作了一段时间。有一天它起作用了,然后它在第二天停止了,我什至没有做任何(我能想到的)应该改变它的事情。
更新
测试了特定设备 ( /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
Run Code Online (Sandbox Code Playgroud)
更新
也在逻辑分区上进行了测试:
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
Run Code Online (Sandbox Code Playgroud)
更新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
Run Code Online (Sandbox Code Playgroud)
更新:分区对齐
这是我笔记本电脑上的分区对齐方式:
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)
Run Code Online (Sandbox Code Playgroud)
我不确定如何看待分区 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
Run Code Online (Sandbox Code Playgroud)
更新:固定?
我将调度程序更改为 noop 调度程序(而不是截止日期)。这似乎有效(通过更改/etc/default/grub为具有以下行来做到这一点:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash elevator=noop"
Run Code Online (Sandbox Code Playgroud)
然后更新 grubsudo 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
Run Code Online (Sandbox Code Playgroud)
fstab 中的选项是:
noatime,nodiratime,errors=remount-ro,barrier=0
Run Code Online (Sandbox Code Playgroud)
“修复”更新
使用它一段时间并重新启动几次后,它又回到了慢速状态:( :( :( :( :( :( )
更新 - 可能的“修复”
我有一个想法,也许我的笔记本电脑在启动和耗尽电池时正在做一些省电优化。在插入充电器的情况下进行了一次简单的启动测试后,它又回到了非常快的速度。我相当肯定情况确实如此 - 它一直以快速测试我插入了充电器。我将运行更多测试来验证,但我相当确定这就是导致速度变慢的原因。
小智 24
快速回答:
sudo hdparm -B254 /dev/sda
Run Code Online (Sandbox Code Playgroud)
长答案:
似乎 Linux 或笔记本电脑(在联想和戴尔均已验证)使用电池启动时默认为 APM 级别 80h (128),使用交流电源启动时默认为 FEh (254)。
对于大多数 SSD,您不会注意到太大差异。Lite-on SSD 似乎根本不支持电源管理,并且始终以最大速度运行。英特尔 SSD 在 APM 级别 128 下以大约 75% 的全速运行,在 APM 级别 254/255 下以 100% 的速度运行。然而,与 APM 级别 254(使用交流电源启动)相比,Crucial SSD 似乎在 APM 级别 128(使用电池启动)下以大约 6% 的全速运行。
坏消息是这里没有错误和错误。ATA 规范非常模糊,以至于 Crucial SSD 在 APM 模式 128 下运行超慢是被允许的,并且符合规范。同样,笔记本电脑默认为 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
Run Code Online (Sandbox Code Playgroud)
小智 8
您可能需要检查 /etc/hdparm.conf,您可以在其中配置电源和电池模式的 apm 级别。
添加
apm = 254
apm_battery = 254
Run Code Online (Sandbox Code Playgroud)
到 /etc/hdparm.conf
我一直发现,当我在插入电源的情况下启动笔记本电脑时,我能够达到快速的速度。如果我在笔记本电脑电池电量耗尽时启动笔记本电脑,然后再插入电源,我仍然停留在低速状态。
这可能是我的笔记本电脑(联想 T420)特有的。我更改了所有 BIOS 设置以不节省任何电量,以实现最佳性能;然而,这并没有让它在只使用电池时拥有快速的速度。当我启动时,我仍然必须插入电源才能获得快速的速度。
另一个注意事项:我可以在启动时插入电源,然后在启动后拔下笔记本电脑。笔记本电脑将保持较快的速度,直到下次启动。
解答:开机时插上电源。
| 归档时间: |
|
| 查看次数: |
18334 次 |
| 最近记录: |