系统方面做如下优化
[root@xxxxxxxx conf]# ulimit -n 65535 [root@xxxxxxxx conf]# more /proc/sys/net/core/somaxconn 128 [root@xxxxxxxx conf]# echo 50000 > /proc/sys/net/core/somaxconn #设置最大连接数 [root@xxxxxxxx conf]# more /proc/sys/net/core/somaxconn 50000 [root@xxxxxxxx conf]# cat /proc/sys/net/ipv4/tcp_tw_recycle 0 [root@xxxxxxxx conf]# echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle #加快tcp回收,保证tcp_timestamps = 1 [root@xxxxxxxx conf]# cat /proc/sys/net/ipv4/tcp_tw_recycle 1 [root@xxxxxxxx conf]# cat /proc/sys/net/ipv4/tcp_tw_reuse 0 [root@xxxxxxxx conf]# echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse #空的tcp允许回收利用 [root@xxxxxxxx conf]# cat /proc/sys/net/ipv4/tcp_tw_reuse 1 [root@xxxxxxxx conf]# more /proc/sys/net/ipv4/tcp_syncookies 1 [root@xxxxxxxx conf]# echo 0 > /proc/sys/net/ipv4/tcp_syncookies #关闭洪水防御,是否需要关闭洪水抵御 看自己业务,比如秒杀,肯定需要关闭了 [root@xxxxxxxx conf]# more /proc/sys/net/ipv4/tcp_syncookies [root@xxxxxxxx conf]# /proc/sys/net/ipv4/tcp_max_tw_buckets 180000 否则经常出现 time wait bucket table overflow [root@xxxxxxxx conf]# tcp_nodelay on 小文件快速返回,我之前通过网络挂载磁盘出现找不到的情况 [root@xxxxxxxx conf]# tcp_nopush on [root@xxxxxxxx conf]# ulimit -a 65535
nginx方面
//nginx.conf中配置 worker_processes 4;#根据CPU核心数计算 worker_cpu_affinity 0001 0010 0100 1000;#根据worker_processes计算 worker_rlimit_nofile 10000; //子进程允许打开的文件数 keepalive_timeout 60; //结束响应后立即断开tcp连接。 //keeplive_timeout表示tcp完成响应后,继续保持连接多久。如果这个值过大,会造成资源无效占用。 events{ worker_connections 10240; }
这里只是大概的一个配置,当然还有其他优化项,后面的文章会提到。
访客评论