如果上述测试未按预期执行,则可能是驱动器坏了或出现故障。大多数现代硬盘都内置了自我监控、分析和报告技术(SMART)。如果你的驱动器支持它,smartctl 命令可用于查询你的硬盘驱动器的内部统计信息:
# smartctl --health /dev/sda # smartctl --log=error /dev/sda # smartctl -x /dev/sda
另一种可以调整 PC 以获得更好性能的方法是更改 I/O 调度程序。Linux 系统支持多个 I/O 调度程序,Fedora 系统的当前默认值是 deadline 调度程序的 multiqueue 变体。默认情况下它的整体性能非常好,并且对于具有许多处理器和大型磁盘阵列的大型服务器,其扩展性极为出色。但是,有一些更专业的调度程序在某些条件下可能表现更好。
要查看驱动器正在使用的 I/O 调度程序,请运行以下命令:
$ for i in /sys/block/sd?/queue/scheduler; do echo "$i: $(<$i)"; done
你可以通过将所需调度程序的名称写入 /sys/block/<device name>/queue/scheduler 文件来更改驱动器的调度程序:
# echo bfq > /sys/block/sda/queue/scheduler
你可以通过为驱动器创建 udev 规则来永久更改它。以下示例显示了如何创建将所有的旋转式驱动器设置为使用 BFQ I/O 调度程序的 udev 规则:
# cat << END > /etc/udev/rules.d/60-ioscheduler-rotational.rules ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="bfq" END
这是另一个设置所有的固态驱动器使用 NOOP I/O 调度程序的示例:
# cat << END > /etc/udev/rules.d/60-ioscheduler-solid-state.rules ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="none" END
更改 I/O 调度程序不会影响设备的原始吞吐量,但通过优先考虑后台任务的带宽或消除不必要的块重新排序,可能会使你的 PC 看起来响应更快。 【编辑推荐】 - 命令行快速提示:权限进阶
- 如何查找Linux上的硬件规格?
- Window下不用安装虚拟机,也可以玩转Linux,玩转最新Redis
- Linux是如何创建进程的?为什么说Linux与其他操作系统不同?
- 5个免费的Linux分区管理器
【责任编辑:庞桂玉 TEL:(010)68476606】
点赞 0
(编辑:ASP站长网)
|