[Resending: just noticed that the reply I sent on Oct 23 didn't
include b.d.o] I don't think the article is about the same thing we're talking
here. CONFIG_PREEMPT* options control the compromise between
latency and throughput of *system calls* and *scheduling of CPU cycles
spent in kernel mode*, not network traffic. Granted, networking is
affected by the setting too, but intuition tells me that a
nonpreemptible system call -- meaning, one that finish all
processing until it ends, or blocks on I/O -- could even *decrease* network latency, not
increase.
On 2020-10-23 6:04 p.m., Ben Hutchings
wrote:
On Thu, 2020-10-22 at 13:43 -0700, Flavio Veloso wrote:Package: linux-image-cloud-amd64 Version: 4.19+105+deb10u7 Severity: wishlist Since cloud images are mostly run for server workloads in headless environments accessed via network only, it would be better if "linux-image-cloud-*" kernels were compiled with CONFIG_PREEMPT_NONE=y ("No Forced Preemption (Server)"). Currently those packages use CONFIG_PREEMPT_VOLUNTARY=y ("Voluntary Kernel Preemption (Desktop)") CONFIG_PREEMPT_NONE description from kernel help:[...] I know what it says, but I think the notion that latency is less important on servers is outdated. It's well known that people give up quickly on web pages that are slow to load: <https://www.gigaspaces.com/blog/amazon-found-every-100ms-of-latency-cost-them-1-in-sales/>. And a web page can depend on (indirectly) very many servers, which means that e.g. high latency that only occurs 1% of the time on any single server actually affects a large fraction of requests. Ben. -- FVS |