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

  • 相关阅读:
    -bash: /tyrone/jdk/jdk1.8.0_91/bin/java: cannot execute binary file
    maven依赖包下载地址
    极光推送java代码
    Shiro中session超时页面跳转的处理
    ABAP ole操作1
    OLE导出EXCEL 问题处理
    ABAP ole操作
    ABAP Memory ID
    重装GUI前备份GUI配置
    ABAP编辑器输入中文变成问号
  • 原文地址:https://www.cnblogs.com/buffer/p/3209024.html
Copyright © 2011-2022 走看看