O AnonHugePages é usado pelo kernel para "páginas grandes transparentes". Eles são contabilizados separadamente do "HugePages_Total" listado em meminfo.
Originalmente, para usar páginas enormes, seu aplicativo precisava suportá-las diretamente. Java faz, o Oracle faz. Tenho certeza de que existem outros grandes usuários de memória que os usam. Eles também devem ser configurados manualmente. Como alternativa, seu aplicativo precisava usar o hugetlbfs, que é uma interface específica para o uso de páginas grandes. O hugetlbfs usa o conjunto de sistemas de "hugepages" regulares, como aplicativos que usam as páginas enormes diretamente.
Mais recentemente, há uma adição de páginas amplas transparentes. Teoricamente, isso oferece os benefícios de páginas maiores sem o custo de modificar seus aplicativos. Um thread do kernel chamado khugepaged varre a memória e mescla páginas padrão em páginas maiores. O Red Hat 6 adiciona páginas de entrada transparentes. Eu não sei o que outras distros têm, mas eu sei que este é um trabalho em andamento.
Na prática, isso às vezes causa problemas com a capacidade de resposta do sistema. Eu tive problemas com um sistema executando muitos aplicativos java com muita memória (que não foram configurados manualmente para usar as páginas maiores). O sistema tem 128 GB de RAM e executa o RHEL6. Depois de 90 dias, a memória ficaria fragmentada. Neste ponto, teríamos pausas no sistema de um minuto ou dois, presumivelmente, a memória estava bloqueada enquanto o khugepaged corria. Desativar as abraepages transparentes melhorou imediatamente. Ainda tivemos alguns problemas de desempenho, mas configurar o java para usar as páginas de abertura manuais corrigiu as coisas.
Esta apresentação tem uma boa e detalhada explicação sobre as páginas principais: