如题,现在有一个 rpc 服务,在一些磁盘 IO 抖动的机器上,服务相应时间也跟着抖动。服务本身是很少读写磁盘的。
1
yidinghe Feb 6, 2020 via Android
没有其他约束的情况下,把磁盘内容放到内存中是显而易见的做法。
|
2
codehz Feb 7, 2020 via Android
不考虑缓存文件的情况下,方案如:
1 上多线程(或者用 glibc 的 aio,也是多线程实现 2 用 native aio (需要 Direct IO 支持,和文件系统有关系,然后实际需要不少技巧才能发挥作用 3 用 io-uring 的 api (需要新内核支持 当然最好还是自己缓存一下文件,做个 LRU 一类的缓存 其实合理的情况应该是上数据库( |
3
YouLMAO Jan 30, 2021 via Android
一定是你没有用异步线程池吧,阻塞了吧
|