1. 如果需要支撑百万级同时在线数,需要对linux默认内核参数进行调整,我们的典型配置是在
/etc/sysctl.conf增加以下内容:
net.ipv4.tcp_max_orphans = 262144
net.ipv4.tcp_no_metrics_save=1
net.ipv4.tcp_window_scaling = 0
net.ipv4.tcp_max_syn_backlog = 120000
net.core.netdev_max_backlog = 120000
net.core.somaxconn = 12000
net.ipv4.tcp_fin_timeout = 10
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_max_tw_buckets = 1000
net.ipv4.tcp_abort_on_overflow = 1
net.ipv4.tcp_sack = 0
net.ipv4.tcp_rmem = 4096 8192 32768
net.ipv4.tcp_wmem = 4096 8192 32768
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_mem = 3075840 4101120 12303360
net.ipv4.tcp_keepalive_time = 30
net.ipv4.tcp_keepalive_probes = 5
net.ipv4.tcp_keepalive_intvl = 15
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 2
net.core.rmem_max=16777216
net.core.wmem_max=16777216
net.ipv4.ip_local_port_range = 1024 65535
net.ipv4.tcp_syncookies = 0
修改/etc/security/limits.conf配置:
* soft nofile 1200000
* hard nofile 1200000
部分ubuntu系统需要这么修改
root hard nofile 1000000 root soft nofile 1000000 root soft core unlimited root soft stack 10240 ubuntu hard nofile 1000000 ubuntu soft nofile 1000000 ubuntu soft core unlimited ubuntu soft stack 10240 * hard nofile 1000000 * soft nofile 1000000