您应该知道的延迟号

您应该知道的延迟号

你们中的许多人都在低延迟和高吞吐量的系统上工作。 开发此类系统的关键是了解延迟,无论是CPU缓存,RAM,磁盘还是网络。 我发现了一些有趣的延迟时间数字 ,了解这些数字非常重要,因为所有这些数字都是基于光速的,我们都知道我们永远无法获得比光速更快的速度。

L1缓存参考……………………。 0.5纳秒
分支机构错误地预测…………………………。 5纳秒
L2缓存参考………………………7 ns
Mutex锁定/解锁………………………25 ns
主存储器参考……………………。 100毫微秒
使用Zippy…………压缩1K字节。 3,000 ns = 3 µs
通过1 Gbps网络发送2K字节……。 20,000 ns = 20微秒
SSD随机读取……………………150,000 ns = 150 µs
从内存中顺序读取1 MB….. 250,000 ns = 250 µs
同一数据中心内的往返行程……500,000 ns = 0.5 ms
从SSD *顺序读取1 MB….. 1,000,000 ns = 1毫秒
磁盘搜寻.............................. 10,000,000 ns = 10毫秒
从磁盘…顺序读取1 MB。 20,000,000 ns = 20毫秒
发送数据包CA->荷兰-> CA…。 150,000,000 ns = 150毫秒

CPU缓存延迟成本

L1缓存距离CPU核心最近,当您移开缓存时,您会发现延迟受到了打击,如果您进行十亿次,那么它将转换为明显的延迟,这就是它的样子。

分钟
L1 cache reference                  0.5 s         One heart beat (0.5 s)
Branch mispredict                   5 s           Yawn
L2 cache reference                  7 s           Long yawn
Mutex lock/unlock                   25 s          Taking couple of deep breath.
小时
Main memory reference               100 s         Answering nature call
连续2.9天从内存中读取1 MB
欢迎长周末

因此,要获得更好的性能,您必须尝试接近L1 / L2缓存,这确实是一件很难的事情。 您已经开发了Cache遗忘算法来获得出色的性能。

I / O延迟成本

从磁盘…顺序读取1 MB。 20,000,000
ns =
20毫秒
 Read 1 MB sequentially from SSD( ~1GB/sec )  ..... 1,000,000 ns  =   1 ms 

因此,普通磁盘平均可以读取50 MB /秒

对于SSD,我们有1000 MB /秒

50 MB /秒的速度非常快,并且有许多技术可以通过调整读取的缓冲区大小来增加顺序读取。 因此,在决定使用哪种类型的磁盘之前,应确保能够以从普通磁盘读取的速率处理数据。 如果您无法以这种速度进行处理,那么获取SSD磁盘毫无意义。

资源资源

参考: 您应该从我们的JCG合作伙伴 Ashkrit Sharma处的Are you ready博客上知道延迟时间

翻译自: https://www.javacodegeeks.com/2013/05/latency-number-that-you-should-know.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值