Kuidas muuta tuuma käituse parameetreid püsival ja mittepüsival viisil


Selle 13. osas, kuidas GRUB-i kasutada süsteemi käitumise muutmiseks, edastades käimasoleva käivitamisprotsessi jaoks tuumale valikud.

Samamoodi saate käsureal kasutada jooksvat Linuxi süsteemi, et muuta teatud käitusaja kerneli parameetreid ühekordse muudatusena või püsivalt konfiguratsioonifaili muutmisega.

Seega lubatakse teil kerneli parameetrid lennul lubada või keelata ilma eriliste raskusteta, kui see on vajalik süsteemi eeldatava toimimise vajaliku muutuse tõttu.

Tutvustame/proc-failisüsteemi

Failisüsteemi hierarhia standardi uusim spetsifikatsioon näitab, et /proc tähistab vaikemeetodit protsessi- ja süsteemiteabe ning muu kerneli- ja mäluteabe käitlemiseks. Täpsemalt leiate /proc/sys , kust leiate kogu teabe seadmete, draiverite ja mõnede kerneli funktsioonide kohta.

/proc/sys tegelik sisemine struktuur sõltub suuresti kasutatavast tuumast, kuid tõenäoliselt leiate selle sees järgmised kataloogid. Kumbki neist sisaldab omakorda muid alamkatalooge, kus säilitatakse iga parameetrikategooria väärtused:

  1. dev : seadmega ühendatud konkreetsete seadmete parameetrid.
  2. fs : failisüsteemi konfiguratsioon (näiteks kvoodid ja inoodid).
  3. kernel: tuumapõhine konfiguratsioon.
  4. net : võrgu konfiguratsioon.
  5. vm : tuuma virtuaalse mälu kasutamine.

Tuuma käituse parameetrite muutmiseks kasutame käsku sysctl . Parameetrite täpset arvu, mida saab muuta, saab vaadata järgmiselt:

# sysctl -a | wc -l

Kui soovite vaadata kerneli parameetrite täielikku loendit, tehke lihtsalt järgmist.

# sysctl -a 

Kuna ülaltoodud käsu väljund koosneb PALJU ridadest, saame selle hoolikamaks kontrollimiseks kasutada torujuhet, millele järgneb vähem:

# sysctl -a | less

Vaatame paari esimest rida. Pange tähele, et iga rea esimesed tähemärgid vastavad kataloogis /proc/sys olevate kataloogide nimedele:

Näiteks esiletõstetud rida:

dev.cdrom.info = drive name:        	sr0

näitab, et sr0 on optilise draivi varjunimi. Teisisõnu, nii "näeb" kern seda draivi ja kasutab seda nime sellele viitamiseks.

Järgmises jaotises selgitame, kuidas muuta Linuxi\"olulisemaid" tuuma käituse parameetreid.

Kuidas muuta või muuta Linuxi kerneli käituse parameetreid

Siiani selgitatu põhjal on lihtne mõista, et parameetri nimi vastab kataloogi struktuurile /proc/sys sees, 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

Sellest hoolimata saame konkreetse Linuxi kerneli parameetri väärtust vaadata, kasutades kas sysctl , millele järgneb parameetri nimi, või lugedes seotud faili:

# sysctl dev.cdrom.autoclose
# cat /proc/sys/dev/cdrom/autoclose
# sysctl net.ipv4.ip_forward
# cat /proc/sys/net/ipv4/ip_forward

Tuuma parameetri väärtuse määramiseks võime kasutada ka sysctl , kuid kasutades valikut -w ja millele järgneb parameetri nimi, võrdusmärk ja soovitud väärtus.

Teine meetod seisneb echo kasutamises parameetriga seotud faili ülekirjutamiseks. Teisisõnu, järgmised meetodid on samaväärsed paketiedastuse funktsionaalsuse keelamiseks meie süsteemis (mis, muide, peaks olema vaikeväärtus, kui kast ei peaks võrkude vahel liiklust edastama):

# echo 0 > /proc/sys/net/ipv4/ip_forward
# sysctl -w net.ipv4.ip_forward=0

Oluline on märkida, et tuuma parameetrid, mis on määratud sysctl abil, jõustatakse ainult praeguse seansi ajal ja kaovad, kui süsteem taaskäivitatakse.

Nende väärtuste püsivaks määramiseks muutke /etc/sysctl.conf soovitud väärtustega. Näiteks pakettide edastamise keelamiseks kataloogis /etc/sysctl.conf veenduge, et see rida ilmuks failis:

net.ipv4.ip_forward=0

Seejärel käivitage järgmine käsk, et rakendada muudatusi jooksvas konfiguratsioonis.

# sysctl -p

Teised näited olulistest tuuma käitamise parameetritest on:

fs.file-max määrab maksimaalse arvu failikäitluste arvu, mida tuum võib süsteemile eraldada. Sõltuvalt teie süsteemi kavandatud kasutusest (veebi/andmebaas/failiserver, kui tuua mõned näited), võiksite seda väärtust süsteemi vajadustele vastavaks muuta.

Vastasel juhul saate parimal juhul veateate\"Liiga palju avatud faile» ja halvimal juhul võib see takistada operatsioonisüsteemi käivitamist.

Kui süütu vea tõttu satute sellesse viimasesse olukorda, käivitage see ühe kasutaja režiimis (nagu on selgitatud selle seeria osas 14 - Monitor ja Linuxi protsessi limiidi kasutamise seadistamine).

kernel.sysrq kasutatakse teie klaviatuuril SysRq-klahvi (tuntud ka kui printimisekraani klahv) lubamiseks, et teatud klahvikombinatsioonid saaksid kutsuda hädaabitoiminguid, kui süsteem ei reageeri.

Vaikeväärtus (16) näitab, et süsteem austab kombinatsiooni Alt + SysRq + key ja täidab toiminguid, mis on loetletud kernel.org-i sysrq.c dokumentatsioonis (kus võti on üks täht bz vahemik). 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 virtuaalses masinas vajutada, kuna see võib teie hostisüsteemi taaskäivitada!

Kui see on seatud väärtusele 1, ignoreerib net.ipv4.icmp_echo_ignore_all pingitaotlusi ja viskab need kerneli tasemele. Seda näitab allolev pilt - pange tähele, kuidas pingitaotlused pärast selle kerneli parameetri seadistamist kaovad:

Parem ja lihtsam viis üksikute käitamisparameetrite määramiseks on .conf-failide kasutamine /etc/sysctl.d sees, rühmitades need kategooriate järgi.

Näiteks selle asemel, et /etc/sysctl.conf seadistada net.ipv4.ip_forward = 0 ja net.ipv4.icmp_echo_ignore_all = 1, saame/etc/sees luua uue faili nimega net.conf 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 kasutada seda lähenemist, ärge unustage samu ridu kaustast /etc/sysctl.conf eemaldada.

Kokkuvõte

Selles artiklis oleme selgitanud, kuidas muuta tuuma käituse parameetreid, nii püsivaid kui ka mittepüsivaid, kasutades sysctl, /etc/sysctl.conf ja faile /etc/sysctl.d.

Sysctl-dokumentidest leiate lisateavet rohkemate muutujate tähenduse kohta. Need failid esindavad kõige täielikumat dokumentatsiooniallikat parameetrite kohta, mida saab seadistada sysctl kaudu.

Kas see artikkel oli teile kasulik? Loodame kindlasti, et tegite. Andke meile teada, kui teil on küsimusi või ettepanekuid, mida paremaks muuta.