Sisse 13. osa sellest LFCS (Linux Foundation Certified Sysadmin) seeria selgitasime kuidas kasutada GRUB -i süsteemi käitumise muutmiseks edastades kernelile käimasoleva alglaadimisprotsessi valikud.
Sarnaselt saate kasutada töötava Linuxi süsteemi käsurida, et muuta teatud käitusaja tuumaparameetreid ühekordse modifikatsioonina või püsivalt, muutes konfiguratsioonifaili.
Seega on teil lubatud kerneli parameetreid lennult lubada või keelata ilma suuremate raskusteta, kui see on vajalik süsteemi eeldatava toimimise vajaliku muutmise tõttu.
Viimane spetsifikatsioon Failisüsteemi hierarhia standard näitab seda /proc
kujutab endast vaikemeetodit protsessi- ja süsteemiteabe ning muu tuuma- ja mäluteabe käsitlemiseks. Eriti, /proc/sys
kust leiate kogu teabe seadmete, draiverite ja mõningate kerneli funktsioonide kohta.
Tegelik sisemine struktuur /proc/sys
sõltub suuresti kasutatavast kernelist, kuid tõenäoliselt leiate sealt järgmised kataloogid. Igaüks neist sisaldab omakorda teisi alamkatalooge, kus säilitatakse iga parameetrikategooria väärtused:
arendaja
: masinaga ühendatud konkreetsete seadmete parameetrid.fs
: failisüsteemi konfiguratsioon (näiteks kvoodid ja inoodid).võrk
: võrgu konfiguratsioon.vm
: kerneli virtuaalse mälu kasutamine.Kerneli käitusaja parameetrite muutmiseks kasutame sysctl
käsk. Muudetavate parameetrite täpset arvu saab vaadata järgmiselt:
# sysctl -a | wc -l.
Kui soovite vaadata kerneli parameetrite täielikku loendit, tehke järgmist.
# sysctl -a
Kuna ülaltoodud käsu väljund koosneb PALJU ridu, saame selle hoolikamaks kontrollimiseks kasutada torujuhet, millele järgneb vähem:
# sysctl -a | vähem.
Vaatame esimesi ridu. Pange tähele, et iga rea esimesed märgid vastavad sees olevate kataloogide nimedele /proc/sys
:
Näiteks esiletõstetud rida:
dev.cdrom.info = draivi nimi: sr0.
näitab seda sr0
on optilise draivi varjunimi. Teisisõnu, kernel "näeb”Seda draivi ja kasutab sellele viitamiseks seda nime.
Järgmises jaotises selgitame, kuidas muuta Linuxis muid "tähtsamaid" kerneli käitusaja parameetreid.
Selle põhjal, mida oleme seni selgitanud, on lihtne näha, et parameetri nimi sobib sees oleva kataloogistruktuuriga /proc/sys
kust seda leida võib.
Näiteks:
dev.cdrom.autoclose →/proc/sys/dev/cdrom/autoclose. net.ipv4.ip_forward →/proc/sys/net/ipv4/ip_forward.
Sellegipoolest saame konkreetse Linuxi kerneli parameetri väärtust vaadata, kasutades kumbagi sysctl
millele järgneb parameetri nimi või sellega seotud faili lugemine:
# sysctl dev.cdrom.autoclose. # cat/proc/sys/dev/cdrom/autoclose. # sysctl net.ipv4.ip_forward. # cat/proc/sys/net/ipv4/ip_forward.
Kerneli parameetri väärtuse määramiseks saame kasutada ka sysctl
, kuid kasutades -w
ja seejärel parameetri nimi, võrdusmärk ja soovitud väärtus.
Teine meetod seisneb kasutamises kaja
parameetriga seotud faili ülekirjutamiseks. Teisisõnu, järgmised meetodid on samaväärsed meie pakettide edastamise funktsiooni keelamisega süsteem (mis muide peaks olema vaikeväärtus, kui kast ei peaks liiklust vahepeal läbima võrgud):
# echo 0>/proc/sys/net/ipv4/ip_forward. # sysctl -w net.ipv4.ip_forward = 0.
Oluline on märkida, et tuuma parameetrid, mis on seatud kasutades sysctl
jõustatakse ainult praeguse seansi ajal ja kaob süsteemi taaskäivitamisel.
Nende väärtuste jäädavaks määramiseks muutke /etc/sysctl.conf
soovitud väärtustega. Näiteks paketi edastamise keelamiseks /etc/sysctl.conf veenduge, et failis oleks järgmine rida:
net.ipv4.ip_forward = 0.
Seejärel käivitage järgmine käsk, et rakendada muudatusi jooksvasse konfiguratsiooni.
# sysctl -p.
Teised näited tuuma olulistest käitusaja parameetritest on järgmised:
fs.file-max
määrab maksimaalse arvu failikäepidemeid, mida kernel saab süsteemile eraldada. Sõltuvalt teie süsteemi kavandatavast kasutamisest (kui tuua mõned näited - veeb / andmebaas / failiserver), võiksite seda väärtust muuta, et see vastaks süsteemi vajadustele.
Vastasel korral saate "Liiga palju avatud faile”Parimal juhul veateade ja võib halvimal juhul takistada operatsioonisüsteemi käivitamist.
Kui süütu vea tõttu satute sellesse viimasesse olukorda, käivitage ühe kasutaja režiimis (nagu on selgitatud punktis Osa 13 - Linuxi Grub alglaaduri seadistamine ja tõrkeotsing) ja muuta /etc/sysctl.conf nagu varem õpetatud. Sama piirangu seadmiseks kasutaja kohta vaadake jaotist 14. osa - Linuxi protsessipiirangu kasutamise jälgimine ja määramine sellest sarjast.
kernel.sysrq
kasutatakse selle lubamiseks SysRq klahvi (tuntud ka kui prindiekraani klahv), et teatud klahvikombinatsioonid saaksid hädaabitoiminguid käivitada, kui süsteem ei reageeri.
Vaikeväärtus (16) näitab, et süsteem järgib Alt+SysRq+klahv
kombineerida ja teha jaotises loetletud toiminguid sysrq.c aastal leitud dokumentatsiooni kernel.org (kus võti on üks täht vahemikus b-z). Näiteks, Alt+SysRq+b
taaskäivitab süsteemi jõuliselt (kasutage seda viimase abinõuna, kui teie server ei reageeri).
Hoiatus! Ärge proovige seda klahvikombinatsiooni virtuaalmasinas vajutada, sest see võib sundida teie hosti süsteemi taaskäivitama!
Kui seadistatud on 1, net.ipv4.icmp_echo_ignore_all ignoreerib ping -päringuid ja jätab need kerneli tasemele. See on näidatud alloleval pildil - pange tähele, kuidas pingitaotlused pärast selle kerneli parameetri seadistamist kaotatakse:
Parem ja lihtsam viis individuaalsete käitusaja parameetrite määramiseks on .conf failid sees /etc/sysctl.d
, rühmitades need kategooriate kaupa.
Näiteks seadistamise asemel net.ipv4.ip_forward = 0 ja net.ipv4.icmp_echo_ignore_all = 1 sisse /etc/sysctl.conf, saame luua uue faili nimega net.conf
sees /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.
Kui otsustate seda lähenemisviisi kasutada, ärge unustage neid samu ridu eemaldada /etc/sysctl.conf
.
Selles artiklis oleme selgitanud, kuidas muuta kerneli käitusaja parameetreid, nii püsivaid kui ka mittepüsivaid, kasutades sysctl, /etc/sysctl.confja failid sees /etc/sysctl.d.
Aastal sysctl dokumendid leiate rohkem teavet muutujate tähenduse kohta. Need failid on kõige täielikum dokumentatsiooni allikas parameetrite kohta, mida saab seadistada sysctl kaudu.
Kas see artikkel oli teile kasulik? Loodame kindlasti, et tegite. Kui teil on küsimusi või parandusettepanekuid, andke meile julgelt teada.