Hukommelse

Optimalisering av Linux-minnebruk

Optimalisering av Linux-minnebruk
I del en av denne serien så vi bytteplassen nærmere, og del to handlet om verktøy og kommandoer for å administrere minnet. Nå skal vi diskutere forskjellige parametere og strategier for å optimalisere minnet og dets bruk generelt. Dette dekker mengden minne, akselerasjonen av tilgangen og den interne bruksstrategien.

Mengde minne

Som allerede diskutert i første del, kalles hele minnet virtuelt minne, og består av både fysisk minne og bytterom. Tilgjengeligheten av det fysiske minnet avhenger av maskinvaren som er innebygd i maskinen, samt hvor mye minne prosessoren faktisk kan adressere. Som et eksempel har 32-biters operativsystem en grense på bare 4G minne (2 ^ 32bit), mens operativsystemer basert på 64-bit teoretisk tillater opptil 16 EB (2 ^ 64-bit).

For å være presis er begrensningen hovedkortet med selve prosessoren, minnemodulene som støttes av det hovedkortet, og de spesifikke minnemodulene som er koblet til minnesporene på hovedkortet. En måte å maksimere tilgjengelig tilgjengelig minne på systemet er å bruke lignende minnemoduler som har størst størrelse som mulig. Den andre måten er å bruke bytt minne som allerede forklart i del en.

Tilgang til minne

Deretter kommer en forbedring av tilgangshastigheten til minnet i betraktning. Først er den fysiske grensen gitt av selve minnemodulen. Du kan ikke gå under maskinvarens fysiske grenser. For det andre, en ramdisk, og på tredje kan bruken av zRAM øke hastigheten på minnetilgangen. Vi vil diskutere disse to teknologiene nærmere.

Opprette en ramdisk

En ramdisk er en blokk med minne som operativsystemet håndterer som en fysisk enhet å lagre data på - en harddisk som er helt lagret i minnet. Denne midlertidige enheten eksisterer så snart systemet starter og aktiverer ramdisken, og systemet enten deaktiverer ramdisken eller slår seg av. Husk at data du lagrer på en slik ramdisk, går tapt etter at maskinen er slått av.

Du kan opprette en dynamisk ramdisk via tmpfs filsystem og via ramfs filsystem. Begge teknologiene skiller seg betydelig fra hverandre. For det første betyr dynamisk at minne for ramdisk tildeles basert på bruken (sant for begge metodene). Så lenge du ikke lagrer data på den, er størrelsen på ramdisk 0.

Å lage en dynamisk ramdisk via tmpfs er som følger:

# mkdir / media / ramdisk
# mount -t tmpfs none / media / ramdisk

Å lage en dynamisk ramdisk via ramfs er som følger:

# mkdir / media / ramdisk
# mount -t ramfs ramfs / media / ramdisk

For det andre er bruk av tmpfs, og med mindre eksplisitt spesifisert, størrelsen på ramdisk begrenset til 50% av det fysiske minnet. Derimot har ikke en ramdisk basert på ramfs en slik begrensning.

Å lage en dynamisk ramdisk via tmpfs med en relativ størrelse på 20% av det fysiske minnet er som følger:

# mkdir / media / ramdisk
# mount -t tmpfs -o størrelse = 20% ingen / media / ramdisk

Å lage en dynamisk ramdisk via tmpfs med en fast størrelse på 200M fysisk minne er som følger:

# mkdir / media / ramdisk
# mount -t tmpfs -o størrelse = 200M ingen / media / ramdisk

For det tredje håndterer begge metodene bytte på en annen måte. I tilfelle systemet når minnegrensen for en ramdisk basert på tmpfs, byttes data fra ramdisken ut. Dette ødelegger ideen om rask tilgang. På den annen side prioriterer operativsystemet både innholdet og de forespurte minnesidene til en ramdisk basert på ramfs, holder det i minnet og bytter gjenværende minnesider til disk.

I eksemplene ovenfor har vi brukt / media / ramdisk som monteringspunkt. Når det gjelder vanlige data, er den eneste delen av Linux-filsystemet som anbefales å bruke på en ramdisk / tmp. Denne katalogen lagrer bare midlertidige data som ikke vedvarer. Å lage en permanent ramdisk som lagrer / tmp-filsystemet krever en ekstra oppføring i filen / etc / fstab som følger (basert på ramf):

