jaké jsou obrovské stránky v Linuxu?

Další informace o obrovských stránkách v Linuxu. Pochopte, co jsou obrovské stránky, jak je nakonfigurovat, jak zkontrolovat aktuální stav a jak jej deaktivovat.

HugePages v Linuxu

V tomto článku se budeme vás provede podrobnosti o obrovské stránky tak, že budete moci odpovědět: jaké jsou obrovské stránek v Linuxu? Jak povolit / zakázat obrovské stránky? Jak zjistit obrovskou hodnotu stránky? v Linuxu jako RHEL6, RHEL7, Ubuntu atd.

umožňuje začít s obrovskými základy stránek.

co je obrovská stránka v Linuxu?

Obrovské stránky jsou užitečné při správě virtuální paměti v systému Linux. Jak název napovídá, pomáhají spravovat stránky obrovské velikosti V paměti kromě standardní velikosti stránky 4KB. Pomocí obrovských stránek můžete definovat velikost stránky 1GB.

během spouštění systému si rezervujete část paměti s obrovskými stránkami pro vaši aplikaci. Tyto paměti obsazené obrovskými stránkami se nikdy nevyměňují z paměti. Bude se tam držet, dokud nezměníte konfiguraci. To do značné míry zvyšuje výkon aplikací, jako je databáze Oracle s poměrně velkými požadavky na paměť.

Proč používat obrovskou stránku?

ve správě virtuální paměti jádro udržuje tabulku, ve které má mapování adresy virtuální paměti na fyzickou adresu. Pro každou transakci stránky musí jádro načíst související mapování. Pokud máte stránky malé velikosti, musíte načíst více čísel stránek, což vede k jádru, abyste načetli více mapových tabulek. To snižuje výkon.

použití obrovských stránek znamená, že budete potřebovat méně stránek. Tím se do značné míry snižuje počet mapových tabulek, které má jádro načíst. To zvyšuje výkon na úrovni jádra, což v konečném důsledku prospívá vaší aplikaci.

stručně řečeno, tím, že umožňuje obrovské stránky, systém má méně stránce tabulky se vypořádat s, a tedy menší nároky na přístup/udržovat je!

jak nakonfigurovat obrovské stránky?

spusťte níže uvedený příkaz a zkontrolujte aktuální podrobnosti o obrovských stránkách.

root@kerneltalks # grep Huge /proc/meminfoAnonHugePages: 0 kBHugePages_Total: 0HugePages_Free: 0HugePages_Rsvd: 0HugePages_Surp: 0Hugepagesize: 2048 kB

Ve výše uvedeném výstupu, můžete vidět jeden-velikost stránky je 2 MB Hugepagesize a celkem 0 stránky na systému HugePages_Total. Tato obrovská velikost stránky může být zvýšena z 2MB na max 1GB.

spusťte pod skriptem, abyste získali, kolik obrovských stránek váš systém v současné době potřebuje. Skript je od společnosti Oracle a lze jej najít.

#!/bin/bash## hugepages_settings.sh## Linux bash script to compute values for the# recommended HugePages/HugeTLB configuration## Note: This script does calculation for all shared memory# segments available when the script is run, no matter it# is an Oracle RDBMS shared memory segment or not.# Check for the kernel versionKERN=`uname -r | awk -F. '{ printf("%d.%d\n",$1,$2); }'`# Find out the HugePage sizeHPG_SZ=`grep Hugepagesize /proc/meminfo | awk {'print $2'}`# Start from 1 pages to be on the safe side and guarantee 1 free HugePageNUM_PG=1# Cumulative number of pages required to handle the running shared memory segmentsfor SEG_BYTES in `ipcs -m | awk {'print $5'} | grep "*"`do MIN_PG=`echo "$SEG_BYTES/($HPG_SZ*1024)" | bc -q` if ; then NUM_PG=`echo "$NUM_PG+$MIN_PG+1" | bc -q` fidone# Finish with resultscase $KERN in '2.4') HUGETLB_POOL=`echo "$NUM_PG*$HPG_SZ/1024" | bc -q`; echo "Recommended setting: vm.hugetlb_pool = $HUGETLB_POOL" ;; '2.6' | '3.8' | '3.10' | '4.1' ) echo "Recommended setting: vm.nr_hugepages = $NUM_PG" ;; *) echo "Unrecognized kernel version $KERN. Exiting." ;;esac# End

můžete Si uložit je v /tmphugepages_settings.sh a pak jej spustit jako níže :

root@kerneltalks # sh /tmp/hugepages_settings.shRecommended setting: vm.nr_hugepages = 124

výstup bude podobný nějakému číslu, jak je uvedeno ve výše uvedeném ukázkovém výstupu.

to znamená, že váš systém potřebuje 124 obrovské stránky 2MB každý! Pokud jste nastavili 4MB jako velikost stránky, výstup by byl 62. Máš pravdu, že jo?

Configure hugepages in kernel

poslední částí je konfigurace výše uvedeného parametru jádra a jeho opětovné načtení. Přidejte níže uvedenou hodnotu v /etc/sysctl.conf a znovu načtěte konfiguraci vydáním příkazu sysctl -p.

vm.nr_hugepages=126

Všimněte si, že jsme přidali další 2 stránky v jádře, protože chceme, aby pár stránek náhradních než skutečné požadované číslo.

nyní byly v jádře nakonfigurovány obrovské stránky, ale aby je vaše aplikace mohla používat, musíte také zvýšit limity paměti. Nový limit paměti by měl být 126 stran x 2 MB = 252 MB, tj.

Budete muset upravit nastavení níže v /etc/security/limits.conf

soft memlock 258048 hard memlock 258048

Někdy se tato nastavení jsou nakonfigurovány v aplikaci soubory specifické pro Oracle DB v jeho /etc/security/limits.d/99-grid-oracle-limits.conf

a je to! Možná budete chtít restartovat aplikaci, abyste mohli využívat tyto nové obrovské stránky.

jak zakázat hugepages?

HugePages jsou obecně povoleny ve výchozím nastavení. Pomocí níže uvedeného příkazu Zkontrolujte aktuální stav obrovských stránek.

root@kerneltalks # cat /sys/kernel/mm/transparent_hugepage/enabled madvise never

příznak ve výstupu ukazuje, že v systému jsou povoleny hugepages.

Pro RedHat systémy na bázi cesta k souboru je /sys/kernel/mm/redhat_transparent_hugepage/enabled

Pokud chcete zakázat obrovské stránky, pak přidáme transparent_hugepage=never, na konci kernel/etc/grub.conf a restartujte systém.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.