Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

io uring的使用 #1

Open
LemonPrefect opened this issue Jan 4, 2023 · 4 comments
Open

io uring的使用 #1

LemonPrefect opened this issue Jan 4, 2023 · 4 comments
Labels
question Further information is requested

Comments

@LemonPrefect
Copy link
Member

LemonPrefect commented Jan 4, 2023

ref: https://arthurchiao.art/blog/intro-to-io-uring-zh/

@LemonPrefect LemonPrefect converted this from a draft issue Jan 4, 2023
@LemonPrefect LemonPrefect changed the title 探讨io uring的使用(https://arthurchiao.art/blog/intro-to-io-uring-zh/) io uring的使用 Jan 4, 2023
@LemonPrefect
Copy link
Member Author

@LemonPrefect LemonPrefect added the question Further information is requested label Jan 4, 2023
@juzi5201314
Copy link
Contributor

juzi5201314 commented Jan 4, 2023

正面意义

  • io uring允许"真正"的异步操作文件io,而不是像现在tokio的异步文件操作实际上是在线程池里执行文件io操作。
  • 在网络io上可能会有性能提升

难点

根据tokio的rust io uring库readme所述,io uring需要特别新的linux内核,理论上至少5.6以上。
虽然也有部分发行版将io uring支持向后移植到旧版本的内核,但是毕竟还是少数。
如果支持io uring,意味着至少需要再编译多一个版本的二进制文件来分发。

对本项目的影响

以现在我想到的地方,或许最大收益是记录日志时写入日志文件的时候?我设想中大概是要记录各种安装日志,访问日志,系统信息记录等等。
但作为一个面板后端或许并不缺这点性能提升?
但是如果怀着练习或者试试看的心态,我觉得可以试试。

cc @LemonPrefect

@LemonPrefect
Copy link
Member Author

根据tokio的rust io uring库readme所述,io uring需要特别新的linux内核,理论上至少5.6以上。
虽然也有部分发行版将io uring支持向后移植到旧版本的内核,但是毕竟还是少数。

我觉得内核版本更新不是问题,至少现在主流的发行版都已经超过这个,就比如 Ubuntu focal。

如果支持io uring,意味着至少需要再编译多一个版本的二进制文件来分发。

没有必要为过多的老版本系统背上历史包袱,系统应该更新而不是新软件兼容。

但作为一个面板后端或许并不缺这点性能提升?

或许来点 benchmark 能直观地看到差别?

@juzi5201314
Copy link
Contributor

juzi5201314 commented Jan 4, 2023

系统应该更新而不是新软件兼容。

感觉还是有很多在用比较老的系统版本的,比如一些云服务商默认提供的预装系统版本可能就比较老。不过这个不是什么大问题,编译也是ci来编译的,工作量不大。

或许来点 benchmark 能直观地看到差别?

我这两天写个看一下

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
Status: 🔧待处理
Development

No branches or pull requests

2 participants