Ostatnio zmagam się z problemami z wydajnością przezroczystych ogromnych stron i zauważyłem, że wiele systemów baz danych zaleca ich wyłączenie. Mówię o Oracle, Postgresql, MySQL, Cassandra, NuoDB, Redis, Hadoop i innych.
Dla przykładów:
- Peter Zaitsev (2014-07-23). Dlaczego TokuDB nienawidzi przezroczystych ogromnych stron . Perkona.
- Michele Casey (17.09.2013). Problemy z wydajnością przezroczystych, ogromnych stron . Wyrocznia.
- Adam Abrevaya i Oleg Levin (15.05.2014). Linux Transparent Huge Pages, JEMalloc i NuoDB . NuoDB DevCentre.
Zastanawiam się więc: jakie rodzaje obciążenia korzystają z tej funkcji?
linux
memory
virtual-memory
database
James H.
źródło
źródło
Odpowiedzi:
Ogromne strony przydałyby się w sytuacji, gdy trzeba było napisać ogromną ilość informacji w tym samym bloku. Może odnosić się do strategii zapisu na dysku i może mieć znaczenie dla buforowania. Podobnie jak wszystkie opcje konfiguracji, nie ma sensu, jeśli przypadek użycia nie pasuje.
Tak więc odpowiedź brzmi: obciążenie, które faktycznie potrzebuje ogromnej ilości danych w tym samym bloku, skorzystałoby z ogromnych stron. Gdyby dane były tak duże, nie byłyby w stanie zmieścić się, ale musiałyby zostać podzielone na wiele plików stron, a sama ich liczba byłaby zbyt duża, aby z nich poradzić sobie lub była zła z jakiegoś powodu, a mniejsza liczba większych pliki są lepsze - jest tak w przypadku dużych plików stron.
W praktyce nigdy nie spotkałem się z taką potrzebą, ale wiem z zarządzania pamięcią podręczną - jest to rzeczywistość i ktoś gdzieś mógłby skorzystać z ogromnych stron.
źródło
Nie wiem, kto ci powiedział, że Cassandra nie skorzysta z uścisków. Być może chcesz być trochę rozmowny w kierunku opcji defragmentacji z / sys / kernel / mm / transparent_hugepage.
Osobiście właśnie przetestowałem klaster Cassandra z lub bez hugepage i po różnych testach z różną wielkością parytu, od 300 b do 4k, mogę powiedzieć, że włączę je ponownie.
źródło