Linux I/O模型思考

本文探讨了在高性能服务器领域中应用程序与I/O设备之间的矛盾,即应用需求的增长与I/O设备性能提升缓慢之间的冲突。文章分析了不同历史阶段的需求特点,并提出了在物理限制不变的情况下,如何通过软件层面的优化来缓解这一矛盾。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        关注这个领域其实已经很久了,尤其是在高性能服务器领域,这是最核心的问题。但最近回想起来发现其实很多时候没有把最基本也是最根本的问题弄清楚,做了很多无用功,浪费了不少时间。这里我所说的基本和根本的问题就是I/O的模型问题,其实是现实世界发展变化的浓缩,本源问题想不清楚,其他的都是废话。

        最近在网上看到一篇写的不错的科普贴(末尾给出链接),可能也是作者对别人的材料进行深度加工而成,我这里其实也是对这篇文章进行炒剩饭,但给出了自己,可能也包括很多朋友的一点疑惑和思考,希望各位在阅读的时候也深入思考,我们一起交流。

        Linux的世界里面,一切皆文件,而文件最大的行为就是读写(Input/Output),不同的文件有不同的读写方式,如传统磁盘设备需要通过机械式寻道+数据传输,网络设备需要将数据写到网卡设备的缓冲区......咋看起来这很简单,但问题就出现在人民群众越来越高的需求与相对较低的生产力之间的不匹配,计算机世界中的人民群众指的是应用程序,而相对较低的生产力很多时候特指这些IO设备,于是一对难以调和的矛盾就产生了:应用程序要求底层执行越来越快,而底层却受限物理特性,只能龟速发展。产生这篇博客的根源就是如何缓和这对阶级之间的巨大矛盾?

        既然物理上的限制暂时无法有一个大的突破,那么我们只能在上层和中间层做点文章,玩点把戏了,在做文章之前我们仔细地分析下问题所在。

原始社会

一切混沌初开,我们所能做到的只是食可果腹,衣可蔽体,不奢望山珍海味,锦缎丝绸。应用程序对底层性能没有那么高的要求,因为本身没有那么大的需求,我们想想最初的互联网用户数量就知道了,所以即使下层慢点,也不会对外有多大的影响。这个时候我们的应用程序可以这么做:






http://freeloda.blog.51cto.com/2033581/1285332

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值