CDH6集群性能调优(操作系统层面)
本文内容是参照CDH官方文档来写的,主要是对CDH6集群主机操作系统层面上的一些性能参数调优,不包含CDH组件的参数调优(比如MR、YARN等)。
本文所有配置内容基于RHEL 7.x(CentOS 7.5),其他版本或者其他类型Linux的配置方式可能有所不同。
本文所有操作都是在root用户下进行的。
建议这部分操作在安装CDH6集群之前进行。
禁用 RHEL7系列Linux的TUNED服务
- 确保tuned服务已开启
systemctl start tuned
systemctl status tuned
- 关闭tuned服务
tuned-adm off
- 确保没有已激活的配置
tuned-adm list
如果输出内容中包含No current active profile
表示关闭成功: - 关闭并且禁用tuned服务
systemctl stop tuned
systemctl disable tuned
禁用THP
大多数Linux平台都包含一个名为transparent hugepages的功能,该功能可能会严重降低Hadoop集群的性能。
注意:该部分操作将在系统重启后生效。
- 检查THP是否启用
对于RHEL7系列Linux,查看方法如下所示:cat /sys/kernel/mm/transparent_hugepage/enabled
cat /sys/kernel/mm/transparent_hugepage/defrag
输出[always] never
意味着THP已启用,always [never]
意味着THP未启用,下图就表示THP已启用: - 禁用THP
编辑/etc/rc.d/rc.local
文件,最下面添加两行配置:echo never > /sys/kernel/mm/transparent_hugepage/enabled echo never > /sys/kernel/mm/transparent_hugepage/defrag
然后赋予/etc/rc.d/rc.local
文件可执行权限:chmod +x /etc/rc.d/rc.local
- 修改GRUB配置
仅RHEL 7.x需要进行该项操作。
编辑/etc/default/grub
文件,在GRUB_CMDLINE_LINUX项目后面添加一个参数:transparent_hugepage=never
:
然后执行命令:grub2-mkconfig -o /boot/grub2/grub.cfg
调整Linux内核参数
需要调整的参数为vm.swappiness
,是一个0-100的值,用于控制应用数据从物理内存到磁盘上的虚拟内存的交换,值越高,交换越积极,值越小,交换的次数越少。
在大多数Linux系统上,该参数默认值为60,这并不适用于Hadoop集群,因为即使有足够的内存,也可能会进行进程的交换,从而可能会影响Hadoop的性能和稳定性。
CDH建议将该参数设置到1-10之间,最好设为1。
- 查看当前该项参数值:
cat /proc/sys/vm/swappiness
- 修改该项参数值(临时生效):
sysctl -w vm.swappiness=1
- 编辑
/etc/sysctl.conf
文件(重启后永久生效),添加一行vm.swappiness=1
: