多线程读写磁盘备忘

www.zhaoch.top > 操作系统

多线程读写要快些的原因

多线程随机读的处理速度可以达到单线程随机读的10倍以上,但同上也带来了响应时间的增大。结论标明增加线程数,可以有效的提升程序整体的io处理速度。但同时,也使得每个io请求的响应时间上升很多。

从底层的实现上解释这个现象:应用层的io请求在内核态会加入到io请求队列里面。内核在处理io请求的时候,并不是简单的先到先处理,而是根据磁盘的特 性,使用某种电梯算法,在处理完一个io请求后,会优先处理最临近的io请求。这样可以有效的减少磁盘的寻道时间,从而提升了系统整体的io处理速度。但对于每一个io请求来看,由于可能需要在队列里面等待,所以响应时间会有所提升。

https://blog.csdn.net/zlb_xidian/article/details/6626597

AIO的使用

目前没发现支持类似epoll操作磁盘文件句柄的方法。查了下,感觉AIO貌似也不好用,每个操作完成了都要信号通知来处理结果,不能一次批量处理读写事件,大量读写事件并不一定线程池直接read/write快。

http://blog.chinaunix.net/uid-11572501-id-2868654.html

The End