nginx cache manager process потребляет CPU в ngx resolver lookup name
Ilya Evseev
nginx-forum на forum.nginx.org
Ср Сен 20 03:38:18 UTC 2017
Дано: nginx 1.13.5 под CentOS 7.3
В perf top:
Children, Self Command, Shared Object,
Symbol
- 27,63% 0,00% nginx [unknown] [.]
0000000000000000
- 0
24,87% ngx_resolver_lookup_name.isra.1
- 2,76% __libc_writev
Для ngx_resolver_lookup_name.isra.1 смотрю "Zoom into nginx thread" -- вижу
в списке вызывавшихся функций sys_unlink, ngx_http_file_cache_manager и т.д.
Из этого делаю вывод, что функция потребляет процессор внутри процесса nginx
cache manager.
Смотрю в nginx/src/core/ngx_resolver.c -- вижу, что ngx_resolver_lookup_name
делает только поиск по красно-чёрному дереву.
Вопрос: чем хотя бы примерно может быть вызвано такое большое потребление
процессора этой функцией?
Сервер проксирует ~150 проектов, у каждого свой кэш. Суммарно ~200k файлов
на SSD. Около 300 upstream server's.
Эффект проявляется только на production под большой нагрузкой, поэтому сбор
диагностики несколько затруднён. Непонятно, как применить callgrind или
debug log только к cache manager, не трогая воркеры.
Posted at Nginx Forum: https://forum.nginx.org/read.php?21,276455,276455#msg-276455
Подробная информация о списке рассылки nginx-ru