К сожалению aio в nginx еще очень сырое, при его использовании nginx не определяет закрытое соединение (конкретно в этом могу ошибаться, в общем, не освобождаются ресурсы) и nginx съедает всю память вместе со свопом (со временем), кроме того, статистика stub_status показывает черти что (данные увеличенные в десятки раз).
почему для тестов с aio было выставлено 20 воркеров, в рассылке nginx'а неоднократно рекомендовали выставлять число воркеров равным числу ядер?
было бы интересно посмотреть на графики, когда при использовании aio выставлено 2, 4 или 8 воркеров.
Они не ели cpu вообще. Пару процентов на все. 4х не хватает на эту нагрузку точно (проверял), поэтому поставил побольше. Чего не хватает на 4х — мне сложно сказать.
Воркеры = ядрам — это, в общем случае, много. Обычно хватает 2х. Здесь же специфическая нагрузка.
Не очень понятно, как именно Вы определили, что 4-х воркеров недостаточно (я правильно понял, что тестирование проходило на 4-х ядерной машине?)?
Вы написали, что сложно сказать чего не хватает, но ведь основываясь на чем-то Вы пришли к выводу, что надо выставить не 4, а 20, хотелось бы услышать, на чем Вы основывались в своем решении.
Прошу прощения за повторения вопроса, когда Вы производили тестирование, случайно не делали графиков для меньшего числа воркеров? Если такие графики есть, был бы рад, если Вы ими поделитесь.
Машинка вообще на 2 ядра. У меня был тест на 4 воркера+aio — результат был меньше, чем простой sendfile. Исходников не осталось — новый график построить не смогу.
Отдаём статику nginx'ом