添加 '存储/ceph/p版本安装/2-优化内核参数及资源限制.md'
This commit is contained in:
parent
2fb7a99ab3
commit
0ee416513b
1 changed files with 92 additions and 0 deletions
92
存储/ceph/p版本安装/2-优化内核参数及资源限制.md
Normal file
92
存储/ceph/p版本安装/2-优化内核参数及资源限制.md
Normal file
|
@ -0,0 +1,92 @@
|
|||
```shell
|
||||
## 转发 IPv4 并让 iptables 看到桥接流量(选做)
|
||||
# cat <<EOF | sudo tee /etc/modules-load.d/ceph.conf
|
||||
overlay
|
||||
br_netfilter
|
||||
EOF
|
||||
|
||||
# modprobe overlay
|
||||
# modprobe br_netfilter
|
||||
# lsmod | grep br_netfilter
|
||||
#验证br_netfilter模块
|
||||
|
||||
## 修改内核参数
|
||||
cat <<EOF | tee /etc/sysctl.d/ceph.conf
|
||||
net.bridge.bridge-nf-call-iptables = 1
|
||||
net.bridge.bridge-nf-call-ip6tables = 1
|
||||
net.ipv4.ip_forward = 1
|
||||
#1. 用于对外连接的随机端口范围。缺省是# 32768 60999
|
||||
#端口范围开始和结束要奇偶不同,如果设置为1024 65530则在dmesg中会报ip_local_port_range: prefer different parity for start/end values.
|
||||
net.ipv4.ip_local_port_range = 1024 65335
|
||||
|
||||
# 如果dmesg中有类似“nf_conntrack: table full, dropping packet”日志,则需要调大 conntrack 参数,默认是2621440,该值不能太大,否则会出现:nf_conntrack: falling back to vmalloc.
|
||||
net.netfilter.nf_conntrack_max = 2621440
|
||||
net.nf_conntrack_max = 2621440
|
||||
# 指定了进程可以拥有的内存映射区域的最大数目。这个设置对于使用大量内存映射的应用程序很重要
|
||||
vm.max_map_count = 1048576
|
||||
#2. 如果 netstat -s | grep "buffer errors" 中errors数在增加,则需要调整如下参数
|
||||
# net.ipv4.tcp_wmem 默认值:4096 16384 4194304
|
||||
net.ipv4.tcp_wmem = 4096 16384 4194304
|
||||
# net.ipv4.tcp_rmem 默认值:4096 87380 6291456
|
||||
net.ipv4.tcp_rmem = 4096 87380 6291456
|
||||
# net.ipv4.tcp_mem 默认值:381462 508616 762924
|
||||
net.ipv4.tcp_mem = 381462 508616 762924
|
||||
# net.core.rmem_default 默认值:212992
|
||||
net.core.rmem_default = 8388608
|
||||
# net.core.rmem_max 默认值:212992
|
||||
net.core.rmem_max = 26214400
|
||||
# net.core.wmem_max 默认值:212992
|
||||
net.core.wmem_max = 26214400
|
||||
|
||||
# 调大文件句柄数
|
||||
fs.nr_open = 16777216
|
||||
fs.file-max = 16777216
|
||||
|
||||
#3.如果dmesg中有类似"arp_cache: neighbor table overflow",则需要调整如下参数
|
||||
# net.ipv4.neigh.default.gc_thresh1 默认值 128
|
||||
net.ipv4.neigh.default.gc_thresh1 = 40960
|
||||
# net.ipv4.neigh.default.gc_thresh2 默认值 512
|
||||
net.ipv4.neigh.default.gc_thresh2 = 81920
|
||||
# net.ipv4.neigh.default.gc_thresh3 默认值 1024
|
||||
net.ipv4.neigh.default.gc_thresh3 = 102400
|
||||
|
||||
#4. 连接队列满导致丢包,需要调整半连接队列和全连接队列
|
||||
#TCP 连接请求队列长度,默认为1024,加大队列长度为8192,可以容纳更多等待连接的网络连接数。
|
||||
net.ipv4.tcp_max_syn_backlog = 65535
|
||||
# 调整全连接队列上限,即服务器同时接受连接的数量
|
||||
net.core.somaxconn = 65535
|
||||
# 网络设备最大接收队列长度
|
||||
net.core.netdev_max_backlog = 250000
|
||||
#5. 在低版本内核中(比如 3.10),支持使用 tcp_tw_recycle 内核参数来开启 TIME_WAIT 的快速回收,但如果 client 也开启了 timestamp (一般默认开启),同时也就会导致在 NAT 环境丢包,甚至没有 NAT 时,稍微高并发一点,也会导致PAWS校验失败,导致丢包,所以生产环境不建议开启。
|
||||
#### TIME_WAIT
|
||||
# 默认0
|
||||
# 用 SYN Cookie 防御机制
|
||||
net.ipv4.tcp_syncookies = 1
|
||||
# 开启 TIME-WAIT 状态的重用,此处为0,未开启
|
||||
net.ipv4.tcp_tw_reuse = 0
|
||||
# 不建议启用tcp_tw_recycle,会导致数据错乱,4.12内核已去掉这个参数
|
||||
# net.ipv4.tcp_tw_recycle = 0
|
||||
# 默认60
|
||||
net.ipv4.tcp_fin_timeout = 30
|
||||
|
||||
#6.启用fastopen,跳过tcp3次握手;第 1 个比特位为 1 时,表示作为客户端时支持 TFO;第 2 个比特位为 1 时,表示作为服务器时支持 TFO,所以当 tcp_fastopen 的值为 3 时(比特为 0x11)就表示完全支持 TFO 功能。
|
||||
net.ipv4.tcp_fastopen = 3
|
||||
net.ipv4.tcp_orphan_retries = 3
|
||||
# 默认0,表示如果三次握手第三步的时候 accept queue 满了,则 server 丢弃 client 发过来的 ack;为1表示第三步的时候如果全连接队列满了,server 发送一个 rst 包给 client ,表示拒绝这个握手过程和这个连接
|
||||
# 只有确信守护进程真的不能完成连接请求时才打开该选项,该选项会影响客户的使用
|
||||
net.ipv4.tcp_abort_on_overflow = 1
|
||||
EOF
|
||||
|
||||
# sysctl -p /etc/sysctl.d/ceph.conf
|
||||
|
||||
## 修改资源限制参数
|
||||
cat > /etc/security/limits.d/ceph.conf <<EOF
|
||||
# End of file
|
||||
* hard nofile 655360
|
||||
* soft nofile 655360
|
||||
* soft core 655360
|
||||
* hard core 655360
|
||||
* soft nproc unlimited
|
||||
root soft nproc unlimited
|
||||
EOF
|
||||
```
|
Loading…
Add table
Add a link
Reference in a new issue