Maxim Dounin
April 25, 2020 12:00PM
Hello!

On Fri, Apr 24, 2020 at 04:15:13AM -0400, Dmytro Lavryk wrote:

> Доброго всем здоровья, в сложившейся обстановке.
>
> Есть nginx c "замороченным конфигом". Используется для проксирования раздачи
> видео по секьюрити ссылкам. Уонфиг такой достался, лично мне не везде
> понятен. потому... Суть ситуации - потребление памяти процессами nginx все
> время растет.. при достижении какого-то пикового значения (~1,2Гб на процесс
> /их 16-ть получается/) сильно падает скорость отдачи. при этом свободная
> память в ситеме все еще есть. Хотелось бы понять 2 момента:
> 1. Почему происходит потеря продуктивности?
> 2. Почему потребление памяти все время растет, а не ограничивается на
> каком-то уровне?

В конфиге три кэша, у каждого из них - гигабайт на ключи в
разделяемой памяти. Из общих соображений можно предположить, что

> vod_metadata_cache metadata_cache 4096m 30m;
> vod_response_cache response_cache 256m 30m;

в конфиге означает ещё до 4 с лишним гигабайт разделяемой памяти.

То есть банальный запуск nginx'а с такой конфигурацией потребует
более 7 гигабайт памяти.

И при этом, судя по всему, минимум 512 килобайт буферов будет
расходоваться на соединение ("vod_cache_buffer_size 512k;"), то
есть до 4 гигабайт на процесс (512k * 8192). А скорее всего и
больше, сколько требует тот же brotli - надо разбираться.

То есть цифры по памяти выглядят вполне адекватными конфигурации,
даже если предположить, что в используемых сторонних модулях
никаких проблем нет.

Что до потери скорости отдачи - то тут надо разбираться в причинах
по месту, смотреть, во что именно упираемся. Типичные причины:
упёрлись в диск, кончилась память (даже если она "в системе всё
ещё есть" - уменьшение количества свободной памяти в системе
означает ухудшение эффективности кэширования файлов операционной
системой, и соответственно рост нагрузки на диск), кончилась сеть,
кончился процессор.

Я бы рекомендовал начать с простого: разобраться, во что именно
упираемся. А дальше уже разбираться, почему.

Из совсем простого - выкиньте из конфига open_file_cache, толку от
него с вероятностью 99.99% нет вообще никакого, а проблем огрести
можно легко и непринуждённо, особенно при тех настройках что у
вас: с 512 тысячами открытых файлов на каждый процесс банально OS
может не справиться без специального тюнинга.

--
Maxim Dounin
http://mdounin.ru/
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Отъедает память и начинает тормозить. Помогите найти причину.

Dmytro Lavryk April 24, 2020 04:15AM

Re: Отъедает память и начинает тормозить. Помогите найти причину.

Maxim Dounin April 25, 2020 12:00PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 185
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready