Giunsa Pagbag-o ang Mga Parameter sa Kernel Runtime sa Kanunay ug Dili Kanunay nga Paagi


Sa Bahin 13 niini kung giunsa paggamit ang GRUB aron mabag-o ang pamatasan sa sistema pinaagi sa pagpasa sa mga kapilian sa kernel alang sa nagpadayon nga proseso sa boot.

Sa susama, mahimo nimong gamiton ang command line sa usa ka nagdagan nga sistema sa Linux aron usbon ang pipila ka runtime kernel parameters isip usa ka higayon nga pagbag-o, o permanente pinaagi sa pag-edit sa usa ka configuration file.

Sa ingon, gitugotan ka sa pag-enable o pag-disable sa mga parameter sa kernel on-the-fly nga wala’y daghang kalisud kung gikinahanglan kini tungod sa gikinahanglan nga pagbag-o sa paagi nga gilauman nga molihok ang sistema.

Pagpaila sa /proc Filesystem

Ang pinakabag-o nga espesipikasyon sa Filesystem Hierarchy Standard nagpakita nga ang /proc nagrepresentar sa default nga pamaagi sa pagdumala sa proseso ug impormasyon sa sistema ingon man sa ubang impormasyon sa kernel ug memorya. Ilabi na, /proc/sys diin makit-an nimo ang tanan nga kasayuran bahin sa mga aparato, driver, ug pipila nga mga bahin sa kernel.

Ang aktuwal nga internal nga estraktura sa /proc/sys nagdepende pag-ayo sa kernel nga gigamit, apan lagmit makit-an nimo ang mosunod nga mga direktoryo sa sulod. Sa baylo, ang matag usa niini maglangkob sa ubang mga subdirektoryo diin ang mga kantidad alang sa matag kategorya nga parameter gipadayon:

  1. dev: mga parametro para sa espisipikong mga himan nga konektado sa makina.
  2. fs: configuration sa filesystem (mga quota ug inode, pananglitan).
  3. kernel: espesipiko sa kernel nga configuration.
  4. net: configuration sa network.
  5. vm: paggamit sa virtual memory sa kernel.

Aron usbon ang kernel runtime nga mga parametro atong gamiton ang sysctl command. Ang eksaktong gidaghanon sa mga parametro nga mahimong usbon mahimong tan-awon sa:

# sysctl -a | wc -l

Kung gusto nimo tan-awon ang kompleto nga lista sa mga parameter sa Kernel, buhata lang:

# sysctl -a 

Ingon nga ang output sa sugo sa ibabaw maglangkob sa DAGHAN nga linya, mahimo natong gamiton ang pipeline nga gisundan sa dili kaayo aron masusi kini pag-ayo:

# sysctl -a | less

Atong tan-awon ang unang pipila ka mga linya. Palihug timan-i nga ang unang mga karakter sa matag linya motakdo sa mga ngalan sa mga direktoryo sulod sa /proc/sys:

Pananglitan, ang gipasiugda nga linya:

dev.cdrom.info = drive name:        	sr0

nagpakita nga ang sr0 usa ka alyas alang sa optical drive. Sa laing pagkasulti, mao kana kung giunsa ang kernel \nakakita sa kana nga drive ug gigamit kana nga ngalan sa paghisgot niini.

Sa sunod nga seksyon among ipasabut kung giunsa pagbag-o ang uban nga \mas hinungdanon nga kernel runtime parameter sa Linux.

Unsaon Pag-usab o Pag-usab sa Linux Kernel Runtime Parameteres

Base sa atong gipatin-aw hangtud karon, sayon nga makita nga ang ngalan sa usa ka parameter mohaum sa direktoryo nga istruktura sulod sa /proc/sys diin kini makita.

Pananglitan:

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

Ingon niana, mahimo natong tan-awon ang bili sa usa ka partikular nga parameter sa Linux kernel gamit ang sysctl nga gisundan sa ngalan sa parameter o pagbasa sa nahilambigit nga file:

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

Aron mabutang ang bili sa usa ka kernel parameter mahimo usab natong gamiton ang sysctl, apan gamit ang -w nga opsyon ug gisundan sa ngalan sa parameter, ang equal sign, ug ang gusto nga bili.

Ang laing pamaagi naglangkob sa paggamit sa echo aron i-overwrite ang file nga nalangkit sa parameter. Sa laing pagkasulti, ang mosunod nga mga pamaagi katumbas sa pag-disable sa packet forwarding functionality sa atong sistema (nga, sa ato pa, kinahanglan ang default value kung ang usa ka kahon dili kinahanglan nga moagi sa trapiko tali sa mga network):

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

