一、在cdh+cm部署时,已经做了部分系统优化
-
ssh双向免密
-
配置时间同步服务(本次没用ntpd,用的是chrony)
-
禁用透明大页、碎片整理:THP (Transparent Huge Pages)
-
禁用内存交换swap(常用0或1)
二、hadoop集群推荐内核参数:
| 参数名称 | 默认值 | 说明 |
|---|---|---|
| 文件系统参数 | ||
fs.file-max |
6815744 | 系统最大文件描述符数量(所有进程可打开文件总数上限) |
fs.aio-max-nr |
1048576 | 异步I/O请求的最大并发数(影响高并发场景性能) |
| 网络核心参数 | ||
net.core.rmem_default |
262144 | TCP接收缓冲区默认大小(256KB) |
net.core.wmem_default |
262144 | TCP发送缓冲区默认大小(256KB) |
net.core.rmem_max |
16777216 | TCP接收缓冲区最大允许值(16MB) |
net.core.wmem_max |
16777216 | TCP发送缓冲区最大允许值(16MB) |
| TCP协议栈参数 | ||
net.ipv4.tcp_rmem |
4096 262144 16777216 | 接收窗口尺寸:• 最小值4KB• 默认值256KB• 最大值16MB |
net.ipv4.tcp_wmem |
4096 262144 16777216 | 发送窗口尺寸:• 最小值4KB• 默认值256KB• 最大值16MB |
查看当前内核配置:
sysctl -e fs.file-max fs.aio-max-nr \
net.core.rmem_default net.core.wmem_default \
net.core.rmem_max net.core.wmem_max \
net.ipv4.tcp_rmem net.ipv4.tcp_wmem 2>/dev/nulll

对比发现除了文件描述符数量外,其他内核参数都偏低,估所有机器都需要调整。
三、用户级文件数限制:

增加10倍,修改为655360
可以通过编辑 /etc/security/limits.conf 文件来执行此操作,如下所示:
Soft nofile 655360
Hard nofile 655360
四、socket监听队列上限
此内核参数对应的具体文件路径为/proc/sys/net/core/somaxconn,它用来设置socket监听(listen)的
backlog上限。
什么是backlog呢?就是Socket的监听队列,当一个请求(Request)未被处理或建立时,便会进入
backlog。而socket server可以一次性处理backlog中的所有请求,处理后的请求不再位于监听队列中。
如果server处理请求较慢,以至于监听队列被填满时,那么新来的请求会被拒绝,所以必须增大这个值,
此参数默认值为128。

执行以下命令
echo 4096 >/proc/sys/net/core/somaxconn
五、动态刷新内核设置:
sysctl -p
六、内核参数优化设置分类
📊 sysctl参数汇总
