Server程式碼調整要關閉輸出,否則列印螢幕會拖垮Server.
修改server的max_conn引數為100000或者更大,為了安全實際上只能到99999。
核心引數調整
ulimit -n 要調整為100000甚至更大。如何調這個引數,可以參考網上的一些文章。命令列下執行 ulimit -n 100000即可修改。如果不能修改,需要設定 /etc/security/limits.conf,加入
* hard nofile 100000
* soft nofile 100000
net/ipv4/ip_local_port_range 需要修改為更大的範圍,如20000 – 60000,否則埠號會不夠用。導致客戶端報 99錯誤
單臺是不能壓到10萬的。客戶端連線需要分配一個local port。範圍是上一條設定的。也就是隻有4萬個port可以用。可以使用多臺機器來測試。
net.ipv4.tcp_tw_recycle = 1 ,設定快速回收被close的埠。否則埠會不夠用
其他核心引數的調整,如tcp_fin_timeout、tcp_keepalive_time、tcp_max_syn_backlog可以搜尋網上的文章。
長期執行的Server要有壞連線檢測的能力,比如心跳、活動時間檢測等方案。避免客戶端沒有發REST,導致壞連線堆積
Server程式碼調整要關閉輸出,否則列印螢幕會拖垮Server.
修改server的max_conn引數為100000或者更大,為了安全實際上只能到99999。
核心引數調整
ulimit -n 要調整為100000甚至更大。如何調這個引數,可以參考網上的一些文章。命令列下執行 ulimit -n 100000即可修改。如果不能修改,需要設定 /etc/security/limits.conf,加入
* hard nofile 100000
* soft nofile 100000
net/ipv4/ip_local_port_range 需要修改為更大的範圍,如20000 – 60000,否則埠號會不夠用。導致客戶端報 99錯誤
單臺是不能壓到10萬的。客戶端連線需要分配一個local port。範圍是上一條設定的。也就是隻有4萬個port可以用。可以使用多臺機器來測試。
net.ipv4.tcp_tw_recycle = 1 ,設定快速回收被close的埠。否則埠會不夠用
其他核心引數的調整,如tcp_fin_timeout、tcp_keepalive_time、tcp_max_syn_backlog可以搜尋網上的文章。
長期執行的Server要有壞連線檢測的能力,比如心跳、活動時間檢測等方案。避免客戶端沒有發REST,導致壞連線堆積