Kā nemainīgā un nepastāvīgā veidā mainīt kodola izpildlaika parametrus


Kā izmantot GRUB, lai mainītu sistēmas darbību, 13. daļā, nododot kodola opcijas notiekošajam sāknēšanas procesam.

Tāpat jūs varat izmantot komandrindu darbībā esošajā Linux sistēmā, lai mainītu noteiktus izpildlaika kodola parametrus kā vienreizēju modifikāciju vai neatgriezeniski, rediģējot konfigurācijas failu.

Tādējādi jums ir atļauts bez grūtībām iespējot vai atspējot kodola parametrus lidojuma laikā, kad tas ir nepieciešams, ņemot vērā nepieciešamās izmaiņas sistēmas darbībā.

Iepazīšanās ar/proc failu sistēmu

Failu sistēmas hierarhijas standarta jaunākā specifikācija norāda, ka /proc apzīmē noklusējuma metodi apstrādāt procesu un sistēmu, kā arī citu kodola un atmiņas informāciju. Konkrēti, /proc/sys ir visa informācija par ierīcēm, draiveriem un dažām kodola funkcijām.

Faktiskā /proc/sys iekšējā struktūra ir ļoti atkarīga no izmantotā kodola, taču jūs, visticamāk, atradīsit šādus direktorijus iekšpusē. Savukārt katrā no tām būs citi apakšdirektoriji, kur tiek saglabātas katras parametru kategorijas vērtības:

  1. dev : parametri īpašām ierīcēm, kas savienotas ar mašīnu.
  2. fs : failu sistēmas konfigurācija (piemēram, kvotas un inodes).
  3. kodols: kodolam raksturīga konfigurācija.
  4. net : tīkla konfigurācija.
  5. vm : kodola virtuālās atmiņas izmantošana.

Lai modificētu kodola izpildlaika parametrus, mēs izmantosim komandu sysctl . Precīzu modificējamo parametru skaitu var apskatīt, izmantojot:

# sysctl -a | wc -l

Ja vēlaties apskatīt pilnu kodola parametru sarakstu, vienkārši rīkojieties šādi:

# sysctl -a 

Tā kā iepriekš minētās komandas izvade sastāvēs no DAUDZ līnijām, mēs varam izmantot cauruļvadu, kam seko mazāk, lai to rūpīgāk pārbaudītu:

# sysctl -a | less

Apskatīsim dažas pirmās rindas. Lūdzu, ņemiet vērā, ka katras rindas pirmās rakstzīmes sakrīt ar direktoriju nosaukumiem, kas atrodas /proc/sys :

Piemēram, iezīmētā līnija:

dev.cdrom.info = drive name:        	sr0

norāda, ka sr0 ir optiskā diska aizstājvārds. Citiem vārdiem sakot, tieši tā kodols “redz” šo disku un izmanto šo nosaukumu, lai uz to atsauktos.

Nākamajā sadaļā mēs izskaidrosim, kā mainīt citus “svarīgākus” kodola izpildlaika parametrus Linux.

Kā mainīt vai modificēt Linux kodola izpildlaika parametrus

Pamatojoties uz līdz šim izskaidroto, ir viegli redzēt, ka parametra nosaukums atbilst direktorijas struktūrai /proc/sys iekšpusē, kur to var atrast.

Piemēram:

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

Tas nozīmē, ka mēs varam apskatīt konkrēta Linux kodola parametra vērtību, izmantojot vai nu sysctl , kam seko parametra nosaukums, vai nolasot saistīto failu:

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

Lai iestatītu kodola parametra vērtību, mēs varam izmantot arī sysctl , bet izmantojot opciju -w , kam seko parametra nosaukums, vienādības zīme un vēlamā vērtība.

Cita metode sastāv no echo izmantošanas, lai pārrakstītu ar parametru saistīto failu. Citiem vārdiem sakot, šādas metodes ir līdzvērtīgas, lai atspējotu pakešu pārsūtīšanas funkcionalitāti mūsu sistēmā (kurai, starp citu, vajadzētu būt noklusējuma vērtībai, ja lodziņam nav paredzēts nodot trafiku starp tīkliem):

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

