zoukankan      html  css  js  c++  java
  • linux服务器调整参数支持高并发

    服务端调整系统的参数,在/etc/sysctl.conf中:

    ◦net.core.somaxconn = 2048
    ◦net.core.rmem_default = 262144
    ◦net.core.wmem_default = 262144
    ◦net.core.rmem_max = 16777216
    ◦net.core.wmem_max = 16777216
    ◦net.ipv4.tcp_rmem = 4096 4096 16777216
    ◦net.ipv4.tcp_wmem = 4096 4096 16777216
    ◦net.ipv4.tcp_mem = 786432 2097152 3145728
    ◦net.ipv4.tcp_max_syn_backlog = 16384
    ◦net.core.netdev_max_backlog = 20000
    ◦net.ipv4.tcp_fin_timeout = 15
    ◦net.ipv4.tcp_max_syn_backlog = 16384
    ◦net.ipv4.tcp_tw_reuse = 1
    ◦net.ipv4.tcp_tw_recycle = 1
    ◦net.ipv4.tcp_max_orphans = 131072

    ◦/sbin/sysctl -p 生效

    主要看这几项:

    net.ipv4.tcp_rmem 用来配置读缓冲的大小,三个值,第一个是这个读缓冲的最小值,第三个是最大值,中间的是默认值。我们可以在程序中修改读缓冲的大小,但是不能超过最小与最大。为了使每个socket所使用的内存数最小,我这里设置默认值为4096。
    net.ipv4.tcp_wmem 用来配置写缓冲的大小。
    读缓冲与写缓冲在大小,直接影响到socket在内核中内存的占用。
    而net.ipv4.tcp_mem则是配置tcp的内存大小,其单位是页,而不是字节。当超过第二个值时,TCP进入pressure模式,此时TCP尝试稳定其内存的使用,当小于第一个值时,就退出pressure模式。当内存占用超过第三个值时,TCP就拒绝分配socket了,查看dmesg,会打出很多的日志“TCP: too many of orphaned sockets”。
    另外net.ipv4.tcp_max_orphans这个值也要设置一下,这个值表示系统所能处理不属于任何进程的socket数量,当我们需要快速建立大量连接时,就需要关注下这个值了。当不属于任何进程的socket的数量大于这个值时,dmesg就会看到”too many of orphaned sockets”。

    参考: http://rdc.taobao.com/blog/cs/?p=1062

  • 相关阅读:
    WebRTC之完整搭建Jitsi Meet指南
    使用Jibri进行Jitsi Meet视频录制
    完整开源免费视频会议Jitsi-meet安装教程
    iOS聊天起泡(背景图片被拉伸不变形)----转载--待验证
    技术人对赚钱的思考与摸索
    模板引擎的思考
    SpringBoot单文件与多文件上传
    数据库被删之反思
    分布式配置中心之思考
    正版office产品密钥-激活码
  • 原文地址:https://www.cnblogs.com/buffer/p/3209024.html
Copyright © 2011-2022 走看看