Importante nga timan-an nga ang kernel parameters nga gitakda gamit ang sysctl ipatuman lang sa panahon sa kasamtangan nga session ug mawala kung ang sistema ma-reboot.

Aron mabutang kini nga mga bili nga permanente, i-edit ang /etc/sysctl.conf uban ang gusto nga mga bili. Pananglitan, aron ma-disable ang packet forwarding sa /etc/sysctl.conf siguroha nga kini nga linya makita sa file:

net.ipv4.ip_forward=0

Dayon padagana ang mosunod nga sugo aron magamit ang mga kausaban sa running configuration.

# sysctl -p

Ang ubang mga pananglitan sa importante nga kernel runtime parameters mao ang:

Ang fs.file-max nagtino sa kinatas-ang gidaghanon sa mga file nga nagdumala sa kernel nga magahin alang sa sistema. Depende sa gituyo nga paggamit sa imong sistema (web/database/file server, sa paghingalan sa pipila ka mga pananglitan), mahimo nimong usbon kini nga bili aron matubag ang mga panginahanglan sa sistema.

Kung dili, makadawat ka usa ka mensahe sa sayup nga \Daghan kaayo nga bukas nga mga file, ug mahimong makapugong sa operating system nga mag-boot sa labing grabe.

Kung tungod sa usa ka inosenteng kasaypanan makit-an nimo ang imong kaugalingon niining katapusang sitwasyon, pag-boot sa single user mode (sama sa gipatin-aw sa Bahin 14 - Pag-monitor ug Pag-set sa Linux Process Limit Usage niini nga serye.

Ang kernel.sysrq gigamit aron mahimo ang SysRq key sa imong keyboard (nailhan usab nga print screen key) aron tugotan ang pipila ka key combinations sa pag-awhag sa mga aksyong pang-emerhensya kung ang sistema dili na motubag.

Ang default nga kantidad (16) nagpakita nga ang sistema mopasidungog sa Alt+SysRq+key kombinasyon ug mobuhat sa mga aksyon nga gilista sa sysrq.c nga dokumentasyon nga makita sa kernel.org (diin ang yawe usa ka letra sa b-z range). Pananglitan, ang Alt+SysRq+b kusog nga mag-reboot sa sistema (gamita kini isip katapusan nga paagi kung ang imong server dili motubag).

Pasidaan! Ayaw pagsulay sa pagpindot niining yawe nga kombinasyon sa usa ka virtual nga makina tungod kay mahimo’g mapugos ang imong host system nga mag-reboot!

Kung gibutang sa 1, ang net.ipv4.icmp_echo_ignore_all dili magtagad sa mga hangyo sa ping ug ihulog kini sa lebel sa kernel. Gipakita kini sa ubos nga imahe - timan-i kung giunsa nawala ang mga hangyo sa ping pagkahuman i-set kini nga parameter sa kernel:

Ang mas maayo ug mas sayon nga paagi sa pagtakda sa tagsa-tagsa nga runtime nga mga parametro mao ang paggamit sa .conf files sulod sa /etc/sysctl.d, paggrupo niini sumala sa mga kategoriya.

Pananglitan, imbes nga i-set ang net.ipv4.ip_forward=0 ug net.ipv4.icmp_echo_ignore_all=1 sa /etc/sysctl.conf, makahimo mi og bag-ong file nga ginganlan og net.conf sulod sa /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

Kung gipili nimo nga gamiton kini nga pamaagi, ayaw kalimti ang pagtangtang sa parehas nga linya gikan sa /etc/sysctl.conf.

Summary

Niining artikuloha among gipasabot kon unsaon pag-usab sa kernel runtime nga mga parametro, pareho nga padayon ug dili kanunay, gamit ang sysctl, /etc/sysctl.conf, ug mga file sulod sa /etc/sysctl.d.

Sa sysctl docs makit-an nimo ang dugang nga kasayuran sa kahulugan sa daghang mga variable. Kadtong mga file nagrepresentar sa labing kompleto nga gigikanan sa dokumentasyon bahin sa mga parameter nga mahimong itakda pinaagi sa sysctl.

Nakita ba nimo nga mapuslanon kini nga artikulo? Kami nanghinaut nga imong gibuhat. Ayaw pagpanuko sa pagpahibalo kanamo kon duna kay mga pangutana o sugyot nga pauswagon.