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

Что такое shrink_slab и почему он отображается в / var / log / messages?

Я исследую некоторые проблемы приложений в системе Linux и заметил это примерно во время самой последней проблемы, но не настолько близко, чтобы быть окончательно связанной:

Jun  7 17:51:49 localhost kernel: shrink_slab: nr=-155456000
Jun  7 17:51:49 localhost kernel: shrink_slab: nr=-157859400
Jun  7 17:51:49 localhost kernel: shrink_slab: nr=-157833400
Jun  8 06:20:23 localhost kernel: shrink_slab: nr=-284172800

Что это? Поиск в Google не помогает, я понимаю, что это что-то с виртуальной машиной, но почему оно внезапно появляется в / var / log / messages?

Изменить: я так понимаю, это показано, потому что количество страниц, которые он может освободить («nr»), отрицательно. Что, по-видимому, плохо. Я нашел патчи для новых ядер, которые отображают более полезные сообщения на этот счет. Все еще не уверен, что это значит и что мне нужно с этим делать.

Ваше сообщение создано распределитель плит, механизм, используемый ядром Linux для управления той частью памяти, которая ему нужна для себя (не для процессов пользовательского пространства). Первоначально он был написан Джеффом Бонвиком для Solaris, и, вероятно, легче всего понять, прочитав Бонвик (94) (PDF).

Если вам интересно название, в своем блоге Бонвик в конце концов раскрыл историю за этим.

Если вы посмотрите на особенности Linux, статья Анатомия slab-распределителя Linux (ссылка сейчас мертва, см. archive.org для копии) должен покрыть это. Если вы хотите понять, как управлять памятью пользовательского пространства, Мел Горман, Знакомство с диспетчером виртуальной памяти Linux дает еще больше деталей.

Для немецкоязычных читателей есть отличное введение в Немецкая статья в Википедии о распределителе слэбов.