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