We have a VOD service and we are using nginx as webserver.

Our system doesn't use nginx-vod-module instead it just has all the small m4s files for a dash stream.

I came across this article(Thread Pools in NGINX Boost Performance 9x) by Valentin Bartenev.

It says that enabling aio in nginx might be a good solution for reducing io wait and load.

but it says:

A good example here is FreeBSD. Unfortunately, we can’t say the same about Linux. Although Linux provides a kind of asynchronous interface for reading files, it has a couple of significant drawbacks.

then I came across this question and this answer:

AIO on Linux is horribly broken by design. Nginx supports it, but you probably don't want to use it since you can't use the disk cache at the same time.

but those were for more than 5 years ago. I wanted to know since our OS is linux and we have a lot of basically random requests for any of the files is enabling aio any good? or running more nginx worker processes per core might perform better on linux?

  • What problem are you solving? How are your web servers not meeting your performance targets? What performance tuning have you already done, show your configuration. Feb 23, 2023 at 17:44
  • our current problem is that we reach max io usage. so our current solution is just buying loads and loads of ssd to meet the io requirements. but in the article that was linked in the question they reached a 10gbps using HDD hard drives.
    – Mojtaba
    Feb 23, 2023 at 18:14
  • @Mojtaba I was reading the same article and had the same questions as you, before finding this post. However, in the article 10gbps is the performance of the network, not disk
    – Slav
    Nov 15, 2023 at 20:54


You must log in to answer this question.

Browse other questions tagged .