O MySQL tem suporte a grandes páginas / hugetlb para o InnoDB. E há muitos posts ( exemplo ) sobre o assunto.
Mas alguém tem exemplos de quais alterações de desempenho eles viram?
Eu vi outros sistemas de banco de dados ganharem desempenho usando o hugetlb. Por exemplo. um armazenamento de valor-chave distribuído mmapped nosql proprietário. A loja ficaria mais lenta à medida que o arquivo mmap expandia para mais de 0,5 GB. Ele não se degradou ainda mais, mesmo depois de 2 ou 3 GB.
A observação foi ao longo das linhas de; se nós armazenamos sessões ativas do usuário, e por exemplo. 100 usuários que tiveram 32MB de dados, a velocidade de leitura seria X registros / seg. Em 3000 usuários, teríamos cerca de 1 GB e a velocidade de leitura seria reduzida para X / 2. A velocidade de leitura abrange tanto a pesquisa de hash quanto a cópia de dados. Todo o acesso era local da máquina, por isso era a memória para copiar a memória.
Agora, se os usuários efetuaram logout, o arquivo de dados da loja permaneceria o mesmo, embora o espaço chave / val fosse reduzido para 32MB, as hashtables fossem rebicadas etc. Mas a velocidade de leitura permanecia em X / 2 e não subir.
Acontece que o TLB falha no cache, e o uso de páginas grandes significava que a velocidade permaneceria em torno de X, mesmo quando os usuários chegassem a 10000 e o arquivo crescesse cada vez mais.
Isso é ótimo e tudo. E o instinto agora me diz que o MySQL deveria ter as mesmas características e que permitir páginas grandes / grandes Mas, sem alguns exemplos, é uma venda difícil de experimentar.
Então, alguém já tentou usar o hugetlb / páginas grandes para obter ganhos de desempenho e qual foi sua experiência (bom / ruim / neutro)? Eu adoraria ouvir tanto o tamanho do DB quanto a mudança de desempenho, se é que você viu.
Números bem-vindos!