ramfs / tmp ramfs er standard 0 0

Neste gang du starter Linux-systemet, blir ramdisk aktivert automatisk.

Bruke zRAM

zRAM betyr Virtual Swap Compressed in RAM, og skaper en komprimert blokkenhet direkte i det fysiske minnet. zRAM kommer i bruk (bruk) så snart det ikke er flere fysiske minnesider tilgjengelig på systemet. Deretter prøver Linux-kjernen å lagre sider som komprimerte data på zRAM-enheten.

For øyeblikket er det ingen pakke tilgjengelig for Debian GNU / Linux, men Ubuntu. Den heter zram-config. Installer pakken, og sett opp en zRAM-enhet ved å starte den tilsvarende systemd-tjenesten som følger:

# systemctrl start zram-config

Som gitt av utdataene fra bytte -s, enheten er aktiv som en ekstra byttepartisjon. Automatisk tildeles en størrelse på 50% av minnet for zRAM (se figur 1). Foreløpig er det ingen måte å spesifisere en annen verdi for zRAM som skal tildeles.

For å se mer informasjon om den komprimerte byttepartisjonen, bruk kommandoen zramctl. Figur 2 viser enhetsnavnet, komprimeringsalgoritmen (LZO), størrelsen på byttepartisjonen, størrelsen på dataene på disken og dens komprimerte størrelse, samt antall kompresjonsstrømmer (standardverdi: 1).

Bruksstrategi

Deretter fokuserer vi på minnebrukstrategien. Det er noen få parametere som påvirker oppførselen til minnebruk og distribusjon. Dette inkluderer størrelsen på minnesider - på 64-biters systemer er det 4M. Deretter spiller parameteren swappiness en rolle. Som allerede forklart i del 1, styrer denne parameteren den relative vekten som er gitt for å bytte ut kjøretidsminne, i motsetning til å slippe minnesider fra systemsiden cache. Vi bør heller ikke glemme både hurtigbufring og justering av minnesiden.

Bruk programmer som krever mindre minne

Sist men ikke minst er bruken av minne avhengig av selve programmene. De fleste av dem er koblet til standard C-biblioteket (standard LibC). For å minimere den binære koden din som utvikler, bør du vurdere å bruke et alternativ og mye mindre C-bibliotek i stedet. For eksempel er det dietlibc [1], uClibc [2] og musl lib C [3]. Utviklernettstedet til musl lib C inneholder en omfattende sammenligning [4] angående disse bibliotekene når det gjelder det minste statiske C-programmet som er mulig, en sammenligning av funksjoner, i henhold til byggemiljøene og støttede maskinvarearkitekturer.

Som bruker trenger du kanskje ikke å kompilere programmene dine. Vurder å se etter mindre programmer og forskjellige rammer som krever mindre ressurser. Som et eksempel kan du bruke XFCE Desktop Environment i stedet for KDE eller GNOME.

Konklusjon

Det finnes ganske mange alternativer for å endre minnebruk til det bedre. Dette spenner fra bytte til komprimering basert på zRAM, samt å sette opp en ramdisk eller velge et annet rammeverk.

Lenker og referanser

Linux Memory Management Series

Anerkjennelser

Forfatteren vil takke Axel Beckert og Gerold Rupprecht for deres støtte under forberedelsen av denne artikkelen.

Mus AppyMouse Pekeplate og musepeker på skjermen for Windows-nettbrett
AppyMouse Pekeplate og musepeker på skjermen for Windows-nettbrett
Nettbrettbrukere savner ofte musepekeren, spesielt når de bruker vanlige bærbare datamaskiner. Berøringsskjermen Smarttelefoner og nettbrett har mange...
Mus Midterste museknapp fungerer ikke i Windows 10
Midterste museknapp fungerer ikke i Windows 10
De midtre museknapp hjelper deg med å bla gjennom lange websider og skjermer med mye data. Hvis det stopper, vil du ende opp med å bruke tastaturet ti...
Mus Hvordan endre venstre og høyre museknapp på Windows 10 PC
Hvordan endre venstre og høyre museknapp på Windows 10 PC
Det er ganske vanlig at alle datamusenheter er ergonomisk designet for høyrehendte brukere. Men det er tilgjengelige musenheter som er spesielt design...