记录系统等相关操作的时间,供在算法设计和架构设计中的时间延迟参考。
数据摘自《性能之巅——洞悉系统、企业与云计算》《大型网站架构技术—核心原理与案例分析》
注:在未提供机器配置的情况下,时间数据仅供比例参考,比较两个操作的轻重程度。
最新数据可参考:
http://www.eecs.berkeley.edu/~rcs/research/interactive_latency.html
总结:
1)纳秒级操作:
纳秒级:cpu计算cache访问
10~100纳秒级:cpu访问内存
2)微秒级操作:
微秒级:内存读取1M数据
百微秒级:
(a)SSD读取1M数据
(b)局域网ping 一台主机
(c)Redis一次查询
3)毫秒级操作
毫秒级:机械硬盘读取1M数据
10~100ms :
(a) 广域网ping 一台主机
(b)局域网数据库查询
4)秒级操作
访问一个网站
一 时间单位
单位
|
与秒对比
|
秒 |
1 s |
毫秒 |
1e-3 s |
微妙 |
1e-6 s |
纳秒 |
1e-9 s |
皮秒 |
1e-12 s |
二 系统延时
操作
|
耗时
|
1 cpu 周期 |
0.3 纳秒 |
L1 缓存访问 |
0.9 纳秒 |
L2 缓存访问 |
2.8 纳秒 |
L3 缓存访问 |
12.9 纳秒 |
主存访问(CPU访问DRAM) |
120 纳秒 |
固态硬盘IO |
50~150 微妙 |
机械硬盘IO |
1-10 毫秒 |
互联网:旧金山到纽约 |
40毫秒 |
互联网:旧金山到英国 |
81毫秒 |
互联网:旧金山到澳大利亚 |
183毫秒 |
TCP 包重传 |
1~3 秒 |
OS虚拟化系统重启 |
4秒 |
SCSI 命令超时 |
30秒 |
硬件虚拟化系统重启 |
40秒 |
物理系统重启 |
5分 |
三 常用操作响应时间
操作 |
响应时间 |
打开一个网站 |
几秒 |
数据库查询一条记录(有索引) |
十几毫秒 |
机械磁盘一次寻址定位 |
4毫秒 |
机械磁盘顺序读取1MB数据 |
2毫秒 |
SSD磁盘顺序读取1MB数据 |
0.3 毫秒 |
从远程分布式缓存Redis读取一个数据 |
0.5 毫秒 |
从内存读取1MB数据 |
十几微妙 |
Java程序本地方法调用 |
几 微妙 |
网络传输2KB数据 |
1微妙 |