Jestem dość wielkim noobem, jeśli chodzi o konfigurację MySQL pod kątem wydajności. I szczerze mówiąc, nie martwię się o precyzyjne dostrojenie, aby wycisnąć każdą ostatnią wydajność z MySQL, ale wiem, że najważniejszą rzeczą, która zapewnia jedne z najlepszych rezultatów, jest prawidłowe konfigurowanie buforów / buforów.
Próbowałem uprościć sprawę, używając tylko InnoDB jako silnika pamięci. Mam dedykowany serwer dla MySQL. Ma 8 GB pamięci RAM, jak mam to przydzielić, aby zmaksymalizować wydajność? Chciałbym móc dopasować całą bazę danych do pamięci w celu uzyskania najlepszej wydajności. Baza danych ma około 5 GB. czy to możliwe?
Ile pamięci powinienem przeznaczyć na pamięć podręczną zapytań? Ile kosztuje pula buforów InnoDB? Ile kosztuje reszta komputera (tj. Procesy niezwiązane z MySQL)? Itp.
Ponieważ nie używam MyISAM, tak naprawdę nie muszę wkładać dużo pamięci do pamięci podręcznej kluczy, prawda?
IMHO powinieneś być w stanie iść z
To byłoby 62,5% pamięci RAM z wystarczającą ilością pamięci RAM dla systemu operacyjnego serwera oraz pamięcią dla połączeń DB
@kvisle zaleca korzystanie z mysqltuner.pl. Ten skrypt jest doskonały do oceny ilości pamięci RAM, którą należy poświęcić na rozmiar_łączenia_buforu, rozmiar_buforu sortowania, rozmiar_buforu odczytu i rozmiar_buforu odczytu. Te 4 bufory dodane razem są mnożone przez max_connections. Ta odpowiedź jest dodawana do buforów statycznych (innodb_buffer_pool_size + key_buffer_size). Połączone kwoty są zgłaszane. Jeśli ta łączna suma przekracza 80% pamięci RAM, wówczas należy zmniejszyć te rozmiary buforów. mysqltuner.pl będzie bardzo pomocny w tym zakresie.
Ponieważ wszystkie dane to InnoDB, możesz bardzo zmniejszyć key_buffer_size (bufor pamięci podręcznej dla indeksów MyISAM) (zalecam 64M).
Oto post, który napisałem w DBA StackExchange, aby obliczyć zalecany rozmiar innodb_buffer_pool_size .
AKTUALIZACJA 15.10.2011 19:55 EDT
Jeśli wiesz, że będziesz mieć 5 GB danych, to moja pierwsza rekomendacja była OK. Jednak zapomniałem dodać jedną rzecz:
Rozmiar pliku dziennika musi wynosić 25% puli buforów InnoDB
AKTUALIZACJA 16.10.2011 13:36 EDT
Reguła 25% opiera się wyłącznie na dwóch plikach dziennika. Chociaż możliwe jest użycie wielu plików dziennika innodb, dwa zwykle działają najlepiej.
Inni wyrazili przy użyciu 25%
Jednak, szczerze mówiąc, ktoś z oryginalnej firmy InnoBase Oy wyraził opinię, że nie stosuje reguły 25% z powodu posiadania większej puli buforów InnoDB .
Oczywiście reguła 25% nie może działać, gdy ma się dużo pamięci RAM. W rzeczywistości największy dozwolony rozmiar pliku dziennika_wpisu_logowania przy użyciu tylko 2 plików dziennika to 2047 mln, ponieważ łączny rozmiar pliku dziennika musi być mniejszy niż 4G (4096 mln)
PRZYPADEK: Jeden z moich klientów pracodawcy ma serwer DB z 192 GB pamięci RAM. Nie ma możliwości posiadania plików dziennika 48G. Po prostu używam maksymalnego rozmiaru pliku dziennika innodb, 2047M. Komentarz @ Kvisle do mojej odpowiedzi zawiera po prostu link stwierdzający, że nie musisz ograniczać się do dwóch plików dziennika. Jeśli masz N plików dziennika, nie mogą one łącznie 4G. Moja zasada 25% jest po prostu w idealnym świecie (serwer DB z 8 GB lub mniej).
źródło