De nåværende verdiene til Linux-kjernen og dens komponenter blir gjort tilgjengelige ved hjelp av et spesielt grensesnitt - katalogen / proc [5]. Dette er et virtuelt filsystem der enkeltfilene er fylt med verdier i sanntid. Verdiene representerer den faktiske tilstanden Linux-kjernen er i. Du kan få tilgang til de enkelte filene i / proc-katalogen ved hjelp av cat-kommandoen som følger:
$ cat / proc / sys / net / core / somaxconn128
$
En av disse kjerneparametrene kalles vm.swappiness. Den "styrer den relative vekten som er gitt for å bytte ut kjøretidsminne, i motsetning til å slippe minnesider fra systemets cache" [6]. Starter med Linux-kjerneutgivelser 2.6 ble denne verdien introdusert. Den lagres i filen / proc / sys / vm / swappiness .
Bruke bytte
Bruken av bytte [6] var en viktig del av bruken av mindre UNIX-maskiner tidlig på 1990-tallet. Det er fremdeles nyttig (som å ha et reservedekk i kjøretøyet) når ekle minnelekkasjer forstyrrer arbeidet ditt. Maskinen vil avta, men vil i de fleste tilfeller fortsatt være brukbar for å fullføre den tildelte oppgaven. Gratis programvareutviklere har gjort store fremskritt for å redusere og eliminere programfeil, så før du endrer kjerneparametere, bør du først oppdatere til en nyere versjon av applikasjonen og relaterte biblioteker.
Hvis du kjører flere oppgaver, vil de inaktive oppgavene bli byttet ut til disk, og utnytte minnet bedre sammen med dine aktive oppgaver. Videoredigering og andre store minnekrevende applikasjoner har ofte anbefalte mengder minne og diskplass. Hvis du har en eldre maskin som ikke kan ha en minneoppgradering, kan det være en god midlertidig løsning å gjøre mer bytte tilgjengelig (se [6] om hvordan du lærer mer om det).
Byttingen kan skje på en egen partisjon eller på en byttefil. Partisjonen er raskere og favoriseres av mange databaseapplikasjoner. Filtilnærmingen er mer fleksibel (se pakken dphys-swapfile i Debian GNU / Linux [7]). Å ha mer enn en fysisk enhet for bytte lar Linux-kjernen velge den enheten som er raskest tilgjengelig (lavere ventetid).
vm.swappiness
Standardverdien for vm.swappiness er 60 og representerer prosentandelen av ledig minne før du aktiverer bytte. Jo lavere verdi, desto mindre blir bytte brukt, og jo flere minnesider holdes i fysisk minne.
Verdien på 60 er et kompromiss som fungerer bra for moderne stasjonære systemer. En mindre verdi er et anbefalt alternativ for et serversystem, i stedet. Som Red Hat Performance Tuning manualen påpeker [8], anbefales en mindre bytteverdi for databasearbeid. For eksempel, for Oracle-databaser, anbefaler Red Hat en bytteverdi på 10. For MariaDB-databaser anbefales det derimot å sette swappiness til verdien 1 [9].
Endring av verdien påvirker direkte ytelsen til Linux-systemet. Disse verdiene er definert:
* 0: bytte er deaktivert
* 1: minimumsbytte uten å deaktivere det helt
* 10: anbefalt verdi for å forbedre ytelsen når det er tilstrekkelig minne i et system
* 100: aggressiv bytte
Som vist ovenfor hjelper kattkommandoen til å lese verdien. Sysctl-kommandoen gir deg også det samme resultatet:
# sysctl vm.swappinessvm.swappiness = 60
#
Husk at sysctl-kommandoen bare er tilgjengelig for en administrativ bruker. Slik angir du verdien midlertidig, angir verdien i / proc-filsystemet slik:
# echo 10> / proc / sys / vm / swappinessSom et alternativ kan du bruke sysctl-kommandoen som følger:
# sysctl -w vm.swappiness = 10For å sette verdien permanent, åpne filen / etc / sysctl.conf som administrativ bruker og legg til følgende linje:
vm.swappiness = 10Konklusjon
Flere og flere linux-brukere kjører virtuelle maskiner. Hver og en har sin egen kjerne i tillegg til hypervisoren som faktisk styrer maskinvaren. Virtuelle maskiner har virtuelle disker opprettet for dem, så endring av innstillingen inne i den virtuelle maskinen vil ha ubestemte resultater. Forsøk først med å endre verdiene til hypervisor-kjernen, da den faktisk styrer maskinvaren på maskinen din.
For eldre maskiner som ikke lenger kan oppgraderes (har allerede maksimalt støttet minne), kan du vurdere å plassere en liten solid state-disk i maskinen for å bruke den som en ekstra bytteenhet. Dette vil åpenbart bli forbruksmateriell ettersom minneceller mislykkes fra mange skrivinger, men kan forlenge maskinens levetid i et år eller mer til svært lave kostnader. Den lavere ventetiden og raske avlesninger vil gi mye bedre ytelse enn å bytte til en vanlig disk, noe som gir mellomliggende resultater til RAM. Dette skal tillate deg å bruke noe lavere vm.swappiness-verdier for optimal ytelse. Du må eksperimentere. SSD-enheter endres raskt.
Hvis du har mer enn en bytteenhet, bør du vurdere å gjøre det til en RAID-enhet for å strippe data på tvers av tilgjengelige enheter.
Du kan gjøre endringer i swappiness uten å starte maskinen på nytt, en stor fordel i forhold til andre operativsystemer.
Prøv å ta med bare tjenestene du trenger for virksomheten din. Dette vil redusere minnekravene, forbedre ytelsen og holde alt enklere.
En siste merknad: Du vil legge til belastning på bytteenhetene dine. Du vil ønske å overvåke temperaturene på dem. Et overopphetet system vil senke CPU-frekvensen og redusere hastigheten.
Anerkjennelser
Forfatteren vil rette en spesiell takk til Gerold Rupprecht og Zoleka Hatitongwe for deres kritiske kommentarer og kommentarer mens han forbereder denne artikkelen.
Lenker og referanser
* [1] Linux Kernel Tutorial for Beginners, https: // linuxhint.no / linux-kernel-tutorial-nybegynnere /
* [2] Derek Molloy: Writing a Linux Kernel Module - Del 1: Introduksjon, http: // derekmolloy.dvs. / skrive-en-linux-kjernemodul-del-1-introduksjon /
* [3] Derek Molloy: Skrive en Linux-kjernemodul - Del 2: En karakterenhet, http: // derekmolloy.dvs. / skrive-en-linux-kjernemodul-del-2-en-tegn-enhet /
* [4] Derek Molloy: Skrive en Linux-kjernemodul - Del 3: Knapper og lysdioder, http: // derekmolloy.dvs. / kernel-gpio-programmering-knapper-og-lysdioder /
* [5] Frank Hofmann: Kommandoer om å administrere Linux-minne, https: // linuxhint.com / kommandoer for å administrere linux-minne /
* [6] Frank Hofmann: Linux Kernel Memory Management: Swap Space, https: // linuxhint.com / linux-memory-management-swap-space /
* [7] dphys-swapfile-pakke for Debian GNU / Linux, https: //-pakker.debian.org / stretch / dphys-swapfile
* [8] Red Hat Performance Tuning Guide, https: // access.Rød hatt.no / dokumentasjon / no-us / red_hat_enterprise_linux / 6 / html / performance_tuning_guide / s-memory-tunables
* [9] Konfigurere MariaDB, https: // mariadb.no / kb / no / bibliotek / configuring-swappiness /