优化cdh集群性能-可在安装集群前操作002
//读完cdh官方文档后,可知的优化操作
可在《03搭建cdh 生产环境前的Linux 优化(涉及到Linux内存参数优化)》
https://blog.51cto.com/12445535/2365948 这步同时操作
讲解了:
提供了一些性能问题的解决方案,并介绍了配置最佳实践。
1、禁止tuned 服务 //是内存分配管理
//关于tuned服务是什么?
RHEL/CentOS 在 6.3 版本以后引入了一套新的系统调优工具 tuned/tuned-adm,其中 tuned 是服务端程序,用来监控和收集系统各个组件的数据,并依据数据提供的信息动态调整系统设置,达到动态优化系统的目的;tuned-adm 是客户端程序,用来和 tuned 打交道,用命令行的方式管理和配置 tuned,tuned-adm 提供了一些预先配置的优化方案可供直接使用
//动态调优方案,用户可以在不同的时间段内采用不同的调优方案。由于以服务进程形式存在,就可以很方便的和crontab结合!Tuned 是监控并收集各个系统组件用量数据的守护进程,并可使用那些信息根据需要动态调整系统设置。它可以对 CPU 和网络使用的更改作出反应,并调整设置以提高活动设备的性能或者降低不活跃设备的电源消耗。
见图:
具体细节
[root@NewCDH-0--141 ~]# cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)
[root@NewCDH-0--141 ~]# systemctl status tuned
● tuned.service - Dynamic System Tuning Daemon
Loaded: loaded (/usr/lib/systemd/system/tuned.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2019-01-23 10:47:06 CST; 2 months 0 days ago
Main PID: 897 (tuned)
CGroup: /system.slice/tuned.service
└─897 /usr/bin/python -Es /usr/sbin/tuned -l -P
Jan 23 10:47:02 NewCDH-0--141 systemd[1]: Starting Dynamic System Tuning Daemon...
Jan 23 10:47:06 NewCDH-0--141 systemd[1]: Started Dynamic System Tuning Daemon.
[root@NewCDH-0--141 ~]# tuned-adm list
Available profiles:
- balanced
- desktop
- latency-performance
- network-latency
- network-throughput
- powersave
- throughput-performance
- virtual-guest
- virtual-host
Current active profile: virtual-guest
[root@NewCDH-0--141 ~]# tuned-adm off //关闭调优服务
[root@NewCDH-0--141 ~]# tuned-adm list
Available profiles:
- balanced
- desktop
- latency-performance
- network-latency
- network-throughput
- powersave
- throughput-performance
- virtual-guest
- virtual-host
No current active profile.
[root@NewCDH-0--141 ~]# systemctl stop tuned
[root@NewCDH-0--141 ~]# systemctl disable tuned
2、关闭禁用透明重复页面(THP) //前面博客有讲到,这里就不累赘了
具体见:Linux 初始化脚本 (centos6 centos7 通用) https://blog.51cto.com/12445535/2362407 第14
3、swap分区优化:减少使用交换分区使用百分比 同上
4、
提高随机处理程序和IFile阅读器的性能
MapReduce shuffle处理程序和IFile阅读器在安装了Hadoop本机库的Linux系统上使用本机Linux调用(posix_fadvise(2)和sync_data_range)。
随机处理程序
您可以通过启用shuffle readahead来改善MapReduce shuffle处理程序的性能。这会导致TaskTracker或节点管理器在通过套接字将其发送到reducer之前预取地图输出。
要为YARN启用此功能,请将mapreduce.shuffle.manage.os.cache设置为true(默认值)。要进一步调整性能,请调整mapreduce.shuffle.readahead.bytes的值。默认值为4 MB。
要为MapReduce启用此功能,请将mapred.tasktracker.shuffle.fadvise设置为true(默认值)。要进一步调整性能,请调整mapred.tasktracker.shuffle.readahead.bytes的值。默认值为4 MB。
IFile读者
启用IFile预读可提高合并操作的性能。要为MRv1或YARN启用此功能,请将mapreduce.ifile.readahead设置为true(默认值)。要进一步调整性能,请调整mapreduce.ifile.readahead.bytes的值。默认值为4MB。
5、MapReduce配置的最佳实践
下面描述的配置设置可以减少MapReduce执行中的固有延迟。您可以在mapred-site.xml中设置这些值。
(1)
任务完成后立即发送心跳
将mapreduce.tasktracker.outofband.heartbeat设置为true,以便TaskTracker在任务完成时发送带外心跳以减少延迟。默认值为false:
<property>
<name>mapreduce.tasktracker.outofband.heartbeat</name>
<value>true</value>
</property>
(2)
减少单节点系统上JobClient状态报告的间隔
jobclient.progress.monitor.poll.interval属性定义JobClient向控制台报告状态并检查作业完成的时间间隔(以毫秒为单位)。默认值为1000毫秒;您可能希望将此值设置为较低的值,以使测试在单节点群集上运行得更快。在大型生产群集上调整此值可能会导致不必要的客户端 - 服务器流量。
<property>
<name>jobclient.progress.monitor.poll.interval</name>
<value>10</value>
</property>
(3)
调整JobTracker心跳间隔
将TaskTracker-to-JobTracker心跳的最小间隔调整为较小的值可以提高小群集上的MapReduce性能。
<property>
<name>mapreduce.jobtracker.heartbeat.interval.min</name>
<value>10</value>
</property>
(4)
立即启动MapReduce JVM
mapred.reduce.slowstart.completed.maps属性指定在安排任何Reduce任务之前必须完成的作业中Map任务的比例。对于需要快速周转的小型作业,将此值设置为0可以提高性能;较大的值(高达50%)可能适合较大的工作。
<property>
<name>mapred.reduce.slowstart.completed.maps</name>
<value>0</value>
</property>
参考链接
Optimizing Performance in CDH https://www.cloudera.com/documentation/enterprise/5-13-x/topics/cdh_admin_performance.html
linux服务之tuned http://www.cnblogs.com/createyuan/p/5701650.html
浅谈linux性能调优之十二:红帽优化策略Tuned https://blog.csdn.net/u013870094/article/details/51055483
原文地址:https://blog.51cto.com/12445535/2368898