知识卡片

响应时间与延迟是两个不同的概念

普通读书笔记卡

内容

“延迟(latency)”和”响应时间(response time)”经常被当作同义词混用,但含义并不相同。 响应时间是客户端实际看到的端到端耗时,除了请求被真正处理的时间(服务时间,service time)之外,还包括网络传输延迟和排队延迟;延迟专指某个请求在被服务之前处于等待、 休眠状态的持续时长。这个区分之所以重要,是因为它提示了一个常被忽视的事实:即使 服务器处理每个请求的速度完全一样快,客户端看到的响应时间依然会因为网络抖动、排队 等待而产生剧烈波动——优化”服务时间”(让处理逻辑本身更快)和优化”排队延迟”(减少 请求在队列里等待的时间)是两类不同性质的工作,前者是代码/算法层面的优化,后者往往 是容量规划/负载均衡层面的问题。当系统出现响应变慢时,先要分清楚慢在哪个环节——是 处理本身慢了,还是请求在排队——才能对症下药,否则会把精力浪费在优化不是瓶颈的地方。

参考来源

- 位置:《数据密集型应用系统设计》第一章《可靠性、可伸缩性、可维护性》"描述性能" (源文件:_epub-src/ch1_split_004.html) - 结论依据:原文明确说明响应时间是客户端看到的、包含网络延迟和排队延迟以及服务 时间的整体耗时,而延迟特指请求等待处理的持续时长,两者常被混用但实际不同,直接 支撑本卡片结论。 - 原始内容:延迟(latency)和响应时间(response time)经常用作同义词,但实际上它们 并不一样。响应时间是客户所看到的,除了实际处理请求的时间(服务时间,service time)之外,还包括网络延迟和排队延迟。延迟是某个请求等待处理的持续时长,在此期间 它处于休眠(latent)状态,并等待服务。