lesismal / go-websocket-benchmark

121 stars 14 forks source link

Update benchmark.sh #3

Closed guonaihong closed 1 year ago

guonaihong commented 1 year ago

修改下unlimt -n

guonaihong commented 1 year ago

刚刚跑了下,直接报错了。修改下unlimit -n 。加大单进程最大fd就行。

lesismal commented 1 year ago

放在 env.sh 里吧,工整一些

另外100w不够跑100w连接的,设置成2005000好些,用高配硬件跑海量也够用

lesismal commented 1 year ago

这个我先close了,我刚更新了一大波,再最新版基础上重新pr下吧

guonaihong commented 1 year ago

ulimit -n 只能在当前shell以及它的子shell里面生效。如果放到env.sh里面就不会生效。这已经是兄弟shell了。

guonaihong commented 1 year ago

或者你自己加下? sysctl -w fs.file-max=2000500 sysctl -w fs.nr_open=2000500 sysctl -w net.nf_conntrack_max=2000500 ulimit -n 2000500 sysctl -w net.ipv4.tcp_tw_reuse=1

lesismal commented 1 year ago

我默认的 /etc/profile 和 .bashrc 就是类似这样的,所以我自己跑百万连接测试时候都忘记 ulimit -n 这问题了:

sysctl -w net.ipv4.ip_local_port_range="1024 65535"
sysctl -w fs.file-max=2000500
sysctl -w fs.nr_open=2000500
sysctl -w net.nf_conntrack_max=2000500
ulimit -n 2000500
sysctl -w net.ipv4.tcp_mem='131072  262144  524288'
sysctl -w net.ipv4.tcp_rmem='8760  256960  4088000'
sysctl -w net.ipv4.tcp_wmem='8760  256960  4088000'
sysctl -w net.core.rmem_max=16384
sysctl -w net.core.wmem_max=16384
sysctl -w net.core.somaxconn=2048
sysctl -w net.ipv4.tcp_max_syn_backlog=2048
sysctl -w /proc/sys/net/core/netdev_max_backlog=2048
# sysctl -w net.ipv4.tcp_tw_recycle=1 # client nat tcp-handshak problem
sysctl -w net.ipv4.tcp_tw_reuse=1
lesismal commented 1 year ago

或者你自己加下? sysctl -w fs.file-max=2000500 sysctl -w fs.nr_open=2000500 sysctl -w net.nf_conntrack_max=2000500 ulimit -n 2000500 sysctl -w net.ipv4.tcp_tw_reuse=1

来 PR 一下呗,人多显得热闹,给你留着位置呢,哈哈哈

guonaihong commented 1 year ago

我。。。可以。 最近打算把以前写的websocket的包,强化下性能。初始版本只是简单玩了下rfc6455. 看你们这几天, 天天秀benchmark数据,有点手痒,哈哈。。。

lesismal commented 1 year ago

我。。。可以。 最近打算把以前写的websocket的包,强化下性能。初始版本只是简单玩了下rfc6455. 看你们这几天, 天天秀benchmark数据,有点手痒,哈哈。。。

欢迎啊,哈哈哈,来来来

我的异步解析器,即使用同步模式,也做不到性能最强,而且gws已经优化得差不多了,所以短时间内我不打算再单独支持个同步解析器了

海量并发的场景目前只有nbio一个,我主要支持这个就够用了,而且普通连接场景nbio也不算太慢