Linux:SSD 性能调整队列

Linux:SSD 性能调整队列

我已经应用了众所周知的 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
  • 禁用休眠

相关内容