Ir svarīgi atzīmēt, ka kodola parametri, kas iestatīti, izmantojot sysctl , tiks ieviesti tikai pašreizējās sesijas laikā un izzudīs, kad sistēma tiks restartēta.

Lai šīs vērtības iestatītu pastāvīgi, rediģējiet /etc/sysctl.conf ar vēlamajām vērtībām. Piemēram, lai atspējotu pakešu pārsūtīšanu mapē /etc/sysctl.conf, pārliecinieties, vai šī rindiņa parādās failā:

net.ipv4.ip_forward=0

Pēc tam palaidiet šādu komandu, lai izmaiņas lietotu konfigurācijā.

# sysctl -p

Citi svarīgi kodola izpildlaika parametri ir:

fs.file-max norāda maksimālo failu apstrādes skaitu, ko kodols var piešķirt sistēmai. Atkarībā no paredzētās sistēmas izmantošanas (tīmekļa/datu bāzes/failu servera, lai nosauktu dažus piemērus), iespējams, vēlēsities mainīt šo vērtību, lai tā atbilstu sistēmas vajadzībām.

Pretējā gadījumā jūs saņemsit kļūdas ziņojumu “Pārāk daudz atvērtu failu” un sliktākajā gadījumā tas var novērst operētājsistēmas sāknēšanu.

Ja nevainīgas kļūdas dēļ jūs nonākat šajā pēdējā situācijā, sāknējiet viena lietotāja režīmā (kā paskaidrots šīs sērijas 14. daļā - Uzraudzīt un iestatīt Linux procesu ierobežotu lietošanu.

kernel.sysrq tiek izmantots, lai tastatūrā iespējotu SysRq taustiņu (sauktu arī par drukas ekrāna taustiņu), lai noteiktu taustiņu kombinācijas varētu izsaukt ārkārtas darbības, kad sistēma vairs nereaģē.

Noklusējuma vērtība (16) norāda, ka sistēma ievēros kombināciju Alt + SysRq + key un veiks darbības, kas uzskaitītas sysrq.c dokumentācijā, kas atrodama kernel.org (kur atslēga ir viens burts bz diapazons). Piemēram, Alt + SysRq + b sistēma tiks spēcīgi pārstartēta (izmantojiet to kā pēdējo iespēju, ja jūsu serveris nereaģē).

Brīdinājums! Nemēģiniet virtuālajā mašīnā nospiest šo taustiņu kombināciju, jo tas var piespiest jūsu resursdatora sistēmu pārstartēt!

Ja iestatīts uz 1, net.ipv4.icmp_echo_ignore_all ignorēs ping pieprasījumus un nometīs tos kodola līmenī. Tas parādīts zemāk esošajā attēlā - ņemiet vērā, kā ping pieprasījumi tiek zaudēti pēc šī kodola parametra iestatīšanas:

Labāks un vienkāršāks veids, kā iestatīt atsevišķus izpildlaika parametrus, ir .conf failu izmantošana /etc/sysctl.d iekšpusē, tos grupējot pēc kategorijām.

Piemēram, tā vietā, lai iestatītu net.ipv4.ip_forward = 0 un net.ipv4.icmp_echo_ignore_all = 1 mapē /etc/sysctl.conf, mēs varam izveidot jaunu failu ar nosaukumu net.conf /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

Ja izvēlaties izmantot šo pieeju, neaizmirstiet tās pašas rindas noņemt no /etc/sysctl.conf .

Kopsavilkums

Šajā rakstā mēs esam paskaidrojuši, kā modificēt kodola izpildlaika parametrus, gan pastāvīgus, gan nepastāvīgus, izmantojot sysctl, /etc/sysctl.conf un failus /etc/sysctl.d.

Sysctl dokumentos varat atrast vairāk informācijas par vairāku mainīgo nozīmi. Šie faili ir vispilnīgākais dokumentācijas avots par parametriem, kurus var iestatīt, izmantojot sysctl.

Vai šis raksts jums šķita noderīgs? Mēs noteikti ceram, ka jūs to izdarījāt. Nekautrējieties informēt mūs, ja jums ir kādi jautājumi vai ieteikumi, ko uzlabot.