Hva er de store sidene I Linux ?

Lær om store sider I Linux. Forstå hva som er store sider, hvordan du konfigurerer det, hvordan du sjekker gjeldende tilstand, og hvordan du deaktiverer den.

HugePages I Linux

I denne artikkelen vil vi gå gjennom detaljer om store sider, slik at du vil være i stand til å svare: hva er store sider i linux? Slik aktiverer / deaktiverer du store sider? Hvordan bestemme stor sideverdi? I Linux som RHEL6, RHEL7, Ubuntu, etc.

Kan starte med Store sider grunnleggende.

Hva Er Stor side I Linux?

Store sider er nyttige i virtuelt minnehåndtering I Linux-systemet. Som navnet antyder, hjelper de med å administrere store størrelse sider i minnet i tillegg til standard 4kb sidestørrelse. Du kan definere så stor SOM 1gb sidestørrelse ved hjelp av store sider.

under systemstart reserverer du minnedelen med store sider for søknaden din. Dette minnet del dvs. disse minne okkupert av store sider er aldri byttet ut av minnet. Det vil holde seg der til du endrer konfigurasjonen. Dette øker programytelsen i stor grad som Oracle database med ganske store minnekrav.

Hvorfor bruke stor side?

i virtual memory management opprettholder kjernen en tabell der den har en tilordning av den virtuelle minneadressen til en fysisk adresse. For hver sidetransaksjon må kjernen laste relatert tilordning. Hvis du har små sider, må du laste inn flere antall sider som resulterer i kjernen for å laste inn flere kartleggingstabeller. Dette reduserer ytelsen.

å Bruke store sider betyr at du trenger færre sider. Dette reduserer antall kartleggingstabeller som skal lastes av kjernen i stor grad. Dette øker ytelsen på kjernenivå som til slutt fordeler søknaden din.kort sagt, ved å aktivere store sider, har systemet færre sidetabeller å håndtere og dermed mindre overhead for å få tilgang til/vedlikeholde dem!

hvordan konfigurere store sider?

Kjør under kommando for å sjekke gjeldende store sider detaljer.

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

i utdataene ovenfor kan du se at sidestørrelsen ER 2MB Hugepagesize og totalt 0 sider på systemet HugePages_Total. Denne enorme sidestørrelsen kan økes FRA 2mb til maks 1gb.

Kjør under skript for å få hvor mye store sider systemet ditt trenger for tiden. Manuset er Fra Oracle og kan bli funnet.

#!/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

Du kan lagre det i/tmp som hugepages_settings.sh og kjør det som nedenfor :

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

Output vil være lik noen tall som vist i ovenfor prøve utgang.

Dette betyr at systemet ditt trenger 124 store sider MED 2 MB hver! Hvis DU har satt 4MB som sidestørrelse, ville utgangen ha vært 62. Du har poenget, ikke sant?

Konfigurer hugepages i kernel

nå er siste del å konfigurere den ovennevnte kjerneparameteren og laste den på nytt. Legg til underverdi i/etc/sysctl.conf og last inn konfigurasjon ved å utstedesysctl -p kommando.

vm.nr_hugepages=126

Legg Merke til at vi la til 2 ekstra sider i kjernen siden vi vil beholde et par sider ekstra enn det faktiske nødvendige nummeret.

nå har store sider blitt konfigurert i kjernen, men for å la programmet bruke dem, må du også øke minnegrensene. Den nye minnegrensen skal være 126 sider x 2 MB hver = 252 MB, dvs. 258048 KB.

du må redigere under innstillinger i/etc/security/limits.conf

soft memlock 258048 hard memlock 258048

noen ganger er disse innstillingene konfigurert i app-spesifikke filer som For Oracle DB its i/etc/security/limits.d/99-grid-oracle-limits.conf

Det er det! Du vil kanskje starte programmet på nytt for å gjøre bruk av disse nye store sider.

slik deaktiverer du storesider?

HugePages er vanligvis aktivert som standard. Bruk kommandoen nedenfor for å sjekke gjeldende tilstand av store sider.

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

flagg i utdata viser at hugepages er aktivert på systemet.

for RedHat baserte systemer filbanen er/sys/kernel/mm/redhat_transparent_hugepage/enabled

hvis du vil deaktivere store sider deretter leggetransparent_hugepage=never på slutten avkernel linje i/etc/grub.conf og start systemet på nytt.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.