• 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

  • 相关阅读:
    css实现水平/垂直居中效果
    Mac 下用homebrew安装配置MongoDB
    阿里云ECS搭建node/mongodb开发环境及部署
    阿里云首次安装和部署nginx
    前端学习借鉴目录
    040.[转] 对于程序框架的理解
    039.[转] 基于 Kubernetes 和 Spring Cloud 的微服务化实践
    038.[转] JVM启动过程与类加载
    037.[转] springboot 配置多个数据源
    036.[转] JNDI 学习
  • 原文地址:https://www.cnblogs.com/buffer/p/3209024.html
Copyright © 2020-2023  润新知