你的位置:BOB(中国)官方入口-BOB综合官方入口 > BOB.COM > BOB.COM 磁盘IO真的比网络IO快吗?
BOB.COM 磁盘IO真的比网络IO快吗?
发布日期:2021-10-06 11:04    点击次数:189

Google大神JeffDean在之前的一次演讲中展现了云云一张外BOB.COM,特意有有趣:

从这张图里吾们能够懂得的望到,计算机体系中各栽关键操作其典型耗时到底有多少。

访存与cache

访问L2cache的时延也许是访问L1cache的10几倍旁边,而访问一次内存的时延则高达访问L2cache的20倍,是访问L1cache耗时的200倍。

这一片面懂得的通知每个程序员,写出对cache友益的程序是至关主要的,尤其你的场景倘若对性能请求很高则更是如此。

分支展望战败的责罚也许只有5ns这个量级,博主在之前的文章《特斯拉遇上CPU:程序员的心理你别猜》这篇文章中特意讲解过CPU的分支展望功能。

分支展望

该功能主要针对if语句,原由当代CPU内部采用流水线方式处理机器指令,所以在if对答的机器指令还异国实走完时后续指令就要进到流水线中,此时CPU就必须推想到底if语句是否为真,倘若CPU猜对了,那么流水线照常运走,但倘若猜错了流水线中已经被实走的一片面指令就要废除。

许多同学望到这篇文章后外示if语句是不是尽量少用,从这张外能够望出,分支展望战败的责罚不高,并且当代CPU的分支展望成功率很高,根本不消在意这点性能亏损。

内存、SSD与磁盘

程序员都晓畅访问内存的速度比SSD块,访问SSD速度比磁盘快,那么到底能快多少呢?

同样挨次读取1MB数据,内存消耗的时间为250,000ns,SSD为1,000,000ns,磁盘为20,000,000ns。

吾们能够望到,同样读取1MB数据BOB.COM,磁盘消耗的时间是SSD的20倍,是内存的80倍。

同样读取1MB数据BOB.COM,SSD耗时是内存的4倍。

这组数据通知吾们,相对内存说磁盘真的很慢,倘若你的经费优裕就用SSD吧,倘若你是土豪,那么就把数据库直接放到内存吧。

网络与磁盘

清淡说吾们认为内存比磁盘快,磁盘比网络快,但这这张外通知吾们用1Gbps网络发送1K数据仅仅必要20,BOB.COM000ns而磁盘的一次寻道则高达10000000ns网络IO可纷歧定比磁盘IO慢。

自然这也要望网络两端距离有多远。

网络

想测量数据包在网络两端回一趟必要耗时多少?ping命令再简片面便不过了。

最先博主在数据中央内部ping一台主机:

一圈下耗时仅在100us旁边速度特意快在数据中央内部空间距离几乎能够无视不计。

吾的坐标在北京接下吾们ping一下清华大学哈哈仔细现在原由云服务商的存在清华大学的官网服务器主机可纷歧定在清华大学里为浅易首见吾们认为所ping的机器都在相答的地理位置上。

这个耗时就很可不悦目了吾们暂时用市中央到清华大学的直线距离评估一下数据包路径长度能够望到也许在10公里旁边的数目级用时将近10ms不要觉得10ms很耗时磁盘一次seek就是这个量级。

接下出个省ping一下浙大:

出了省就是纷歧样北京与浙江的直线距离也许在1200公里网络上走一圈耗时到了将近15ms。

接着吾们出趟国吧往英国转一圈ping下牛津大学:

出了国就更纷歧样了北京与英国直线距离也许在7000公里网络耗时将近50ms。

末了让吾们往趟美国ping下斯坦福大学:

和意料的差不多北京与斯坦福直线距离也许在10000公里耗时也在50ms旁边。

从这组测试吾们能够望出网络的耗时和空间距离有很大有关但在数据中央内部网络其实是特意快的这一点在进走体系设计时必要认识到。

总结

体系设计一栽工程实践不是艺术遐想每一个关键决策都要有按照而不及拍脑袋本文的这张外就是你的按照。

期待这篇文章对行家理解体系时间有所协助。

本文转载自微信公多号「码农的荒岛求生」能够议决以下二维码关注。转载本文请有关码农的荒岛求生公多号。

在ASP.NETCore中操纵Serilog/Fluentd将日志写入Elasticsearch 微柔开源GCToolkit用于解析GC日志的工具 SpringBoot记录乞求相答日志的常用形式 OracleRedo重做日志管理实战视频教程 ELK7日志搜集架构图与实践