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机制)

  • 相关阅读:
    阅读 video in to axi4-stream v4.0 笔记
    python 字符串操作
    python 基本语句
    Python 算术运算符
    芯片企业研报阅读
    量化分析v1
    基于MATLAB System Generator 搭建Display Enhancement模型
    System Generator 生成IP核在Vivado中进行调用
    FPGA 中三角函数的实现
    System Generator 使用离散资源
  • 原文地址:https://www.cnblogs.com/plefan/p/13688394.html
Copyright © 2011-2022 走看看