linux 参数优化

本文介绍了针对Linux系统的优化方案,包括在docker-compose.yml中配置network_mode为host,以及调整sysctl.conf参数如vm.swappiness、tcp_max_orphans等以提升系统性能。此外,还详细说明了如何设置用户和系统级别的ulimit值以增大最大打开文件数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

## linux 优化方案
* docker-compose.yml 需要配置network_mode: "host"
* 增加或修改如下参数
    * 参数路径:/etc/sysctl.conf
        * vm.swappiness = 0 // 尽可能使用swap分区 
        * net.ipv4.tcp_max_orphans = 655360 // 系统中最多有多少个TCP 套接字不被关联到任何一个用户文件句柄上 
        * net.ipv4.tcp_max_syn_backlog = 655360 // 能接受 SYN 同步包的最大客户端数量
        * net.core.somaxconn = 32768 // 当网卡接收数据包的速度大于内核处理的速度时,会有一个队列保存这些数据包。这个参数表示该队列的最大值
        * net.ipv4.ip_local_port_range = 1024  65535 // 对外TCP和UDP连接port的范围
        * net.ipv4.tcp_fin_timeout = 30 // FIN-WAIT-2 超时时间
        * net.ipv4.tcp_tw_reuse = 1 // 启用重用地址和端口
        * net.ipv4.tcp_retries2 = 5 // tcp重连次数
        * net.ipv4.tcp_syn_retries = 2 // 重试发送syn包的次数
        * net.ipv4.tcp_keepalive_time = 1800 // 首次tcp心跳包在建立链接后多久发送
        * net.ipv4.tcp_keepalive_intvl = 30 // tcp心跳间隔(s)
        * net.ipv4.tcp_keepalive_probes = 5 // tcp心跳对端无响应后继续发送的探测报文的数量

  1. 打开 /etc/security/limits.conf 文件,添加以下行来设置用户的 ulimit 值:

    username soft nofile 65535 
    username hard nofile 65535

  2. 其中,username 是要设置 ulimit 值的用户名,softhard 表示软限制和硬限制。nofile 表示最大打开文件数,这里设置为 65535。可以根据需要设置其他资源的 ulimit 值。

  3. 如果需要修改系统级别的 ulimit 值,打开 /etc/sysctl.conf 文件,添加以下行:

    fs.file-max = 65535

    其中,fs.file-max 表示系统级别的最大打开文件数,这里设置为 65535。

  4. 如果使用的是 systemd 系统,可以在 /etc/systemd/user.conf/etc/systemd/system.conf 文件中设置用户和系统级别的 ulimit 值。添加以下行:

    DefaultLimitNOFILE=65535

    其中,DefaultLimitNOFILE 表示最大打开文件数,这里设置为 65535。

  5. 重新登录或重新启动系统,让新的 ulimit 值生效。

通过上述步骤,可以设置用户的 ulimit 值。如果需要修改其他资源的 ulimit 值,只需要在第一步中修改对应的配置即可。

6. 设置堆栈的大小

/etc/security/limits.conf文件设置

user1 soft stack 2048(kB为单位)

7. 开启服务器bbr加速

Linux系统开启服务器BBR加速教程_linux bbr-CSDN博客

8. 修改tcp的接收和发送的缓冲队列长度

1. 修改/sys/module/tcp_cubic/parameters/tcp_wmem参数来调整发送窗口大小。

2. 修改/sys/module/tcp_cubic/parameters/tcp_rmem参数来调整接收窗口大小。

这个值应该就是网络中滑动窗口的大小的最大值

https://blog.51cto.com/u_15138962/10236777

9. SO_REUSEPORT 可以做到使得linux自己可进行传入数据req路由到后面同一个port绑定的不同的子程序中。其实就是内核做了reactor模式进行流量分发的工作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值