heiher / hev-socks5-server

A high-performance socks5 server for Unix (Linux/Android/BSD/macOS)
MIT License
185 stars 33 forks source link

workers如何设置使得性能最佳? #42

Closed CCCAUCHY closed 7 months ago

heiher commented 7 months ago

如果并发数或带宽不是特别多,1个worker足矣。多一些也没坏处,一般可以与cpu核数相同。

CCCAUCHY commented 7 months ago

如果并发数或带宽不是特别多,1个worker足矣。多一些也没坏处,一般可以与cpu核数相同。

并发时, 即使workers比核心数多, 也有明显的好处吗

CCCAUCHY commented 7 months ago

发现一处操作系统差异, 在Ubuntu上, 使用netstat -nlpt可以看到与workers数量相同的同PID进程监听, 而在centos上只会显示一个监听进程

heiher commented 7 months ago

发现一处操作系统差异, 在Ubuntu上, 使用netstat -nlpt可以看到与workers数量相同的同PID进程监听, 而在centos上只会显示一个监听进程

只有一个监听的应该是Linux内核不支持 socket reuseport。

heiher commented 7 months ago

如果并发数或带宽不是特别多,1个worker足矣。多一些也没坏处,一般可以与cpu核数相同。

并发时, 即使workers比核心数多, 也有明显的好处吗

当内核支持reuseport时,比cpu线程数还多的workers没问题。而当不支持时,不建议超过cpu线程数。

CCCAUCHY commented 7 months ago

socket reuseport

对于一个6.1版本的内核很难想象不支持这个功能, 但我没有找到开启这个功能的内核参数

heiher commented 7 months ago

socket reuseport

对于一个6.1版本的内核很难想象不支持这个功能, 但我没有找到开启这个功能的内核参数

6.1支持的

CCCAUCHY commented 7 months ago

socket reuseport

对于一个6.1版本的内核很难想象不支持这个功能, 但我没有找到开启这个功能的内核参数

6.1支持的

但为什么只有一个监听的呢

heiher commented 7 months ago

具体是哪个版本,有没有live iso,我看看。

CCCAUCHY commented 7 months ago

具体是哪个版本,有没有live iso,我看看。

Amazon Linux 2023

heiher commented 7 months ago

但为什么只有一个监听的呢

只是不同的netstat版本展示差异,如果想看精确的listen记录,可以通过 /proc/net/tcp6

grep 0438 /proc/net/tcp6 # 0438是端口1080
CCCAUCHY commented 7 months ago

但为什么只有一个监听的呢

只是不同的netstat版本展示差异,如果想看精确的listen记录,可以通过 /proc/net/tcp6

grep 0438 /proc/net/tcp6 # 0438是端口1080

看不懂, 为什么workers为1和4时没有明显差异

heiher commented 7 months ago

workers不同,grep结果的行数相同?

CCCAUCHY commented 7 months ago

workers不同,grep结果的行数相同?

刚启动无连接时, 行数与workers数量相同, 但是客户端连接后, 行数都是刷屏

heiher commented 7 months ago

那就没问题了,每一行对应一个端口的使用记录。

CCCAUCHY commented 7 months ago

如果并发数或带宽不是特别多,1个worker足矣。多一些也没坏处,一般可以与cpu核数相同。

并发时, 即使workers比核心数多, 也有明显的好处吗

当内核支持reuseport时,比cpu线程数还多的workers没问题。而当不支持时,不建议超过cpu线程数。

workers为1且cpu是单核时, 是否还具有并发能力

heiher commented 7 months ago

workers为1且cpu是单核时, 是否还具有并发能力

并发能力总是有的;当cpu为多核且workers > 1时具有并行能力。