Saved in:
Bibliographic Details
Main Authors: Jeffery, Andrew, Jensen, Chris, Mortier, Richard
Format: Preprint
Published: 2024
Subjects:
Online Access:https://arxiv.org/abs/2407.11582
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866911957071691776
author Jeffery, Andrew
Jensen, Chris
Mortier, Richard
author_facet Jeffery, Andrew
Jensen, Chris
Mortier, Richard
contents Application tail latency is a key metric for many services, with high latencies being linked directly to loss of revenue. Modern deeply-nested micro-service architectures exacerbate tail latencies, increasing the likelihood of users experiencing them. In this work, we show how CPU overcommitment by OS threads leads to high tail latencies when applications are under heavy load. CPU overcommitment can arise from two operational factors: incorrectly determining the number of CPUs available when under a CPU quota, and the ignorance of neighbour applications and their CPU usage. We discuss different languages' solutions to obtaining the CPUs available, evaluating the impact, and discuss opportunities for a more unified language-independent interface to obtain the number of CPUs available. We then evaluate the impact of neighbour usage on tail latency and introduce a new neighbour-aware threadpool, the friendlypool, that dynamically avoids overcommitment. In our evaluation, the friendlypool reduces maximum worker latency by up to $6.7\times$ at the cost of decreasing throughput by up to $1.4\times$.
format Preprint
id arxiv_https___arxiv_org_abs_2407_11582
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle Reducing Tail Latencies Through Environment- and Neighbour-aware Thread Management
Jeffery, Andrew
Jensen, Chris
Mortier, Richard
Distributed, Parallel, and Cluster Computing
Performance
Application tail latency is a key metric for many services, with high latencies being linked directly to loss of revenue. Modern deeply-nested micro-service architectures exacerbate tail latencies, increasing the likelihood of users experiencing them. In this work, we show how CPU overcommitment by OS threads leads to high tail latencies when applications are under heavy load. CPU overcommitment can arise from two operational factors: incorrectly determining the number of CPUs available when under a CPU quota, and the ignorance of neighbour applications and their CPU usage. We discuss different languages' solutions to obtaining the CPUs available, evaluating the impact, and discuss opportunities for a more unified language-independent interface to obtain the number of CPUs available. We then evaluate the impact of neighbour usage on tail latency and introduce a new neighbour-aware threadpool, the friendlypool, that dynamically avoids overcommitment. In our evaluation, the friendlypool reduces maximum worker latency by up to $6.7\times$ at the cost of decreasing throughput by up to $1.4\times$.
title Reducing Tail Latencies Through Environment- and Neighbour-aware Thread Management
topic Distributed, Parallel, and Cluster Computing
Performance
url https://arxiv.org/abs/2407.11582