CDH6集群性能调优(操作系统层面)

Author Avatar
山小杰 11月 30, 2018
  • 在其它设备中阅读本文章

本文内容是参照CDH官方文档来写的,主要是对CDH6集群主机操作系统层面上的一些性能参数调优,不包含CDH组件的参数调优(比如MR、YARN等)。

本文所有配置内容基于RHEL 7.x(CentOS 7.5),其他版本或者其他类型Linux的配置方式可能有所不同。

本文所有操作都是在root用户下进行的。

建议这部分操作在安装CDH6集群之前进行。

禁用 RHEL7系列Linux的TUNED服务

  1. 确保tuned服务已开启
    systemctl start tuned
    systemctl status tuned
    img
  2. 关闭tuned服务
    tuned-adm off
  3. 确保没有已激活的配置
    tuned-adm list
    如果输出内容中包含No current active profile表示关闭成功:
    img
  4. 关闭并且禁用tuned服务
    systemctl stop tuned
    systemctl disable tuned
    img

禁用THP

大多数Linux平台都包含一个名为transparent hugepages的功能,该功能可能会严重降低Hadoop集群的性能。

注意:该部分操作将在系统重启后生效。

  1. 检查THP是否启用
    对于RHEL7系列Linux,查看方法如下所示:
    cat /sys/kernel/mm/transparent_hugepage/enabled
    cat /sys/kernel/mm/transparent_hugepage/defrag
    输出[always] never意味着THP已启用,always [never]意味着THP未启用,下图就表示THP已启用:
    img
  2. 禁用THP
    编辑/etc/rc.d/rc.local文件,最下面添加两行配置:
     echo never > /sys/kernel/mm/transparent_hugepage/enabled
     echo never > /sys/kernel/mm/transparent_hugepage/defrag
    
    img
    然后赋予/etc/rc.d/rc.local文件可执行权限:
    chmod +x /etc/rc.d/rc.local
  3. 修改GRUB配置
    仅RHEL 7.x需要进行该项操作。
    编辑/etc/default/grub文件,在GRUB_CMDLINE_LINUX项目后面添加一个参数:transparent_hugepage=never
    img
    然后执行命令:grub2-mkconfig -o /boot/grub2/grub.cfg
    img

调整Linux内核参数

需要调整的参数为vm.swappiness,是一个0-100的值,用于控制应用数据从物理内存到磁盘上的虚拟内存的交换,值越高,交换越积极,值越小,交换的次数越少。

在大多数Linux系统上,该参数默认值为60,这并不适用于Hadoop集群,因为即使有足够的内存,也可能会进行进程的交换,从而可能会影响Hadoop的性能和稳定性。

CDH建议将该参数设置到1-10之间,最好设为1

  1. 查看当前该项参数值:
    cat /proc/sys/vm/swappiness
  2. 修改该项参数值(临时生效):
    sysctl -w vm.swappiness=1
    img
  3. 编辑/etc/sysctl.conf文件(重启后永久生效),添加一行vm.swappiness=1
    img

配置完毕!