![Linux:SSD 性能调整队列](https://linux22.com/image/626001/Linux%EF%BC%9ASSD%20%E6%80%A7%E8%83%BD%E8%B0%83%E6%95%B4%E9%98%9F%E5%88%97.png)
我已经应用了众所周知的 SSD 挂载点选项,并在 LVM 中启用了 SSD 优化功能。
现在我遇到了一个可能的挑战。是否有可能收集有关如何调整截止日期 io-scheduler 的值的信息,如下所示。以便更好地与这个特定的磁盘 + 控制器配合使用。
/sys/block/sda/queue/
add_random discard_zeroes_data iostats max_integrity_segments max_segment_size nr_requests read_ahead_kb scheduler discard_granularity hw_sector_size logical_block_size max_sectors_kb minimum_io_size optimal_io_size rotational discard_max_bytes
iosched/ max_hw_sectors_kb max_segments nomerges physical_block_size rq_affinity
对于这款金士顿 V300 240G 固态硬盘,下面的方法似乎效果不错。重复的 iozone -0 显示出更好的值。
echo 64 > /sys/block/sda/queue/nr_requests
echo 640 > /sys/block/sda/queue/max_sectors_kb
我希望这样的调整可以避免金士顿 SSD 的一些缺点。它确实会成为这个系统的瓶颈,因为它运行的是 SATA2,而不是这款 SSD 可以处理的 SATA3。
问候,
南卡罗来纳州
答案1
echo 640 > /sys/block/sda/queue/max_sectors_kb
对于 max_sectors_kb 来说,这似乎是一个特别奇怪的值。你没有说这是哪个 SSD - 但我遇到的大多数现代驱动器都使用 4128 字节扇区(尽管许多驱动器谎报了它们的几何形状 - 大概是为了让其他操作系统满意)。当然,你的操作系统可能使用 4kb 页面,尽管最重要的数字应该是磁盘上物理扇区的大小。
我强烈建议您根据应用程序性能优化配置,而不是根据基准测试软件。诚然,使用实际应用程序数据运行大量测试并不总是可行的,但如果您看一下 Jens Axboe 的 fio,它允许进行广泛的配置,从而为您的系统创建更具代表性的需求。
是否可以收集有关如何调整截止时间 io-scheduler 的值的信息,如下所示
如果有一个方法可以让每个人的电脑运行得更快,我想你找到它并不难。一旦你解决了这些明显的问题,那么答案就是测量吞吐量并在负载下调整参数,观察响应并避免局部最小值 - 如果你是谷歌,那么摧毁几个固态硬盘以找到最佳设置是非常值得的。如果你只有一个固态硬盘,那么这可能不是最好的主意?
(我认为,为了提高该设备的性能,最好的办法是(假设您的分区已正确对齐)不要使用 LVM)
答案2
针对Linux调整和优化SSDhttp://namhuy.net/1563/how-to-tweak-and-optimize-ssd-for-ubuntu-linux-mint.html
- 更新您的 SSD 固件
- 使用 EXT4 文件系统
- 启用 TRIM
- 添加 noatime 和 nodiratime
- 禁用休眠