你应该知道的延迟数字

请注意,这些不是准确的数字。它们基于一些在线基准(Jeff Dean 的延迟数字 + 一些其他来源)。

  • L1 和 L2 高速缓存:1 ns、10 ns例如:它们通常内置在微处理器芯片上。除非您直接使用硬件,否则您可能不需要担心它们。
  • RAM 访问:100 ns例如:从内存中读取数据大约需要 100 ns。Redis 是内存数据存储,因此从 Redis 读取数据大约需要 100 ns。
  • 通过 1 Gbps 网络发送 1K 字节:10 us例如:通过网络从 Memcached 发送 1KB 数据大约需要 10 us。
  • 从 SSD 读取:100 us例如:RocksDB 是基于磁盘的 K/V 存储,因此 SSD 上的读取延迟约为 100 us。
  • 数据库插入操作:1 ms。例如:Postgresql 提交可能需要 1 毫秒。数据库需要存储数据、创建索引和刷新日志。所有这些行动都需要时间。
  • 发送数据包 CA->Netherlands->CA: 100 ms例如:如果我们有一个长途 Zoom 呼叫,延迟可能在 100 ms 左右。
  • 内部重试/刷新:1-10s例如:在监控系统中,刷新间隔通常设置为 5~10 秒(Grafana 上的默认值)。

注释:
1 ns = 10^-9 秒
1 us = 10^-6 秒 = 1,000 ns
1 ms = 10^-3 秒 = 1,000 us = 1,000,000 ns