Назад | Перейти на главную страницу

/ proc / slabinfo: ошибка ввода / вывода

Я использую Ubuntu 12.04 и XFS (ядро 3.2.0-38-generic). Поскольку кэш индексных дескрипторов XFS использует слишком много памяти, я хочу ограничить количество объектов, используемых для кеширования индексных дескрипторов XFS.

Согласно руководству, я могу ограничить количество, написав limit в / proc / slabinfo. Но я не могу писать в / proc / slabinfo даже с привилегиями суперпользователя.

$ echo "xfs_inode 1024 0 0" | sudo tee /proc/slabinfo
xfs_inode 1024 0 0
tee: /proc/slabinfo: Input/output error

В чем проблема? Есть ли способ ограничить количество объектов в кэше slab?

В slabinfo(5) страница, к сожалению, устарела. Если я правильно понимаю, в ядре, которое настроено на использование распределителя SLUB (доступно с Linux 2.6.22, а в настоящее время является распределителем памяти ядра по умолчанию), /proc/slabinfo файл не доступен для записи. См. Контрастирующие определения slabinfo_write() в исходных файлах ядра mm/slub.c и mm/slab.c. В mm/slub.c, slabinfo_write() просто выходит из строя с ошибкой EIO.

Изменить: только что подтвердил свое понимание, скомпилировав ядро ​​для использования распределителя SLAB, а не распределителя SLUB по умолчанию. В этом случае /proc/slabinfo доступен для записи, как в исходном вопросе. С участием CONFIG_SLUB, файл недоступен для записи, а параметры отображаются как 0.