Tune din Linux-kjernen med sysctl

Ikke mange av dagens Linux-brukere husker de dagene da du kan (og noen ganger måtte) kompilere din egen kjerne. Hvis du hadde en spesiell enhet eller spesielle behov for kjernen var det ingen annen måte å få det til å fungere. Dagens fleste kjerner fungere ut av boksen med de fleste hardware. Men det er tider når du kan presse ut litt mer ytelse eller lette kjernen på fly. Du kan gjøre det med sysctl
kommando.

Denne kommandoen lar deg slå på eller av en rekke kjerneparametere på fly, eller du kan redigere en bestemt fil å stille de samme parametrene. Uansett kan du endre alle parameterne som er oppført i /proc /sys, så hvis du ønsker å se hvor mye du kan modifisere, ta en titt på hver av de underkataloger under /proc /sys katalogen. For eksempel kan du endre antall maksimums fildeskriptorer på din maskin ved å justere kern.maxfiles parameter

. MERK: Du vil definitivt ønsker å utvise forsiktighet når lekt med denne kommandoen som det kunne, ved å modifisere enhver parameter på feil måte, føre til tap av data eller verre.

Bruk

Den grunnleggende bruk av kommandoen er sysctl ALTERNATIVER PARAMETER VARIABEL
. Variabelen for en parameter vil være i form av enten boolean, streng, eller tall. Du må kjøre denne kommandoen som enten root brukeren eller med hjelp av sudo
. En av de første tingene du kanskje ønsker å gjøre er å gi kommandoen sudo sysctl -a.
Denne kommandoen vil vise alle de tunbare variablene på din maskin. Listen vil se omtrent slik ut: kernel.sched_min_granularity_ns = 2000000kernel.sched_latency_ns = 10000000kernel.sched_wakeup_granularity_ns = 2000000kernel.sched_shares_ratelimit = 500000kernel.sched_shares_thresh = 4kernel.sched_features = 15834235kernel.sched_migration_cost = 500000kernel.sched_nr_migrate = 32kernel.sched_time_avg = 1000kernel.timer_migration = 1kernel.sched_rt_period_us = 1000000kernel.sched_rt_runtime_us = 950000kernel.sched_compat_yield = 0kernel.panic = 0kernel.core_uses_pid = 0kernel.core_pattern = corekernel.core_pipe_limit = 0kernel.tainted = 0kernel.latencytop = 0kernel.real-root-dev = 0kernel.print-fatal -signals = 0

I alt er det over 500 tunbare parametere på en gjennomsnittlig Linux-system. Det er mye å tune. Hvis du ønsker å undersøke den listen tettere gi kommandoen sudo sysctl -a > tunbare Hotell og åpne deretter at filen opp med din favoritt editor. La oss gjøre dette med noe umiddelbart nyttig. Si at du ønsker å reaktivere < Ctrl > < Alt > < Del > at noen distribusjoner har deaktivert. Først la oss sørge for at distribusjonen har deaktivert denne. Gjør dette med kommandoen:

sudo SYSCTRL kernel.ctrl-alt-del

Hva du bør se et resultat er:

kernel .ctrl-alt-del = 0

Listen utgangen ikke faktisk informere deg om at denne funksjonen er deaktivert. La oss aktivere den. For å gjøre dette du ville gi kommandoen:

sudo sysctl -w kernel.ctrl-alt-del = 1

Du bør se resultatet:
< p> kernel.ctrl-al-del = 1

Som forteller deg kommandoen var vellykket. Du kan selvsagt null dette til den opprinnelige verdien med følgende kommando:

sudo sysctl -w kernel.ctrl-alt-del = 0

Selvfølgelig er dette er bare et enkelt eksempel på hva du kan stille med sysctl
kommando. Ettersom hvordan det er over 500 tunbare parametere, kan du finjustere kjernen for å møte noen veldig spesifikke behov.

Avsluttende tanker

Som med alle verktøy som endrer en kjører kernel, sørg for at du trener forsiktighet ved bruk av sysctl
. Du ønsker kanskje å praktisere denne kommandoen på et ikke-produksjons maskinen før du prøver å gjøre noen endringer på en produksjonsmaskin. Og begynne enkelt. Modifisere noen parametere som ikke vil gjengi maskinen startes, harddisken ikke skrivbar, nettverket ikke nås, etc.