zhboner / realm

A network relay tool
MIT License
1.54k stars 285 forks source link

realm有多线程优化吗?在一台多核机器上,u单核性能比较差,经常吃满一个cpu,其他cpu好像不怎么动 #128

Closed yangyzp closed 5 months ago

yangyzp commented 6 months ago

realm有多线程优化吗?在一台多核机器上,u单核性能比较差,经常吃满一个核心,其他核心好像不怎么动

zephyrchien commented 6 months ago

多线程功能可以参考 Build Options 中的 multi-thread (Github Release页面的预编译二进制都开启了此选项)

方便补充一下使用场景吗? 如果开启了TLS, 可能CPU都消耗在加/解密上了。

yangyzp commented 6 months ago

中转ssr,采用realm+tls方式。我用的就是 Github Release页面的预编译二进制文件。但是似乎并没有用到多线程。是需要额外开启吗?

zephyrchien commented 6 months ago

不用手动开启, 默认用的就是多线程Runtime= =。但是单个连接同时只能被一个线程处理, 期间发生的CPU运算也没法被多线程分摊。。

zephyrchien commented 6 months ago

@E021ntox 不明白你的意思。 Realm是单进程程序,对于进程资源没有任何处理。

zephyrchien commented 6 months ago

@E021ntox 可以实现,但是 SIGTERM的默认处理就是直接退出,我觉得问题在于容器中的Realm没有收到信号。 这边有篇相关的讨论

zephyrchien commented 6 months ago

@E021ntox 我们可以再开一个Issue进行讨论

E021ntox commented 4 months ago

@E021ntox 可以实现,但是 SIGTERM的默认处理就是直接退出,我觉得问题在于容器中的Realm没有收到信号。 这边有篇相关的讨论

似乎是退出部分有bug,最后的退出代码是137