全局调教
Global Tuning
PX性能的一个主要瓶颈是其底层的btrfs。全局调教目的是提升btrfs的性能。
添加全局调教参数必须要宕机时间(Downtime)
btrfs在PX架构里的功用和带来的限制
#
btrfs的功用
限制
1
底层Datastore
文件系统Overhead
2
多硬盘软RAID
不能移除盘
3
多硬盘并行读写
4
添加硬盘和数据再均衡(Rebalance)
必须离线完成
5
Copy On Write 保护
严重的写放大
6
校验码(Checksum)保护
写放大
7
快照功能
btrfs对kernel版本的依赖
btrfs的发展同Linux kernel紧密联合在一起, 最新的改进和补丁都在合并在最新的Linux kernel里。所以要升级BTFS必须升级Linux kernel。
btrfs在RHEL/CentOS里
RHEL/CentOS官方的kernel版本都非常保守。RHEL/CentOS 7.x 的kernel版本一直停留在3.10, 而且红帽官方已经宣布在7.4之后不再backport新的btrfs补丁。所以btrfs在RHEL/CentOS官方kernel里的稳定性和性能都不理想。
如果使用的是CentOS, 建议升级kernel到elrepo.org的4.4版本以上。
添加全局调教参数:rt_opts
PX目前提供两个全局调教参数,关闭部分btrfs功能,以提升其性能。方法是在PX的启动参数里添加rt_opts, 如下:
PX启动后/etc/pwx/config.json会有如下显示:
PX启动后查看btrfs的mount属性
copy_on_write=0
规格
细节
版本要求
1.7.2以上
操作
添加nodatacow和nodatasum到BTFS的mount属性
效果
禁用Copy On Write和校验码,减少overhead和延迟
代价
btrfs失去后端数据自纠错的能力
考量
常见的ext4/xfs文件系统也没有数据自纠错的能力。
如果客户接受ext4/xfs的安全性,那么也就能接受这个参数
nossd=1
规格
细节
版本要求
1.7.3以上 (1.7.7以上,2.0.3.3以上,默认开启)
操作
添加nossd到btrfs的mount属性
效果
禁用SSD优先写连续空间,避免文件系统碎片化
代价
理论上会减少SSD的寿命
考量
建议性能优先
Last updated