zoukankan      html  css  js  c++  java
  • 高并发中的部分优化

    1、关闭iptables 阻止内核加载iptables

    2、系统对对用户打开文件数的软、硬限制
    vim /etc/security/limits.conf
    softe nofile 65535
    hard nofile 65535

    vim /etc/pam.d/login
    sessionrequired /lib/security/pam_limits.so
    #告诉linux在用户完成登录后,调用整个模块来设置系统对用户的可开文件数限制,这个模块会从limits.conf读取配置

    cat /proc/sys/fs/file-max
    #系统级的硬限制,所有 用户级的打开文件数不应该超过这个限制,修改方法
    sed -i "s/fs.file-max=*/fs.file-max=131072/g" /etc/sysctl.conf

    ulimit -n
    #如果/etc/profile 这个用户登录脚本有限制,需要打开这个文件修改这个限制

    3、内核tcp 参数优化
    netstat -n|awk "/^tcp/{++s{$NF}END{for (i in s) print i,s[i]}"
    针对time_wait 优化,调整/etc/systcl.conf
    net.ipv4.tcp_syncookies= 1 #syn队列溢出时,启用cookies 防治少量syn
    net.ipv4.tcp_tw_reuse= 1 #开启重用,timewait状态被重用于新tcp链接
    net.ipv4.tcp_tw_recycle= 1 #timewait开启快速回收
    net.ipv4.tcp_fin_timeout= 30 #修改timeout默认时间,应对fin_wait_2状态时对端出错无法关闭

    针对大流量机器开启下面参数
    net.ipv4.tcp_keepalive_time= 1200 #tcp发送keepalive消息频度,20分钟
    net.ipv4.ip_local_port_range= 1024 65535 #提供对外连接的端口范围
    net.ipv4.tcp_max_syn_backlog= 8192 #syn队列长度,默认是1024
    net.ipv4.tcp_max_tw_buckets= 5000 #系统同时保持timewait的最大数量,若超量立刻被清楚
    net.ipv4.tcp_max_syn_backlog= 65535 #发出syn后,记录尚未收到客户ack的请求的最大值
    net.core.netdev_max_backlog= 32768 #网络接口收数据包的速度比内核处理速度快时,允许加入队列的最大数
    net.core.somaxconn= 32768
    net.core.wmen_default= 8388608
    net.core.rmen_default= 8388608
    net.core.rmen_max= 16777216 #最大socket读取buffer
    net.core.wmen_max= 16777216 #最大socket写入buffer
    net.ipv4.tcp_timestsmps= 0 #时间戳用来避免数据包序列号卷绕,关闭后内核接受 异常的数据包
    net.ipv4.tcp_synack_retries= 2 #syn+ack(第二次握手)的重发次数,2次后内核放弃该链接
    net.ipv4.tcp_syn_retries= 2 #重发syn的数量,2次后放弃该链接
    net.ipv4.tcp_wmen= 8192 43660 873200 #tcp写buffer 依次是 无压力 有压力 tcp拒绝分配socket
    net.ipv4.tcp_rmen= 32768 43660 873200 #tcp读buffer

    4、io时间分配机制
    tcp高并发时,非阻塞式同步io(epoll机制)或者一部io(AIO机制)

  • 相关阅读:
    S32K142学习记录_day1
    dsPIC33EP单片机的PPS(外设引脚选择)
    零欧电阻
    MOS管的栅极和源极之间的电阻
    RDLC表格排序设置
    SQL相关
    使用sql的xmlpath可以把xml文件转化为表格
    Visual Studio2017 无法折叠
    使用图形化界面打包自己的类库
    初识NuGet及快速安装使用
  • 原文地址:https://www.cnblogs.com/plefan/p/13688394.html
Copyright © 2011-2022 走看看