Есть ли способ, желательно простой, как проверить содержимое кешей SLAB, особенно Дентри кеш? Я могу представить, что это можно сделать с помощью модулей ядра, но я очень сомневаюсь, что безопасность позволит мне установить специальный модуль ядра в производственную систему.
Я на 99% уверен, что мы затронуты утечкой NSS dentry, но хочу видеть кешированные записи, чтобы быть уверенным на 100%.
rhel, 2.6.32 nss-softokn-3.14.3-23.3.0.1.el6_8.x86_64
Спасибо!
Server Fault уже упоминал об этом раньше: Необычно высокое использование кэша Dentry что привело к Ошибка RHEL 1044666, могут ли запросы curl HTTPS делать меньше системных вызовов доступа?
Просмотр содержимого кеша не требуется. Судя по отчету об ошибке, это немалое количество объектов в кеше, они получили миллионы их всего за несколько выполнений curl. Кроме того, вы можете увидеть, как он обращается к файлам, отслеживая процессы с помощью NSS, просматривая вызовы access (). Должен быть большой доступ к несуществующим файлам.
Установить переменную среды NSS_SDB_USE_CACHE и повторить тест. Эта переменная env должна быть установлена на «да» или «нет», очевидно, чтобы обойти тесты скорости файловой системы. Избыточный доступ к несуществующим файлам должен прекратиться, а потребление плиты стабилизироваться.
В общем, плита не должна расти бесконечно.
Следите за этим с течением времени. Например, netdata по умолчанию собирает slab. (Тем не менее, экспортируйте его в базу данных временных рядов с большим сроком хранения, чтобы увидеть тенденции за дни и недели.)