当前位置: 首页 > 工具软件 > CCISS > 使用案例 >

linux 存储控制器,存储 – Linux – 实际硬件RAID控制器调优(scsi和cciss)

常献
2023-12-01

我发现当我不得不调整较低的延迟与吞吐量时,我已经将nr_request调低了默认值(低至32).小批量的想法等于较低的延迟.

同样对于read_ahead_kb,我发现对于顺序读/写,增加此值可提供更好的吞吐量,但我发现此选项实际上取决于您的工作负载和IO模式.例如,在我最近调整的数据库系统上,我更改了此值以匹配单个数据库页面大小,这有助于减少读取延迟.超出此值的增加或减少证明在我的情况下会损害性能.

至于块设备队列的其他选项或设置:

max_sectors_kb =我设置此值以匹配硬件允许单次传输的值(检查sysfs中max_hw_sectors_kb(RO)文件的值以查看允许的内容)

nomerges =这使您可以禁用或调整查找逻辑以合并io请求. (将其关闭可以节省一些cpu周期,但是在为我的系统更改此设置时我没有看到任何好处,所以我将其保留为默认值)

rq_affinity =我还没有尝试过,但这里是内核文档背后的解释

If this option is ‘1’, the block layer will migrate request completions to the

cpu “group” that originally submitted the request. For some workloads this

provides a significant reduction in CPU cycles due to caching effects.

For storage configurations that need to maximize distribution of completion

processing setting this option to ‘2’ forces the completion to run on the

requesting cpu (bypassing the “group” aggregation logic)”

scheduler =你说你试过截止日期和noop.我已经测试了noop和截止日期,但是我发现我最近为数据库服务器做的测试已经找到了截止日期.

NOOP表现不错,但对于我们的数据库服务器,我仍然能够在调整截止日期调度程序时获得更好的性能.

截止日期调度程序的选项位于/ sys / block / {sd,cciss,dm – } * / queue / iosched /:

fifo_batch =类似于nr_requests,但特定于调度程序.经验法则是将其调低以降低延迟或提高吞吐量.控制读取和写入请求的批处理大小.

write_expire =设置写批次的到期时间默认为5000ms.再次减小此值会减少写入延迟,同时增加该值会增加吞吐量.

read_expire =设置读取批次的到期时间默认为500ms.这里适用相同的规则.

front_merges =我倾向于关闭它,默认情况下它是打开的.我没有看到调度程序需要浪费cpu周期来尝试合并IO请求.

writes_starved =因为截止日期是针对读取的,所以默认处理是在处理写入批处理之前处理2个读取批处理.我发现默认值为2对我的工作量有好处.

 类似资料: