Проверка аллокатора в выводе команды zcat /proc/config.gz
На этом этапе мы проверим конфигурацию аллокатора, изучив файл конфигурации ядра, который обычно сжат и находится по пути /proc/config.gz
. Этот файл содержит параметры конфигурации, использованные при сборке ядра, в том числе те, которые связаны с выделением памяти.
Сначала используем команду zcat
для распаковки и просмотра содержимого файла конфигурации:
zcat /proc/config.gz
Команда zcat
похожа на cat
, но она автоматически распаковывает файлы в формате gzip. Вывод будет представлять собой длинный список параметров конфигурации ядра.
Для поиска параметров, связанных с аллокатором, можно использовать grep
для фильтрации вывода. Например, чтобы найти параметры, связанные с аллокатором слябов (slab allocator), можно использовать следующую команду:
zcat /proc/config.gz | grep SLAB
Эта команда отобразит строки, содержащие "SLAB". Вы, возможно, увидите что-то вроде этого:
CONFIG_SLAB=y
## CONFIG_SLAB_DEPRECATED is not set
CONFIG_SLUB=y
## CONFIG_SLOB is not set
Эти параметры указывают, какой аллокатор слябов включен в ядре. CONFIG_SLAB=y
означает, что включен оригинальный аллокатор слябов, а CONFIG_SLUB=y
- что включен аллокатор SLUB. Должен быть включен только один из них. CONFIG_SLOB
- это упрощенный аллокатор для встроенных систем.
Вы также можете искать другие параметры, связанные с аллокаторами, например, те, которые относятся к аллокатору страниц (page allocator) или системе бадди (buddy system). Например:
zcat /proc/config.gz | grep PAGE_ALLOC
Это покажет параметры, связанные с выделением страниц.
Изучая файл конфигурации ядра, вы можете проверить, какой аллокатор используется и какие параметры включены. Это может помочь понять поведение системы при управлении памятью.