Po przeczytaniu tej strony w dokumentacji mysql starałem się zrozumieć nasze obecne użycie InnoDB. Obecnie przydzielamy 6 GB pamięci RAM dla puli buforów. Rozmiar naszej bazy danych jest mniej więcej taki sam. Oto dane wyjściowe z show engine innodb status\G
(korzystamy z wersji 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]
Chciałem wiedzieć, jak dobrze wykorzystujemy bufor bufora. Po początkowym spojrzeniu na wynik, okazało się, że rzeczywiście go używamy, na podstawie Pages made young
i not young
mamy w nim liczby i Buffer pool hit rate is 1000 / 10000
(co widziałem w innych miejscach w Internecie, co oznacza, że jest dość intensywnie używane. Prawda?)
To, co rzuca mnie przez pętlę, to dlaczego young-making rate
i not
są na poziomie 0/1000, a dostęp young/s
i non-young/s
są na poziomie 0. To wszystko wskazywałoby, że w ogóle nie jest używane, prawda?
Czy ktoś może to zrozumieć?
źródło
young-making rate 0 / 1000
i oznacza to0.00 youngs/s
, że tak naprawdę nie wykorzystujemy tego. Czy czytam to prawda?Nie zgodzę się z oceną, że „masz szczęście, że masz pulę buforów o doskonałym 100% trafieniu”
Na górze wyjścia (które jest odcięte) znajduje się wiersz podobny do:
Mówi mi to, że w ciągu ostatnich 16 sekund nie dokonano żadnych odczytów, co (sztucznie) daje doskonały wynik „1000/1000”.
W międzyczasie pojawiło się kilka zapisów. Były to prawdopodobnie odroczone zapisy w celu opróżnienia „brudnych” stron lub usunięcia indeksów z „bufora zmian”.
Prawdopodobnie w ciągu ostatnich 16 sekund nie było żadnej aktywności w strefie młodych / gorących.
źródło
SHOW VARIABLES LIKE 'query%';
iSHOW GLOBAL STATUS LIKE 'Qc%';
iSHOW GLOBAL VARIABLES LIKE 'Com_SELECT';
.Pula buforów jest podzielona na dwie części: młodą listę i młodą listę. Szybkość tworzenia pokazuje, ile stron w pulach buforów jest tasowanych między dwiema listami.
Strony, które stały się młode, nie są tworzone dla młodych stron (tzn. Są odczytywane z pamięci podręcznej. Strony, które są młode, to strony przeniesione z młodej listy, ponieważ są za stare lub ponieważ młoda lista jest pełna.
Szybkość przesuwania stron między nimi zależy od tego, jaka część puli buforów jest aktualnie używana w porównaniu do wielkości młodej puli. Ustawienie na zero oznacza, że twój aktywny zestaw (strony, których używasz) jest mniejszy niż młoda pula.
źródło