Sisään Part 13 Tässä LFCS (Linux Foundation Certified Sysadmin) -sarjassa selitimme, kuinka GRUB:n avulla muokataan järjestelmän käyttäytymistä välittämällä ytimen valinnat käynnissä olevaa käynnistysprosessia varten.

Vastaavasti voit käyttää komentoriviä käynnissä olevassa Linux-järjestelmässä muuttaaksesi tiettyjä ajonaikaisia ​​ytimen parametreja kertaluonteisena muutoksena tai pysyvästi muokkaamalla asetustiedostoa.

Siten voit ottaa käyttöön tai poistaa käytöstä ytimen parametreja lennossa ilman suuria vaikeuksia, kun sitä tarvitaan järjestelmän toiminnan edellyttämän muutoksen vuoksi.

Esittelyssä /proc-tiedostojärjestelmä

Viimeisin tiedostojärjestelmähierarkiastandardin spesifikaatio osoittaa tämän /proc edustaa oletusmenetelmää prosessi- ja järjestelmätietojen sekä muiden ydin- ja muistitietojen käsittelyyn. Erityisesti, /proc/sys Täältä löydät kaikki tiedot laitteista, ohjaimista ja joistakin ytimen ominaisuuksista.

Todellinen sisäinen rakenne /proc/sys riippuu suuresti käytetystä ytimestä, mutta löydät todennäköisesti seuraavat hakemistot sisältä. Jokainen niistä puolestaan ​​sisältää muita alihakemistoja, joissa kunkin parametriluokan arvot säilytetään:

  1. dev: koneeseen kytkettyjen tiettyjen laitteiden parametrit.
  2. fs: tiedostojärjestelmän asetukset (esimerkiksi kiintiöt ja inodit).
  3. ydin: ydinkohtainen kokoonpano.
  4. net: verkkoasetukset.
  5. vm: ytimen virtuaalimuistin käyttö.

Käytämme ytimen ajonaikaisten parametrien muokkaamiseen sysctl. Muokattavien parametrien tarkkaa määrää voidaan tarkastella seuraavilla tavoilla:

# sysctl -a | wc -l

Jos haluat nähdä täydellisen luettelon ytimen parametreista, toimi seuraavasti:

# sysctl -a 

Koska yllä olevan komennon tulos koostuu PALJON riveistä, voimme käyttää liukuhihnaa, jota seuraa vähemmän, tarkistaaksemme sen tarkemmin:

# sysctl -a | less

Katsotaanpa muutamaa ensimmäistä riviä. Huomaa, että jokaisen rivin ensimmäiset merkit vastaavat sisällä olevien hakemistojen nimiä /proc/sys:

Ymmärrä Linux /proc-tiedostojärjestelmä

Esimerkiksi korostettu rivi:

dev.cdrom.info = drive name:        	sr0

osoittaa sen sr0 on optisen aseman alias. Toisin sanoen, näin on ydin sees asemaa ja käyttää sitä nimeä viittaamaan siihen.

Seuraavassa osiossa selitämme, kuinka muuta muuta more important ytimen ajonaikaiset parametrit Linuxissa.

Kuinka muuttaa tai muokata Linux-ytimen ajonaikaisia ​​parametreja

Tähän mennessä selittämiemme perusteella on helppo nähdä, että parametrin nimi vastaa sisällä olevaa hakemistorakennetta /proc/sys mistä se löytyy.

Esimerkiksi:

dev.cdrom.autoclose → /proc/sys/dev/cdrom/autoclose
net.ipv4.ip_forward → /proc/sys/net/ipv4/ip_forward

Tarkista Linux-ytimen parametrit

Voimme kuitenkin tarkastella tietyn Linux-ytimen parametrin arvoa käyttämällä jompaakumpaa sysctl parametrin nimellä tai lukemalla siihen liittyvän tiedoston:

# sysctl dev.cdrom.autoclose
# cat /proc/sys/dev/cdrom/autoclose
# sysctl net.ipv4.ip_forward
# cat /proc/sys/net/ipv4/ip_forward
Tarkista Linux-ytimen parametrit
Tarkista Linux-ytimen parametrit

Aseta tai muokkaa Linux-ytimen parametreja

Voimme myös käyttää ytimen parametrin arvon asettamiseen sysctlmutta käyttämällä -w ja sen jälkeen parametrin nimi, yhtäläisyysmerkki ja haluttu arvo.

Toinen menetelmä koostuu käytöstä echo parametriin liittyvän tiedoston päälle. Toisin sanoen seuraavat menetelmät vastaavat pakettien edelleenlähetystoiminnon poistamista järjestelmästämme (jonka muuten pitäisi olla oletusarvo, kun laatikon ei ole tarkoitus välittää liikennettä verkkojen välillä):

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

