- Ukulungiswa kwe-kernel okuthuthukisiwe nge-sysctl kukuvumela ukuthi ulungise inethiwekhi, imemori, amafayela, kanye nesheduli ukuze wandise ukusebenza kanye nokuqina.
- Kubalulekile ukulinganisa ngaphambi nangemva kokusebenzisa izilinganiso kanye nokuqapha ukuqinisekisa umthelela wangempela woshintsho ngalunye.
- Amaphrofayili athile (iwebhu, izizindalwazi, ukubambezeleka okuphansi, ama-Kubernetes) athola imiphumela engcono kunesilungiselelo esisodwa esijwayelekile.
- Amathuluzi anjenge-perf, i-ftrace, i-vmstat, kanye ne-iostat enza kube lula ukwenza ngcono idatha ngokuphindaphindwayo, okuphephile, kanye nokungakhethi.
Uma ubulokhu uphatha amaseva e-Linux isikhathi esithile, ekugcineni uzothola ukuthi umehluko phakathi kohlelo oluphakathi nendawo noluhamba ngaphansi komthwalo osindayo ulele ekutheni uyilungisile kahle kangakanani i-kernel. Akukhona nje ukufaka i-RAM eyengeziwe noma i-CPU enamandla kakhulu: izinkinga eziningi zixazululwa ngokulungisa amapharamitha ambalwa akhethwe ngokucophelela.
I-kernel iveza amakhulu ezinketho zokuhlela inethiwekhi, inkumbulo, uhlelo lwamafayela, kanye nezinqubo ezingashintshwa ngokushesha. Ngethuluzi sysctl kanye nokulungiswa okuthile ku /procKungenzeka ukuthola okuningi kuhadiwe futhi ufeze ukubambezeleka okuphansi, ukukhishwa okuphezulu, kanye nokuzinza okungcono Lokhu kusebenza kumaseva ewebhu kanye nezizindalwazi, kanye nezimo zesikhathi sangempela kanye nama-Kubernetes. Kodwa-ke, kubalulekile ukwazi kahle ukuthi wenzani nokuthi ungakulinganisa kanjani.
Kuyini i-sysctl futhi ihlela kanjani amapharamitha e-kernel?
Okusetshenziswayo sysctl Kuyindlela yokushintsha amapharamitha e-kernel ngaphandle kokudinga ukuhlanganisa kabusha noma ukuqala kabusha, okuvumela funda futhi ulungise amanani ngesikhathi sokusebenza ukuhlola ukucushwa ngokushesha. Lawa mapharamitha ahlelwe esihlahleni esiphansi esinohlu oluphezulu /proc/sys/futhi ngayinye ilawula ukuziphatha okuthile kwesistimu.
Izilungiselelo zihlelwe ngezigaba ezihlukene, okwenza kube lula ukukhomba ukuthi yini okudingeka uyilungise uma ubhekene nenkinga ethile yokusebenza noma yokuzinza. Lesi sakhiwo sikuvumela ukuthi ugxile, isibonelo, kuphela kunethiwekhi (net.*), imemori (vm.*), noma uhlelo lwefayela (fs.*) ngaphandle kokulahleka kwezinye izinketho ze-kernel.
Izigaba eziyinhloko ozothola kuzo /proc/sys/ Lokhu kufaka phakathi, phakathi kokunye:
- i-kernel.*: izinketho ezijwayelekile ze-kernel (umhleli wesheduli, i-PID, imiyalezo, i-NUMA, njll.).
- vm.*: ukuphathwa kwememori ebonakalayo, ukushintshana, izinqolobane kanye nezinqubomgomo zokuzibophezela ngokweqile.
- inethi.*: I-IPv4/IPv6 network stack, ama-buffer e-TCP/UDP, imigqa, ukulawula ukuminyana.
- fs.*: imikhawulo yezincazelo, ama-inode, i-inotify, ukuziphatha kwe-AIO kanye ne-VFS.
- i-dev.*: amapharamitha athile amadivayisi athile kanye nabashayeli.
cunt sysctl -a Ungabhala wonke amapharamitha atholakalayo, kanye nemiyalo efana sysctl vm.swappiness o sysctl net.ipv4.tcp_tw_reuse ukufunda amanani athile, okuyisihluthulelo hlola ukucushwa kwamanje ngaphambi kokushintsha noma yini. Ukuze uthole into ethile, kuvamile ukuhlunga nge grep, isibonelo: sysctl -a | grep tcp.
Ukushintsha ipharamitha ngokushesha kulula njengokusebenzisa sysctl -w clave=valorNokho, kubalulekile ukuqonda ukuthi lezi zinguquko zingezesikhashana. Ukuze uzilondoloze ngemva kokuqalisa kabusha, kubalulekile ukwenza isipele sokulungiselela ukuze /etc/sysctl.conf noma kumafayela e- /etc/sysctl.d/, ngokuvamile kusetshenziswa amafayela anezinombolo (isibonelo 10-network.conf, 20-memory.conf, 99-custom.conf) ezinquma ukulandelana kokusetshenziswa kwazo.
Kala ngaphambi kokuthi uthinte: amabhentshimakhi kanye nesisekelo sesistimu
Ngaphambi kokuthi uqale ukudlala ngama-dial, kuwukuhlakanipha ukusungula isisekelo sokusebenza esiqondile . Ngaphandle kwedatha yangaphambilini, akunakwenzeka ukwazi ukuthi izinguquko zithuthukisile noma zibhebhethekise uhlelo, futhi uzowela ogibeni olujwayelekile oluthi "kubonakala kungcono kimi", olungenamsebenzi ekwenzeni izinqumo ezinengqondo.
Ezingeni lonke lesistimu, kungumqondo omuhle ukuqoqa izibalo ze-CPU, umthwalo, imemori, idiski, kanye nenethiwekhi imizuzu embalwa ngaphansi komthwalo omele. Amathuluzi anjenge uptime, mpstat, vmstat, iostat -x o sar -n DEV Zikuvumela ukuthi ubone ukuthi i-kernel yesitoko iziphatha kanjani, ukuthi isebenzisa i-swap engakanani, ukuthi i-disk I/O iphendula kanjani, nokuthi inethiwekhi igcwele noma ichitha i-bandwidth.
Ngaphezu kwalokho kubuka konke, kubalulekile ukusebenzisa amabhentshimakhi athile ohlelo lokusebenza ofuna ukuluthuthukisa. Kumaseva ewebhu, ungasebenzisa ab (i-Apache Bench) noma amathuluzi afanayo okulinganisa izicelo ngomzuzwana, ukubambezeleka okumaphakathi, kanye namaphuthaKuma-database, izinsiza ezifana mysqlslap o sysbench Zisiza ekuhloleni ukuthengiselana ngomzuzwana kanye nezikhathi zombuzo.
Isibonelo, esimweni esingenakho ukulungisa, kuvamile ukuthola izibalo ezifana nezicelo ze-HTTP ezingu-500/s ezinesikhathi sokuphendula esimaphakathi esingu-200 ms, imibuzo ecishe ibe ngu-250 ye-SQL/s ene-latency engu-40 ms, isivinini senethiwekhi esingaba ngu-500 Mbps, kanye nomthwalo wesistimu osondela emkhawulweni wawo ngaphansi kokucindezeleka. Lezi zinombolo zizosetshenziselwa ukuqinisekisa, ngemuva kokusebenzisa izinguquko ze-kernel, ukuthi ngabe ukwanda okulinganiselwe kokuphuma kanye nokwehla kwe-latency kufeziwe ngempela.
Okokugcina, bhala phansi imiyalo nemiphumela ngaphambi kokwenza noma yiziphi izinguquko. Ukuba nomlando kuzokuvumela ukuthi uqhathanise ngokunembile amaqoqo ahlukene okulungiswa futhi kuzokusiza ukuthi uthole ukuhlehla ngemva kokubuyekezwa kwe-kernel noma ngemuva kokwethula iphrofayili entsha ye-sysctl ekukhiqizweni.
Izilungiselelo zememori ezithuthukisiwe: vm.*
Imemori ingenye yezinhlelo ezingaphansi lapho izinguquko ze-kernel zibonakala khona kakhulu. Iseva ene-RAM eningi, kodwa engahlelwanga kahle, ingagcina isebenzisa isikhala sokushintshana ngokungadingekile, okubangela... Ukwanda kwe-I/O kanye nokwehla okukhulu kokusebenzaYingakho amapharamitha afana vm.swappinessIzilinganiso zamakhasi angcolile noma ukuziphatha kwe-VFS cache nakho kubaluleke kakhulu.
Ipharamitha vm.swappiness Lokhu kulawula ukuthi i-kernel ithumela amakhasi enkumbulo amangaki ukuze iwashintshe. Ezindaweni eziningi zokusabalalisa, isethwe ku-60, inani elihloselwe izindawo ezixubile zedeskithophu. Kumaseva edathabheyisi noma izinhlelo zokusebenza ze-low-latency, ngokuvamile kungcono ukulihlisa libe yi-10 noma ngaphansi, okuholela ohlelweni olusebenza kahle kakhulu. ukubeka phambili ukugcina idatha ku-RAM nokunciphisa ukushintshanaAkuvamile ukubona ithrafikhi yediski iwa futhi izinhlelo zokusebenza zisabela ngokwesaba okuncane ngemva kwalokhu kulungiswa.
Esinye isakhiwo esiyisisekelo yilesi vm.dirty_ratio y vm.dirty_background_ratioLawa manani anquma ukuthi yiliphi iphesenti lememori elingagcwaliswa ngamakhasi angcolile ngaphambi kokuba i-kernel iqale ukuwasusa kudiski. Amanani aphezulu kakhulu angaholela ekuqhumeni okukhulu kokubhala, kanye nokubambezeleka okukhulu kuzo zonke izinhlelo zokusebenza lapho kuvela ukushaqeka. Ukunciphisa la maphesenti abe yizibalo ezifana no-15 no-5, ngokulandelana, kuvame ukuphumela ku- iphethini ye-I/O ehambisanayo futhi ebikezelwayo.
Isilungiselelo se vm.vfs_cache_pressure Lokhu kuchaza ukuthi i-kernel ihlanza kanjani ngenkani ama-inode nama-directory cache. Inani elizenzakalelayo elingu-100 livame ukuhlanza i-cache ngokushesha, kuyilapho izilungiselelo ezizungeze u-50 zivumela imethadatha ukuthi igcinwe isikhathi eside, okwandisa izinga lokushaya kwemisebenzi yamafayela nokuthuthukisa ukusebenza. ukusebenza okubonwayo kohlelo lwefayela, into ebalulekile kumaseva aphatha izigidi zamafayela amancane.
Ngakolunye uhlangothi, vm.min_free_kbytes Bhukha inani elincane lememori yamahhala ukuqinisekisa ukuthi uhlelo lungaphendula ekuqhumeni kokwabiwa ngaphandle kokubhekana nezimo eziphuthumayo ze-OOB. Ukulinganisa lokhu cishe ku-0,5% kuya ku-1% we-RAM iyonke ngokuvamile kuyindlela yokuphepha ephumelelayo yokuvimbela i-kernel ukuthi iphelelwe isikhala ngaphansi komthwalo omkhulu futhi iqale ukubulala izinqubo ezibalulekile, ngaleyo ndlela kuthuthukiswe ukusebenza. ukuzinza komsingathi jikelele.
Okokugcina, inqubomgomo yokuzibophezela ngokweqile idinga ukunakwa: imingcele efana vm.overcommit_memory y vm.overcommit_ratio Zinquma ukuthi ingakanani imemori ebonakalayo eyabelwe izinqubo maqondana ne-RAM etholakalayo kanye ne-swap. Kwezinye izimo (isibonelo, nge-Redis noma izizindalwazi ezithile) ukuzibophezela ngokweqile kuyavunyelwa, kanti kwezinye inqubomgomo elondolozayo ikhethwa ukunciphisa ingozi yokuthi I-OOM kanye nezimo zenkumbulo eyonakele ngokweqileUkuze uthole amasu okuhlaziya nokuxilonga amacala ayinkimbinkimbi, thintana ukulungisa iphutha lememori ku-Linux.
Ukuthuthukiswa kwenethiwekhi okuthuthukisiwe: i-net.* kanye ne-TCP/IP
I-network stack mhlawumbe yindawo lapho ukulungiswa kubonakala khona kakhulu ezindaweni zokukhiqiza. Ushintsho olulula emigqeni yokuxhumana noma ama-buffer lungenza umehluko phakathi kweseva evala ama-500 Mbps kanye neseva evala ama-500 Mbps Igcwalisa kalula i-gigabit.Amapharamitha angaphansi net.core.* y net.ipv4.* Kule ndawo, bangabangane bakho abangcono kakhulu.
Okokuqala, osayizi be-socket buffer bathinta ngqo i-throughput ephezulu yokuxhumeka, ikakhulukazi uma kune-latencies ephezulu noma izixhumanisi ezinamandla aphezulu. net.core.rmem_max y net.core.wmem_max kumanani amakhulu (amashumi noma amakhulu ama-megabytes) bese uchaza kahle net.ipv4.tcp_rmem y net.ipv4.tcp_wmem (ubuncane, inani elizenzakalelayo kanye nenani eliphezulu) livumela isokhethi ngayinye ukuthi ibe ne isikhala esidingekayo ukuze kuncishiswe ukuqhuma kwethrafikhi ngaphandle kokuwela emikhawulweni yokwenziwa ebekwe yizindinganiso zefektri ezilondoloza kakhulu.
Elinye iphuzu elibalulekile usayizi wemigqa yokuxhumana. Amapharamitha anjenge net.core.somaxconn, net.core.netdev_max_backlog y net.ipv4.tcp_max_syn_backlog Le mikhawulo ichaza ukuthi zingaki izixhumanisi ezilindile uhlelo olungaziphatha ngaphambi kokulahla amaphakethe noma ukwenqaba ukuxhawulana. Kumaseva ewebhu anabantu abaningi, ukwandisa le mikhawulo kungavimbela imigqa egcwele futhi kunciphise kakhulu umthwalo. amaphutha okuxhumana ngesikhathi sokulayisha okuphezulu.
Ukuziphatha kokuxhumeka kwe-TCP kungalungiswa kahle ngezinketho eziningi: vumela net.ipv4.tcp_window_scaling Ukuze usekele amafasitela amakhulu kuzixhumanisi ze-bandwidth ephezulu, vumela net.ipv4.tcp_sack y net.ipv4.tcp_timestamps ukuthuthukisa ukuphathwa kokulahlekelwa kanye nokudluliselwa kabusha, noma ukulungisa net.ipv4.tcp_fin_timeout kanye nokuphathwa kwe TIME_WAIT (net.ipv4.tcp_tw_reuse, net.ipv4.tcp_max_tw_buckets) ukuze kulawulwe ukusetshenziswa kwezinsiza kumaseva nge izigidi zokuxhumeka okufushane ngomzuzu.
Ukukhetha i-algorithm yokulawula ukuminyana nakho kubalulekile. cubic Ihlala iyinani elizenzakalelayo ekusatshalalisweni okuningi; ishintshela ku- bbr kuma-kernel anamuhla (4.9 nakamuva) ngu net.ipv4.tcp_congestion_control y net.core.default_qdisc=fq Ingaphindaphinda i-TCP throughput ezindaweni ezinokulahlekelwa okuyinkimbinkimbi noma ukubambezeleka, ifinyelele ukuthuthuka okuphakathi kwezikhathi ezi-2 nezingama-25 uma kuqhathaniswa nokulungiselelwa okuvamile ezimweni ezithile, ngezindleko ukuziphatha okuhlukile kancane kumanethiwekhi aminyene.
Akufanele sikhohlwe ngemingcele yokuphepha nokuthembeka efana net.ipv4.tcp_syncookies, ukuphathwa kokuqondisa kabusha (net.ipv4.conf.all.accept_redirects, send_redirects) noma ukuhlunga emabhulohweni (net.bridge.bridge-nf-call-iptables ezindaweni ze-Kubernetes). Uma zilungiselelwe kahle, zikuvumela ukuthi uvikele uhlelo ekuhlaselweni okuvamile (izikhukhula ze-SYN, ukukhwabanisa, njll.) ngaphandle kokulahla ukusebenza kwenethiwekhi okuqinileUkuze uthole umhlahlandlela osebenzayo ngemithetho kanye nokutholwa, hlola i- Ukuqaliswa kwe-Netfilter kanye ne-Suricata.
Uhlelo lwefayela, izincazelo, kanye nemikhawulo yomhlaba wonke: fs.* kanye ne-ulimit
Kumaseva anamuhla, umkhawulo wencazelo yefayela ophansi uyindlela eshesha kakhulu yokuphula uhlelo ngesikhathi samahora aphezulu. Lapho iseva yewebhu, i-reverse proxy, noma isizindalwazi sihlangabezana nephutha elivamile elithi "amafayela amaningi avulekile", ngokuvamile kungenxa yokuthi amapharamitha e-kernel kanye nemikhawulo yomsebenzisi azange ilinganiswe ngomthwalo wangempela.
Ezingeni lomhlaba jikelele, fs.file-max Lokhu kucacisa ukuthi zingaki izincazelo i-kernel engaba nazo ezivulekile sezizonke. Kuzinhlelo zokusebenza ezinezinkulungwane zokuxhumeka ngasikhathi sinye, kuvamile ukwandisa leli nani libe yizigidi eziningana, kanye nokwanda kwe fs.nr_openokwakha uphahla oluqinile lwezincazelo ngenqubo ngayinye. Ngaphezu kwalokho, kudingeka ukulungiswa. /etc/security/limits.conf ukuze abasebenzisi (noma izinsizakalo eziphethwe yi-systemd) babe nazo amanani athambile naqinile ahambisana nokucushwa kwe-kernel.
Uhlelo olungaphansi lwe-inotify, olusetshenziswa kabanzi yi-IDE, amathuluzi okuthuthukisa iwebhu, kanye nezinhlelo zokuqapha amafayela, lulawulwa yimingcele efana ne- fs.inotify.max_user_watches y fs.inotify.max_user_instancesUma uhlangabezana namaphutha ahlobene nababukeli noma izinqubo eziyeka ukuqapha izinguquko zediski, cishe udinga Khulisa le mingcele ukuze ugweme izithiyo ezithule.
Esinye isici esibalulekile yi-asynchronous I/O (AIO), lapho i-global maximum yayo ichazwa khona nge fs.aio-max-nrKuzinhlelo zokusebenza ezithembele kakhulu ku-I/O engahambisani (izinjini ezithile zedatha, izinhlelo zokufaka umugqa, njll.), ukuyikhulisa kuvimbela i-kernel ukuthi iphelelwe yizikhala zemisebenzi ye-AIO ngaphansi komthwalo omkhulu wesicelo.
Ngaphezu kwalezi zinhlaka, ukusebenza kwesistimu encane yediski kuthinteka yi- Umhleli we-I/O kulungiselelwe kudivayisi ngayinye yebhulokhi. Ezinhlelweni ezinama-SSD noma i-NVMe, kuvame ukunconywa ukusebenzisa amashejuli alula njenge none o mq-deadline, kuyilapho ezinye izinketho zingase zibe nengqondo kuma-disc omshini, njengokuthi bfq kuye ngohlobo lomthwalo. Lungisa ishejuli ngokusebenzisa /sys/block/<disco>/queue/scheduler kanye nokulungisa izinketho ezifana nokujula komugqa (nr_requests) noma read_ahead_kb kungenza umehluko ophawulekayo ku- ukubambezeleka kokufunda/ukubhala kanye nokukhiphaKubalulekile futhi ukucabangela ukuthi yiziphi izinhlelo zamafayela kanye nezishayeli ezisetshenziswayo; isibonelo, izihloko eziphathelene I-NTFSplus ku-Linux kanye nezinye izinhlelo zingasiza lapho kuklanywa imithwalo engafani.
Okokugcina, akufanele kukhohlwe ukuthi le mingcele ye-kernel kumele ihambisane nokucushwa kwesistimu okufana nokwe- ulimit kanye namayunithi e-systemd, ukuqinisekisa ukuthi izinsizakalo zingasebenzisa izinsiza ezengeziwe ezichaziwe futhi azivinjelwa yi- imikhawulo ezingqimbeni eziphezulu.
I-Kernel ejwayelekile, i-NUMA, i-CPU affinity, namakhasi amakhulu
Ngaphandle kwezinhlelo zokuxhumana, inkumbulo, kanye namafayela, i-kernel ngokwayo inikeza izinketho eziningi zokulungisa ezithinta indlela izinqubo ezihlelwa ngayo, indlela umthwalo wemisebenzi osatshalaliswa ngayo kuma-cores nama-node e-NUMA, kanye nendlela inkumbulo ephathwa ngayo ngezinga. Emishinini yesimanje enama-cores amaningi ngisho nama-sockets amaningi, le mininingwane ivame ukwenza umehluko phakathi kweseva elinganiselayo kanye nenye enama -cores athile agcwele kanti amanye angasetshenziswa kahle . Kuyafaneleka futhi ukuhlola ama-kernel ahlukile njenge -Liquorix kernel ezindaweni lapho kudingeka khona iphrofayili ehlukile yokubambezeleka.
Amapharamitha afana kernel.pid_max Basungula ububanzi obukhulu kakhulu bama-ID enqubo uhlelo olungawabela, okufanelekile kuma-node asebenzisa inani elikhulu leziqukathi noma izinqubo zesikhashana. Ukulungisa izinketho zokungena kwe-kernel (kernel.printk) kusiza ukunciphisa umsindo owedlulele ku-dmesg ngenkathi kusaqoshwa izehlakalo ezibalulekile, okuphinde kuthonye ngokungaqondile ikhono lokuxilonga kanye nokuzinza.
Ngokuphathelene ne-topology yememori, ipharamitha kernel.numa_balancing Ilawula izinga i-kernel ehambisa ngalo amakhasi ngokuzenzakalelayo phakathi kwama-node e-NUMA. Ukuyikhubaza ezindaweni ezithile kuvumela ukuphathwa okucacile kwenqubo kanye nokuhambisana kwememori, kusetshenziswa amathuluzi anjenge numactl ukuqinisekisa ukuthi izinqubo ezisebenzisa i-CPU kanye ne-RAM zihlala ku-node efanayo, okunciphisa ukubambezeleka okubangelwa ukufinyelela kudeUkuze uqonde kangcono ukusebenzisana phakathi kwehadiwe kanye nokuhlela okuyinhloko, kuyasiza futhi ukubuyekeza ubuchwepheshe obufana no Intel Thread Director.
Amakhasi amakhulu (vm.nr_hugepagesLezi ezinye izingxenye ezibalulekile ezinhlelweni zedathabheyisi noma eminye imisebenzi ephatha izifunda ezinkulu zememori ehambisanayo. Ukubhuka inani elifanele lamakhasi amakhulu (2 MB noma ngisho ne-1 GB, kuye ngokwakhiwa) kunganciphisa izindleko ze-TLB futhi kuthuthukise kakhulu ukusebenza kwezinhlelo zokusebenza ezisebenzayo. imisebenzi eminingi kumabhulokhi amakhulu enkumbuloUkuze lokhu kusebenze kahle, ukucushwa kwe-kernel kumele kuhlanganiswe nohlelo lokusebenza ngokwalo, ukuze lusebenzise leyo nkumbulo ngokucacile.
Emkhakheni wokubambezeleka kanye nokuhlela, kunemingcele yesihleli efana nalokhu kernel.sched_min_granularity_ns, kernel.sched_wakeup_granularity_ns o kernel.sched_migration_cost_nsLezi zilungiselelo zilungisa usayizi "wama-chunk" e-CPU abelwe umsebenzi ngamunye kanye nolaka lapho i-kernel ihambisa khona izinqubo phakathi kwama-cores. Amanani amancane amelela uhlelo olungcono kakhulu, oluvame ukunikeza impendulo engcono kakhulu yemisebenzi exhumanayo ngezinye izikhathi, ngezindleko zomkhiqizo omncane ongavuthiwe.
Ezinhlelweni lapho inkumbulo iyisisetshenziswa esibucayi, abanye abaphathi bakhetha ukusebenzisa imodi yokwethuka uma kwenzeka iphutha elingaphandle kwebhokisi (vm.panic_on_oom) futhi usungule kernel.panic ngesikhathi sokuqalisa kabusha okuzenzakalelayo. Leli cebo, yize linzima kancane, lingaba usizo ezindaweni ezitholakala kalula lapho Ukuqalisa kabusha okusheshayo nokulawulwayo kungcono kune-host elenga futhi engazinzile. ngezikhathi zamahora.
Amaphrofayili akhethekile: iwebhu, izizindalwazi, ukubambezeleka okuphansi kanye nama-Kubernetes
Esikhundleni sokusebenzisa ibhulokhi elilodwa lomlingo, kungcono kakhulu ukudala amaphrofayili e-sysctl afanela izinhlobo ezahlukene zomsebenzi: amaseva ewebhu, izizindalwazi, amapulatifomu esiqukathi, noma izinhlelo ze-low-latency. Ukusabalalisa lezi zilungiselelo kumafayela afana nalawa 99-webserver.conf, 99-database.conf o 90-kubernetes.conf siza gcina ukucushwa okuhlelekile nokulula ukuguqulelaUngacabanga futhi ngokusabalalisa okugxile ekusebenzeni kanye nezinhlelo ezifana nokuthi Uhlelo Lweseva ye-CachyOS ezindaweni ezithile kakhulu.
Kumaseva ewebhu (i-Nginx, i-Apache, ama-proxies, njll.), into ebalulekile ukuphatha inani elikhulu lokuxhumana ngasikhathi sinye ngemigqa emikhulu kanye nezikhathi zokuphendula. FIN_WAIT Ngokulungisa kahle, ububanzi be-port yesikhashana obunwetshiwe, kanye nemikhawulo ephezulu kakhulu yencazelo, kuvamile ukusuka kuzicelo ze-HTTP ezingamakhulu ambalwa ngomzuzwana kuya ezinkulungwaneni eziningana, kunciphisa ukubambezeleka okumaphakathi nokususa amaphutha. imigqa egcwele noma ama-port agcwele.
Ohlangothini lwedathabheyisi (i-MySQL, i-PostgreSQL, nezinye ezifanayo), kuqala ukusetshenziswa okuncane kokushintshana, ukulungisa kahle ukubhala amakhasi angcolile, kanye nezilungiselelo ezifanele zememori eyabiwe kanye ne-semaphore yenjini. Amapharamitha anjenge kernel.shmmax, kernel.shmall, kernel.sem futhi ukucushwa kwamakhasi amakhulu kwenza umehluko ngokuya ukuthengiselana ngomzuzwana kanye nesikhathi sokuphendula, ukuphindaphinda ukusebenza ngamanani amabili noma amathathu uma kuqhathaniswa namanani azenzakalelayo ezimweni eziningi.
Kuzinhlelo zokusebenza ze-latency eziphansi kakhulu (ukuhweba, imidlalo eku-inthanethi, ukucubungula ngesikhathi sangempela), kunezelwa izilungiselelo ezithile nakakhulu: net.ipv4.tcp_low_latency, ukuvala ukuqala kancane ngemva kokungasebenzi, ukusetshenziswa kwe tcp_fastopen, imingcele ye-poll ematasa (net.core.busy_poll, busy_read) futhi, ezimweni eziningi, ukuvalwa kwamakhasi amakhulu asobala yi /sys/kernel/mm/transparent_hugepage/enabledKonke lokhu kuhlose ukunciphisa umugqa wokucubungula kanye nama-peaks okubambezeleka kuma-percentile aphezulu, kufeza ukuthuthuka okumangalisayo ku-P99.
Ezindaweni ze-container kanye ne-Kubernetes, i-network stack kanye nokulandelela uxhumano kungaphansi kwengcindezi ethile. Amapharamitha anjenge net.ipv4.ip_forward, net.bridge.bridge-nf-call-iptables, net.netfilter.nf_conntrack_maxUkusetshenziswa kwama-port agciniwe e-NodePort noma ukulungiswa kwamathebula e-ARP kuvamile kuma-node aphatha amakhulu noma izinkulungwane zama-pod. Ukuwalungisa ngendlela efanele kuvimbela izinkinga. ukuxhumeka okufinyeziwe, ukuphelelwa yisikhathi, noma ukugcwala kwetafula nge-conntrack.
Ngaphandle kwala maphrofayili athile, ezinye izinhlangano zikhetha ingobo yomlando egxile ekusebenzeni enokuphepha okuthuthukisiwe, ehlanganisa ama-buffer amakhulu enethiwekhi kanye nokuguquguquka okuncishisiwe nezindlela ezifana nalezi tcp_syncookies noma ukuvimba ukuqondisa kabusha okuyingozi. Umgomo uwukufeza iphuzu lokulinganisela phakathi kokusebenza okunamandla nokuqina okunengqondo.
Amathuluzi okuhlola nokuqapha i-Kernel
Ukulungisa i-kernel ngaphandle kokulinganisa kufana nokudlala i-audio mixer evalwe amehlo. I-Linux inikeza amathuluzi amaningi okuqonda ukuthi uhlelo lwenzani ngempela, kusukela ezibalini ezilula kuya emikhondweni eningiliziwe yemisebenzi ye-kernel, okukuvumela ukuthi uhlobanise izinguquko zokucushwa nemiphumela elinganisekayo.
Phakathi kwezinsiza zansuku zonke kukhona vmstat, iostat, sar, ss, slabtop, htop o pidstatezinikeza ulwazi olusheshayo mayelana nezinqubo, i-CPU, i-I/O, amasokhethi, kanye nokusetshenziswa kwe-cache. Kuhlanganiswe namalogi esistimu kanye nama-metric athunyelwe ku-Prometheus, Grafana, noma aqoqwe, kanye nezinsiza ezifana isibonisi sesistimu esithuthukisiwe se-LinuxZinikeza isithombe esiphelele sendlela umninikhaya aziphatha ngayo ngaphambi nangemva kokulungiswa ngakunye.
Ukuze uthole imininingwane eyengeziwe, amathuluzi anjenge perf Zivumela ukusetshenziswa kwe-CPU ezingeni lomsebenzi, kokubili umsebenzisi kanye ne-kernel, ukuqopha imicimbi imizuzwana embalwa noma imizuzu bese zinikeza umbiko osebenzisanayo. perf stat, perf record y perf report ungabona lapho isikhathi se-CPU sisetshenziswa khona empeleni nokuthi iyiphi ingxenye ehambisana nomongo, ukuhlonza, isibonelo, isiphepho sokuphazamiseka noma umhleli wesheduli ongalungiswanga kahle.
Uma udinga ubuncane obengeziwe, ftrace Uhlelo olungaphansi lokulandelela lwe-kernel lunikeza ikhono lokusebenzisa ama-tracer athile (isibonelo, i-function tracer) nokuhlola ngesikhathi sangempela noma ngemva kokufa ukuthi yiziphi izingcingo ezenzekayo. Ukunika amandla i-tracer efanele nokuhlaziya okuqukethwe kwayo. /sys/kernel/debug/tracing/trace kuyakwembulela izindawo ezishisayo ngaphakathi kwe-kernel uqoboLokhu kuwusizo kakhulu uma izilinganiso zezinga eliphezulu zinganele.
Ngesikhathi esifanayo, kuyalulekwa ukusebenzisa izikripthi zokuqapha ezenzakalelayo ezilahla idatha eyisihluthulelo ngezikhathi ezithile (izibalo zenethiwekhi, izibali zememori, inani lezincazelo zamafayela avulekile, njll.) kumalogi ajikelezayo. Uma imingcele ethile isifinyelelwe (isibonelo, idlula inani elithile lezincazelo zamafayela avulekile), lezi zikripthi zingakhiqiza izexwayiso nge-imeyili noma ezinye iziteshi, zisize ekutholeni izitayela eziyingozi ngaphambi kokuba inkinga ikhule.
Okokugcina, ezigabeni zokuhlola ukucindezeleka isikhathi eside (amahora angu-24 noma ngaphezulu), amathuluzi anjenge stress-ng kuhlanganiswe nokuqoqwa okuqhubekayo kwezilinganiso (ngokusebenzisa vmstat, iostat, sar) ikuvumela ukuthi uhlole ukuzinza kwesistimu ngokucushwa kwe-kernel entsha, okuqinisekisa ukuthi azikho izehlakalo ze-OOM, ukuphahlazeka, ukuqala kabusha okungalindelekile noma ukuwohloka kokusebenza okuqhubekayo ngaphansi komthwalo oqhubekayo.
Ukuthuthukisa i-kernel ye-Linux nge-sysctl nezinye izindlela akuwona umsebenzi oqala kanye kuphela, kodwa inqubo ephindaphindayo ehilela ukulinganisa imiphumela, ukulungisa amapharamitha, nokubhala phansi konke ngokucophelela. Ngendlela ecacile, amaphrofayili athile ohlobo ngalunye lomsebenzi, isethi eqinile yamathuluzi okubhala iphrofayili, kanye nokulawula ushintsho oluqinile, kungenzeka ukufeza amaseva asebenzisa ngokugcwele ihadiwe yawo, ngokwanda komthamo, ukuncipha kokubambezeleka, kanye nokuzinza okukhulu kakhulu kunokucushwa kwefektri ejwayelekile.
Inkomba
- 1 Kuyini i-sysctl futhi ihlela kanjani amapharamitha e-kernel?
- 2 Kala ngaphambi kokuthi uthinte: amabhentshimakhi kanye nesisekelo sesistimu
- 3 Izilungiselelo zememori ezithuthukisiwe: vm.*
- 4 Ukuthuthukiswa kwenethiwekhi okuthuthukisiwe: i-net.* kanye ne-TCP/IP
- 5 Uhlelo lwefayela, izincazelo, kanye nemikhawulo yomhlaba wonke: fs.* kanye ne-ulimit
- 6 I-Kernel ejwayelekile, i-NUMA, i-CPU affinity, namakhasi amakhulu
- 7 Amaphrofayili akhethekile: iwebhu, izizindalwazi, ukubambezeleka okuphansi kanye nama-Kubernetes
- 8 Amathuluzi okuhlola nokuqapha i-Kernel


