denne side giver en introduktion til at bytte plads og personsøgning på GNU / Linuk. Det dækker oprettelse og aktivering af bytte partitioner og bytte filer.
deler sin fysiske RAM (random access memory) i stykker hukommelse kaldet pages. Bytte er den proces, hvorved en hukommelsesside kopieres til det forudkonfigurerede rum på harddisken, kaldet bytteplads, for at frigøre den hukommelsesside. De kombinerede størrelser af den fysiske hukommelse og byttepladsen er mængden af virtuel hukommelse, der er tilgængelig.
understøttelse af bytte leveres af hjælpeprogrammerne til Brugerplads og user-space fra pakken til brugerplads.
Skift plads
Skift plads kan have form af en diskpartition eller en fil. Brugere kan oprette et bytteplads under installationen eller på et hvilket som helst senere tidspunkt efter ønske. Bytte plads kan bruges til to formål, for at udvide den virtuelle hukommelse ud over den installerede fysiske hukommelse (RAM), og også til suspension-til-disk support.
Hvis det er fordelagtigt at udvide den virtuelle hukommelse med bytte afhænger af mængden af installeret fysisk hukommelse. Hvis mængden af fysisk hukommelse er mindre end den mængde hukommelse, der kræves for at køre alle de ønskede programmer, kan det være en fordel at aktivere bytte. Dette undgår ud af hukommelsesforhold, hvor den centrale oom killer mekanisme automatisk vil forsøge at frigøre hukommelse ved at dræbe processer. For at øge mængden af virtuel hukommelse til det krævede beløb skal du tilføje den nødvendige forskel (eller mere) som bytteplads.
den største ulempe ved at aktivere bytte er dens lavere ydelse, se afsnit #ydeevne. Derfor, aktivering af bytte er et spørgsmål om personlig præference: nogle foretrækker, at programmer dræbes frem for at aktivere bytte, og andre foretrækker at aktivere bytte og langsommere system, når den fysiske hukommelse er opbrugt.
for at kontrollere byttestatus skal du bruge:
$ swapon --show
eller for at vise fysisk hukommelse samt bytte brug:
$ free -h
Skift partition
den faktiske nøjagtighed af denne artikel eller sektion bestrides.
82
er byttepartitionstypen på MBR, der er ingen autodetektion af byttepartitionen på MBR. / TRIM kommandoer på bytte partitioner synes at blive udstedt automatisk af kernen, hvis understøttet se Fedora installationsvejledninger. (Diskuter i Talk:Byt#Afklar skift opdagelse) en byttepartition kan oprettes med de fleste GNU / Linuks partitioneringsværktøjer. Skift partitioner betegnes typisk som type 82
. Selvom det er muligt at bruge en hvilken som helst partitionstype som Bytte, anbefales det at bruge type 82
i de fleste tilfælde, da systemd automatisk registrerer det og monterer det (se nedenfor).
for at opsætte en partition som linjeskiftområde bruges kommandoen mkvap(8). For eksempel:
# mkswap /dev/sdxy
for at aktivere enheden til personsøgning:
# swapon /dev/sdxy
for at aktivere denne byttepartition ved opstart skal du tilføje en post til /etc/fstab
:
UUID=device_UUID none swap defaults 0 0
hvor device_UUID
er uuid for byttepladsen.
se fstab for filsyntaksen.
- fstab-posten er valgfri, hvis byttepartitionen er placeret på en enhed, der bruger GPT. Se næste underafsnit.
- hvis du bruger en SSD med TRIM-understøttelse, skal du overveje at bruge
discard
i byttelinjen i fstab. Hvis du aktiverer skift manuelt med skift, opnår parameteren-d
--discard
det samme. Se pkt. 8 for detaljer.
aktivering af systemd
systemd aktiverer byttepartitioner baseret på to forskellige mekanismer. Begge er eksekverbare i /usr/lib/systemd/system-generators
. Generatorerne køres ved opstart og opretter native systemd-enheder til monteringer. Den første, systemd-fstab-generator
, læser fstab for at generere enheder, herunder en enhed til Bytte. Den anden,systemd-gpt-auto-generator
inspicerer roddisken for at generere enheder. Den fungerer kun på GPT-diske og kan identificere byttepartitioner efter deres type GUID, se systemd#GPT partition automounting for mere information.
deaktivering af bytte
for at deaktivere specifikt bytteplads:
# swapoff /dev/sdxy
alternativt brug-a
skift for at deaktivere alt bytteplads.
da bytte administreres af systemd, aktiveres det igen ved næste systemstart. For at deaktivere den automatiske aktivering af detekteret bytteplads permanent skal du køre systemctl --type swap
for at finde den ansvarlige .Skift enhed og maske den.
Skift fil
som et alternativ til at oprette en hel partition giver en byttefil mulighed for at variere dens størrelse on-the-fly og fjernes lettere helt. Dette kan især være ønskeligt, hvis diskpladsen er til en præmie (f.eks.advarsel: Btrfs understøtter byttefil med begrænsninger siden kernel version 5.0. Se btrfs # Byt fil for mere information.
manuelt
Skift filoprettelse
brug dd til at oprette en byttefil, som du vælger. Hvis du f.eks. opretter en 512 MiB-byttefil:
# dd if=/dev/zero of=/swapfile bs=1M count=512 status=progress
Indstil de rigtige tilladelser (en verdenslæsbar byttefil er en enorm lokal sårbarhed):
# chmod 600 /swapfile
Når du har oprettet den rigtige størrelse fil, skal du formatere den til at bytte:
# mkswap /swapfile
aktiver byttefilen:
# swapon /swapfile
endelig Rediger fstab-konfigurationen for at tilføje en post til byttefilen:
/etc/fstab
/byttefil ingen skift standardindstillinger 0 0
for yderligere oplysninger, se fstab#brug.
- byttefilen skal angives ved dens placering på filsystemet, ikke ved dens UUID eller etiket.
- når du bruger Btrfs, skal du ikke glemme at tilføje den oprettede undervolumen til listen også og fjerne
discard,autodefrag
og komprimeringsindstillinger.
Fjern byttefil
for at fjerne en byttefil skal den først slukkes og derefter fjernes:
# swapoff /swapfile# rm -f /swapfile
fjern endelig den relevante post fra/etc/fstab
.
automatiseret
SRAM-generator
formålet med dette værktøj er oprettelsen af SRAM-enheder. Den er skrevet i Rust og ligger i systemd ‘ s GitHub. Det kan installeres med pakken generatorAUR.Konfiguration er ligetil og forklaret i README.
systemd-skift
systemd-bytte er et script til at skabe hybrid bytte plads fra bytter, bytte filer og bytte partitioner. Det er ikke tilknyttet systemd-projektet.
Installer systemd-byttepakken. Uncomment og set swapfc_enabled=1
i bytte fil Chunked sektion af /etc/systemd/swap.conf
. Start / aktiver systemd-swap
service.
besøg forfatterne GitHub side for mere information og opsætning af den anbefalede konfiguration.
- hvis journalen fortsat viser følgende advarsel
systemd-swap: WARN: swapFC: ENOSPC
og der ikke oprettes nogen byttefil, skal du fjerne og indstilleswapfc_force_preallocated=1
i/etc/systemd/swap.conf
. - byttefilen oprettet af systemd-bytte kan ikke let bruges til dvaletilstand. Se systemd-bytte nummer 85.
Byt kryptering
se DM-krypt / Byt kryptering.
ydeevne
Bytteoperationer er normalt betydeligt langsommere end direkte adgang til data i RAM. Deaktivering af bytte helt for at forbedre ydeevnen kan undertiden føre til en nedbrydning, da det reducerer den tilgængelige hukommelse til VFS-cacher, hvilket forårsager hyppigere og dyrere disk I/O.
bytteværdier kan justeres for at hjælpe ydeevnen:
Byttelighed
bytteværdien repræsenterer kernens præference (eller undgåelse) af bytteplads. 100, hvis Linuk < 5.8), standardværdien er 60. En lav værdi får kernen til at undgå at bytte, en høj værdi får kernen til at forsøge at bruge bytteplads, og en værdi på 100 betyder, at IO-omkostninger antages at være ens. Brug af en lav værdi på tilstrækkelig hukommelse er kendt for at forbedre lydhørheden på mange systemer.
for at kontrollere den aktuelle bytteværdi:
$ sysctl vm.swappiness
alternativt kan filerne/sys/fs/cgroup/memory/memory.swappiness
eller/proc/sys/vm/swappiness
læses for at opnå den rå heltalsværdi.
/proc
er meget mindre organiseret og opbevares kun til kompatibilitetsformål, opfordres du til at bruge /sys
i stedet.for midlertidigt at indstille bytteværdien:
# sysctl -w vm.swappiness=10
for at indstille bytteværdien permanent skal du oprette en sysctl.D (5) konfigurationsfil. For eksempel:
/etc/sysctl.d / 99-bytte.conf
vm.10
for at teste og mere om, hvorfor dette kan fungere, skal du se på denne artikel.
VFS cache pres
en anden sysctl parameter, der påvirker bytte ydeevne ervm.vfs_cache_pressure
, som styrer tendensen af kernen til at genvinde den hukommelse, der bruges til caching af VFS caches, versus pagecache og bytte. Forøgelse af denne værdi øger den hastighed, hvormed VFS-cacher genvindes. Du kan finde flere oplysninger i dokumentationen til kernekernen.
prioritet
Hvis du har mere end en byttefil eller byttepartition, bør du overveje at tildele en prioritetsværdi (0 til 32767) for hvert bytteområde. Systemet vil bruge bytteområder med højere prioritet, før du bruger bytteområder med lavere prioritet. Har en hurtigere disk (/dev/sda
) og en langsommere disk (/dev/sdb
), skal du tildele en højere prioritet til bytteområdet på den hurtigste enhed. Prioriteter kan tildeles i fstab viapri
parameter:
/dev/sda1 none swap defaults,pri=100 0 0/dev/sdb2 none swap defaults,pri=10 0 0
eller via --priority
:
# swapon --priority 100 /dev/sda1
Hvis to eller flere områder har samme prioritet, og det er den højeste tilgængelige prioritet, tildeles sider på en Round-robin basis mellem dem.
Brug zswap eller zram
Zswap er en Linux-kernel funktion, der giver en komprimeret skrive tilbage cache for byttes sider. Dette øger ydeevnen og reducerer IO-operationerne. En virtuel komprimeret byttefil oprettes i hukommelsen som alternativ til en byttefil på disken.
Striping
der er ingen grund til at bruge RAID af hensyn til byttepræstation. Kernen selv kan stripe bytte på flere enheder, hvis du bare giver dem samme prioritet i /etc/fstab
filen. Se programmet-RAID-vejledning for detaljer.