On tärkeää huomata, että ytimen parametrit, jotka asetetaan käyttämällä sysctl pakotetaan vain nykyisen istunnon aikana ja katoaa, kun järjestelmä käynnistetään uudelleen.

Jos haluat asettaa nämä arvot pysyvästi, muokkaa /etc/sysctl.conf halutut arvot. Esimerkiksi pakettien edelleenlähetyksen poistaminen käytöstä /etc/sysctl.conf varmista, että tämä rivi näkyy tiedostossa:

net.ipv4.ip_forward=0

Suorita sitten seuraava komento ottaaksesi muutokset käyttöön käynnissä olevaan kokoonpanoon.

# sysctl -p

Muita esimerkkejä tärkeistä ytimen ajonaikaisista parametreista ovat:

fs.file-max määrittää tiedostokahvojen enimmäismäärän, jonka ydin voi varata järjestelmälle. Riippuen järjestelmän käyttötarkoituksesta (verkko/tietokanta/tiedostopalvelin, muutamia esimerkkejä mainitakseni), saatat haluta muuttaa tätä arvoa vastaamaan järjestelmän tarpeita.

Muuten saat a Too many open files virheilmoitus parhaimmillaan, ja se voi estää käyttöjärjestelmän käynnistymisen pahimmillaan.

Jos joudut tähän viimeiseen tilanteeseen viattoman virheen vuoksi, käynnistä yhden käyttäjän tilassa (kuten on selitetty osassa 13 – Linux Grub Boot Loaderin asetukset ja vianmääritys) ja muokkaa /etc/sysctl.conf kuten aiemmin neuvottiin. Jos haluat asettaa saman rajoituksen käyttäjäkohtaisesti, katso tämän sarjan osa 14 – Valvo ja aseta Linux-prosessin käyttörajoitus.

kernel.sysrq käytetään mahdollistamaan SysRq näppäimistössäsi (tunnetaan myös tulostusnäytön näppäimenä), jotta tietyt näppäinyhdistelmät voivat käynnistää hätätoimintoja, kun järjestelmä ei vastaa.

Oletusarvo (16) osoittaa, että järjestelmä kunnioittaa Alt+SysRq+key ja suorita kohdassa luetellut toimet sysrq.c dokumentaatio löytyy osoitteesta kernel.org (jossa avain on yksi kirjain bz-alueella). Esimerkiksi, Alt+SysRq+b käynnistää järjestelmän uudelleen väkisin (käytä tätä viimeisenä keinona, jos palvelimesi ei vastaa).

Varoitus! Älä yritä painaa tätä näppäinyhdistelmää virtuaalikoneessa, koska se saattaa pakottaa isäntäjärjestelmän käynnistymään uudelleen!

Kun asetettu 1, net.ipv4.icmp_echo_ignore_all jättää huomioimatta ping-pyynnöt ja pudottaa ne ytimen tasolla. Tämä näkyy alla olevassa kuvassa – huomaa, kuinka ping-pyynnöt menetetään tämän ydinparametrin asettamisen jälkeen:

Estä Ping-pyynnöt Linuxissa
Estä Ping-pyynnöt Linuxissa

Parempi ja helpompi tapa asettaa yksittäisiä ajonaikaisia ​​parametreja on käyttää .confs sisällä /etc/sysctl.dryhmittelemällä ne luokkien mukaan.

Esimerkiksi asettamisen sijaan net.ipv4.ip_forward=0 ja net.ipv4.icmp_echo_ignore_all=1 sisään /etc/sysctl.confvoimme luoda uuden tiedoston nimeltä net.conf sisällä /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

Jos päätät käyttää tätä lähestymistapaa, älä unohda poistaa samat rivit /etc/sysctl.conf.

Yhteenveto

Tässä artikkelissa olemme selittäneet, kuinka ytimen ajonaikaisia ​​parametreja muokataan, sekä pysyviä että ei-pysyviä, käyttämällä sysctl, /etc/sysctl.confja sisällä olevat tiedostot /etc/sysctl.d.

Vuonna sysctl docsista löydät lisätietoja useiden muuttujien merkityksestä. Nämä tiedostot edustavat täydellisintä dokumentaatiolähdettä parametreista, jotka voidaan asettaa sysctl:n avulla.

Oliko tämä artikkeli mielestäsi hyödyllinen? Toivomme varmasti, että teit. Älä epäröi kertoa meille, jos sinulla on kysyttävää tai parannusehdotuksia.