O que é shrink_slab e por que ele está aparecendo em / var / log / messages?

3

Estou investigando alguns problemas de aplicativos em um sistema Linux e percebi isso na época do problema mais recente, mas não perto o suficiente para estar definitivamente relacionado:

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

O que é isso? Googling não está ajudando, eu entendo que é algo com VM, mas por que de repente aparece em / var / log / messages?

Edit: Eu entendo que isso é mostrado porque o número de páginas que ele pode liberar ("nr") é negativo. O que é presumivelmente uma coisa ruim. Eu encontrei correções para novos kernels que exibem uma mensagem mais útil para esse efeito. Ainda não tenho certeza do que isso significa, ou o que eu preciso fazer sobre isso.

    
por Steve Kehlet 08.06.2012 / 19:57

1 resposta

3

Sua mensagem é gerada pelo alocador de placas , o mecanismo usado pelo kernel Linux para gerenciar a parte da memória precisa de si mesmo (não para processos de espaço do usuário). Originalmente, foi escrito por Jeff Bonwick para Solaris, e é provavelmente mais fácil de entender lendo Bonwick (94) ( PDF ).

Se você está se perguntando sobre o nome, em seu blog Bonwick eventualmente revelou a história por trás dele .

Quando você está vendo as especificações do Linux, o artigo Anatomia do Linux alocador slab (link atualmente morto, veja archive.org para uma cópia ) deve cobrir isso. Se você quiser entender também o gerenciamento da memória do espaço do usuário, Mel Gorman, Entendendo o Gerenciador de Memória Virtual do Linux dá ainda mais detalhes.

Para os leitores de língua alemã, há uma excelente introdução no Artigo da Wikipédia em alemão sobre o alocador de placas .

    
por 08.06.2012 / 20:38