6.14. 磁盘慢读识别并自动切换
6.14.1. 磁盘慢读识别功能
数据存储使用两份副本,如果其中一份副本所对应的磁盘出现故障,或当前正进行大IO操作导致繁忙等因素,这块磁盘查询会很慢。
- lsql方案
lsql会自动识别切换到另外一块磁盘上进行读写,通过这种方式解决查询检索因磁盘导致的托后腿的情况。
ES方案
ES在遇到这种情况时这个磁盘会是瓶颈,会影响整体的查询性能。
6.14.2. 配置方法
1. 设置hdfs的 hedge
DFSClient Hedged Read特性默认是关闭的。如果要开启,则需配置如下:
dfs.client.hedged.read.threadpool.size #并发Hedged 读的线程池大小 如配置成100
dfs.client.hedged.read.threshold.millis #开启一个Hedged 读前的等待时间(毫秒),如配置成300毫秒
2. 解决死锁bug
相当部分的hadoop的hedge实现有死锁BUG,所以一定要使用lsql提供的补丁。