中文

通过环境感知和邻居感知的线程管理降低尾延迟

分布式、并行与集群计算 2024-07-17 v1 性能

摘要

应用程序尾部延迟是许多服务的关键指标, 高延迟直接导致收入损失.现代深层嵌套的微服务架构加剧了尾部延迟, 增加了用户体验尾延迟的可能性.本文展示了当应用程序在高负载下时, OS 线程的 CPU 超额分配导致高尾延迟. CPU 超额分配可由两种运营因素引起:在处于 CPU 配额的情况下错误确定可用 CPU 数量,以及对邻居应用程序及其 CPU 使用情况的忽视.我们讨论了不同语言获取可用 CPU 数量的解决方案,评估其影响,并讨论了更统一、语言无关的接口来获取可用 CPU 数量的机会.随后,我们评估了邻居使用情况对尾延迟的影响,并引入一种新的邻居感知线程池 friendlypool, 动态避免超额分配.在我们的评估中, friendlypool 在降低最大工作线程延迟最高可降低至 6.7×6.7\times 的同时, 将吞吐量降低至 1.4×1.4\times.

关键词

引用

@article{arxiv.2407.11582,
  title  = {Reducing Tail Latencies Through Environment- and Neighbour-aware Thread Management},
  author = {Andrew Jeffery and Chris Jensen and Richard Mortier},
  journal= {arXiv preprint arXiv:2407.11582},
  year   = {2024}
}