In 13 dalis šio LFCS (Linux Foundation Certified Sysadmin) serija aiškinomės kaip naudoti GRUB sistemos veikimui keisti perduodant vykstančio įkrovos proceso branduoliui parinktis.
Panašiai galite naudoti komandinę eilutę veikiančioje „Linux“ sistemoje, kad pakeistumėte tam tikrus vykdymo laiko branduolio parametrus kaip vienkartinį pakeitimą arba visam laikui redaguodami konfigūracijos failą.
Taigi jums leidžiama be didelių sunkumų įjungti arba išjungti branduolio parametrus, kai to reikia dėl būtino sistemos veikimo pakeitimo.
Naujausia specifikacija Failų sistemos hierarchijos standartas rodo, kad /proc
yra numatytasis proceso ir sistemos informacijos, taip pat kitos branduolio ir atminties informacijos tvarkymo metodas. Ypač, /proc/sys
čia rasite visą informaciją apie įrenginius, tvarkykles ir kai kurias branduolio funkcijas.
Tikroji vidinė struktūra /proc/sys
labai priklauso nuo naudojamo branduolio, tačiau greičiausiai rasite šiuos katalogus. Savo ruožtu kiekviename iš jų bus kitų pakatalogių, kuriuose išlaikomos kiekvienos parametrų kategorijos vertės:
dev
: konkrečių prie mašinos prijungtų įrenginių parametrai.fs
: failų sistemos konfigūracija (pvz., kvotos ir inodai).tinklas
: tinklo konfigūracija.vm
: virtualios branduolio atminties naudojimas.Norėdami pakeisti branduolio veikimo laiko parametrus, naudosime sysctl
komandą. Tikslų parametrų, kuriuos galima keisti, skaičių galima peržiūrėti naudojant:
# sysctl -a | wc -l.
Jei norite peržiūrėti visą branduolio parametrų sąrašą, tiesiog atlikite šiuos veiksmus:
# sysctl -a
Kadangi aukščiau pateiktos komandos išvestį sudarys DAUG eilučių, galime atidžiau apžiūrėti vamzdyną, po kurio - mažiau:
# sysctl -a | mažiau.
Pažvelkime į pirmąsias kelias eilutes. Atminkite, kad pirmieji simboliai kiekvienoje eilutėje atitinka katalogų pavadinimus /proc/sys
:
Pavyzdžiui, paryškinta eilutė:
dev.cdrom.info = disko pavadinimas: sr0.
rodo, kad sr0
yra optinio įrenginio slapyvardis. Kitaip tariant, taip branduolys "mato“Tą diską ir naudoja šį pavadinimą.
Kitame skyriuje paaiškinsime, kaip pakeisti kitus „svarbesnius“ branduolio veikimo laiko parametrus „Linux“.
Remiantis tuo, ką iki šiol paaiškinome, nesunku pastebėti, kad parametro pavadinimas atitinka viduje esančią katalogo struktūrą /proc/sys
kur jį galima rasti.
Pavyzdžiui:
dev.cdrom.autoclose →/proc/sys/dev/cdrom/autoclose. net.ipv4.ip_forward →/proc/sys/net/ipv4/ip_forward.
Be to, mes galime peržiūrėti tam tikro „Linux“ branduolio parametro vertę naudodami bet kurį iš jų sysctl
po to parametro pavadinimas arba susieto failo skaitymas:
# sysctl dev.cdrom.autoclose. # cat/proc/sys/dev/cdrom/autoclose. # sysctl net.ipv4.ip_forward. # cat/proc/sys/net/ipv4/ip_forward.
Taip pat galime naudoti branduolio parametro vertę sysctl
, bet naudojant -w
parinktį, o po to - parametro pavadinimas, lygybės ženklas ir norima vertė.
Kitas metodas susideda iš naudojimo aidas
perrašyti su parametru susietą failą. Kitaip tariant, šie metodai prilygsta paketų persiuntimo funkcijų išjungimui sistema (kuri, beje, turėtų būti numatytoji vertė, kai dėžutė neturėtų perduoti srauto tarp tinklai):
# echo 0>/proc/sys/net/ipv4/ip_forward. # sysctl -w net.ipv4.ip_forward = 0.
Svarbu pažymėti, kad branduolio parametrai yra nustatyti naudojant sysctl
bus vykdomas tik dabartinės sesijos metu ir išnyks iš naujo paleidus sistemą.
Jei norite visam laikui nustatyti šias vertes, redaguokite /etc/sysctl.conf
su norimomis vertėmis. Pavyzdžiui, jei norite išjungti paketų persiuntimą /etc/sysctl.conf įsitikinkite, kad faile rodoma ši eilutė:
net.ipv4.ip_forward = 0.
Tada paleiskite šią komandą, kad pritaikytumėte veikiančios konfigūracijos pakeitimus.
# sysctl -p.
Kiti svarbių branduolio veikimo laiko parametrų pavyzdžiai:
fs.file-maks
nurodo maksimalų failų tvarkymų, kurias branduolys gali skirti sistemai, skaičių. Atsižvelgdami į numatomą sistemos naudojimą (žiniatinklis / duomenų bazė / failų serveris, jei norite paminėti kelis pavyzdžius), galbūt norėsite pakeisti šią vertę, kad atitiktų sistemos poreikius.
Priešingu atveju gausite „Per daug atidarytų failų“Geriausiu atveju klaidos pranešimas ir gali neleisti operacinei sistemai paleisti blogiausiu atveju.
Jei dėl nekaltos klaidos atsidūrėte šioje paskutinėje situacijoje, paleiskite vieno vartotojo režimu (kaip paaiškinta 13 dalis - „Linux Grub Boot Loader“ konfigūravimas ir trikčių šalinimas) ir redaguoti /etc/sysctl.conf kaip nurodyta anksčiau. Norėdami nustatyti tą patį apribojimą kiekvienam vartotojui, žr 14 dalis. Stebėkite ir nustatykite „Linux“ proceso apribojimų naudojimą šios serijos.
branduolys.sysrq
naudojamas įgalinti SysRq klaviatūros klavišą (taip pat žinomą kaip spausdinimo ekrano klavišas), kad kai kurie klavišų deriniai galėtų imtis skubių veiksmų, kai sistema neatsako.
Numatytoji vertė (16) rodo, kad sistema gerbs Alt+SysRq+klavišas
derinį ir atlikti veiksmus, išvardytus sysrq.c rasti dokumentai kernel.org (kur raktas yra viena raidė b-z diapazone). Pavyzdžiui, Alt+SysRq+b
bus perkraunama sistema (naudokite tai kaip paskutinę priemonę, jei jūsų serveris nereaguoja).
Įspėjimas! Nebandykite paspausti šio klavišų derinio virtualioje mašinoje, nes tai gali priversti jūsų pagrindinę sistemą paleisti iš naujo!
Kai nustatyta 1, net.ipv4.icmp_echo_ignore_all ignoruos „ping“ užklausas ir numes jas branduolio lygiu. Tai parodyta žemiau esančiame paveikslėlyje - atkreipkite dėmesį, kaip prarandamos „ping“ užklausos nustačius šį branduolio parametrą:
Geresnis ir lengvesnis būdas nustatyti atskirus vykdymo laiko parametrus yra .konf failai viduje /etc/sysctl.d
, grupuojant juos pagal kategorijas.
Pavyzdžiui, vietoj nustatymo net.ipv4.ip_forward = 0 ir net.ipv4.icmp_echo_ignore_all = 1 į /etc/sysctl.conf, galime sukurti naują failą pavadinimu net.conf
viduje /etc/sysctl.d:
# echo "net.ipv4.ip_forward = 0"> /etc/sysctl.d/net.conf. # echo "net.ipv4.icmp_echo_ignore_all = 1" >> /etc/sysctl.d/net.conf.
Jei nuspręsite naudoti šį metodą, nepamirškite pašalinti tų pačių eilučių /etc/sysctl.conf
.
Šiame straipsnyje mes paaiškinome, kaip pakeisti branduolio vykdymo laiko parametrus, tiek nuolatinius, tiek ne nuolatinius, naudojant sysctl, /etc/sysctl.confir failai viduje /etc/sysctl.d.
Viduje sysctl docs galite rasti daugiau informacijos apie daugiau kintamųjų reikšmę. Šie failai yra išsamiausias dokumentų apie parametrus, kuriuos galima nustatyti naudojant „sysctl“, šaltinis.
Ar jums pasirodė šis straipsnis naudingas? Tikrai tikimės, kad tai padarėte. Nedvejodami praneškite mums, jei turite klausimų ar pasiūlymų, kaip patobulinti.