Depois de ler esta página na documentação do mysql , tentei entender o uso atual do InnoDB. Atualmente, alocamos 6 GB de RAM para o buffer pool. O tamanho do nosso banco de dados é praticamente o mesmo. Aqui está a saída de show engine innodb status\G
(estamos executando a versão 5.5)
----------------------
BUFFER POOL AND MEMORY
----------------------
Total memory allocated 6593445888; in additional pool allocated 0
Dictionary memory allocated 1758417
Buffer pool size 393215
Free buffers 853
Database pages 360515
Old database pages 133060
Modified db pages 300
Pending reads 0
Pending writes: LRU 0, flush list 0, single page 0
Pages made young 7365790, not young 23099457
0.00 youngs/s, 0.00 non-youngs/s
Pages read 1094342, created 185628, written 543182148
0.00 reads/s, 0.00 creates/s, 37.32 writes/s
Buffer pool hit rate 1000 / 1000, young-making rate 0 / 1000 not 0 / 1000
Pages read ahead 0.00/s, evicted without access 0.00/s, Random read ahead 0.00/s
LRU len: 360515, unzip_LRU len: 0
I/O sum[2571]:cur[0], unzip sum[0]:cur[0]
Eu queria saber o quão bem estamos utilizando o cache do buffer. Depois de olhar inicialmente para a saída, parecia que realmente a estávamos usando, com base nos números Pages made young
e not young
temos neles e Buffer pool hit rate is 1000 / 10000
(o que vi em outros lugares na web que isso significa que está sendo usado com bastante intensidade. Verdade?)
O que está me excitando é por que os dois são young-making rate
e not
são 0/1000 e os acessos young/s
e non-young/s
são ambos 0. Todos indicam que ele não está sendo usado, certo?
Alguém pode ajudar a entender isso?
fonte
young-making rate 0 / 1000
e0.00 youngs/s
, isso nos diz que não estamos realmente utilizando. Estou lendo isso certo?Discordo da avaliação de que "você tem a sorte de ter um buffer pool com uma taxa de acerto perfeita de 100%"
No topo da saída (que é cortada), há uma linha parecida com:
Isso me diz que nenhuma leitura aconteceu nos últimos 16 segundos, dando (artificialmente) uma pontuação perfeita de '1000/1000'.
Enquanto isso, houve algumas gravações. Possivelmente, essas gravações foram adiadas para liberar páginas 'sujas' ou limpar índices do 'buffer de alteração'.
Provavelmente também não houve atividade na área jovem / quente nos últimos 16 segundos.
fonte
SHOW VARIABLES LIKE 'query%';
eSHOW GLOBAL STATUS LIKE 'Qc%';
eSHOW GLOBAL VARIABLES LIKE 'Com_SELECT';
.O buffer pool é dividido em duas partes, uma lista jovem e uma lista não jovem. A taxa de criação mostra quantas páginas nos buffer pools estão sendo embaralhadas entre as duas listas.
Páginas feitas jovens não são páginas novas (isto é, estão sendo lidas fora do cache. Páginas feitas não jovens são páginas movidas da lista jovem porque são muito antigas ou porque a lista jovem está cheia.
A taxa nas páginas é movida entre os dois depende de quanto do buffer pool está sendo usado no momento versus o tamanho do pool jovem. Definir como zero significa que seu conjunto ativo (as páginas que você está usando) é menor que o pool jovem.
fonte