磁盘配置
磁盘规划
在Hadoop类环境中,基本为单盘做数据盘,因此存在两种选项:JBOD和单盘RAID 0。
环境上若使用的是LSI 3108/3408/3508系列RAID控制卡,推荐组建单盘RAID 0,充分利用RAID控制卡的Cache(LSI 3508卡为2GB),提高读写速率。
Cache策略
使用storcli工具修改RAID组的Cache设置,Read Policy设置为Read ahead,使用RAID控制卡的Cache做预读;Write Policy设置为Write back,使用RAID控制卡的Cache做回写,而不是Write through透写;IO policy设置为Cached IO,使用RAID控制卡的Cache缓存IO。
在实测中,RAWBD与RAWBC之间会有3~5%的端到端性能差异,使用RAWBC(无超级电容)/RWBC(有超级电容)性能更佳。
配置命令如下:
1 2 3 |
./storcli /c0/vx set rdcache=RA ./storcli /c0/vx set wrcache=WB/AWB ./storcli /c0/vx set iopolicy=Cached |

./storcli /c0/vx set wrcache=WB/AWB #命令中的WB/AWB取决于RAID控制卡是否有超级电容,无超级电容使用AWB。
块设备配置
主要涉及scheduler、sector_size、read_ahead_kb配置。
- 根据实测,scheduler应使用deadline性能最优。
1
cat /sys/block/sdx/queue/scheduler
- 块设备的sector_size应与物理盘的扇区大小进行匹配。可通过hw_sector_size、max_hw_sectors_kb、max_sectors_kb三者进行匹配,前两者是从硬件中读取出来的值,第三者是内核块设备的聚合最大块大小,推荐与硬件保持一致,即后两者参数保证一致。
- 块设备的预读推荐设置为4M,读性能更佳,默认值一般为128KB。
- 查看预读设置值。
1
/sbin/blockdev --getra /dev/sdb
- 设置并检验。
1
/sbin/blockdev --setra 4096 /dev/sdb
- 查看预读设置值。
父主题: 硬件调优