A ti ṣe atẹjade awọn patch lati mu ki akojọpọ kernel yara. Linux láti 50-80%

Ingo Molnar, olùgbékalẹ̀ olókìkí kan Linux kernel àti òǹkọ̀wé CFS (Pletely Fair Scheduler) olùṣètò iṣẹ́, dábàá rẹ̀ fún ìjíròrò lórí àkójọ ìfìwéránṣẹ́ àwọn olùgbékalẹ̀ kernel Linux Àwọn àpáàtì tó ń nípa lórí ju ìdajì gbogbo àwọn fáìlì nínú kódì orísun kernel lọ, tó sì ń mú kí ìbísí tó 50-80% wáyé nínú iyàrá àtúntò kernel kíkún, ó sinmi lórí àwọn ètò náà. Ìmúdàgbàsókè yìí ṣe pàtàkì nítorí pé ó ní àkójọpọ̀ àwọn àyípadà tó tóbi jùlọ nínú ìtàn ìdàgbàsókè kernel—àwọn àpáàtì 2297 tí a dámọ̀ràn fún ìfikún lẹ́ẹ̀kan náà, tí wọ́n ń yí àwọn fáìlì tó ju 25 lọ (àwọn fáìlì orísun 10 nínú àwọn ìwé àkójọ "include/" àti "arch/*/include/" àti àwọn fáìlì 15 orísun kódì).

Ere iṣẹ jẹ aṣeyọri nipasẹ yiyipada ọna ti sisẹ awọn faili akọsori. O ṣe akiyesi pe ju ọgbọn ọdun ti idagbasoke ekuro, ipo ti awọn faili akọsori ti mu irisi ibanujẹ nitori wiwa ti nọmba nla ti awọn igbẹkẹle agbelebu laarin awọn faili. Atunto faili akọsori gba ọdun kan ati pe o nilo atunkọ pataki ti awọn ilana ati awọn igbẹkẹle. Lakoko atunto, iṣẹ ni a ṣe lati ya awọn asọye iru ati awọn API fun oriṣiriṣi awọn eto inu ekuro.

Lara awọn ayipada ti a ṣe: yiya sọtọ awọn faili akọsori ipele giga lati ara wọn, imukuro awọn iṣẹ inline ti o sopọ awọn faili akọsori, yiya sọtọ awọn faili akọsori fun awọn oriṣi ati awọn API, aridaju apejọ lọtọ ti awọn faili akọsori (nipa awọn faili 80 ni awọn igbẹkẹle aiṣe-taara ti o nfa pẹlu apejọpọ, ti o farahan nipasẹ awọn faili akọsori miiran), afikun aifọwọyi ti awọn igbẹkẹle si awọn faili “.h” ati “.c”, iṣapeye-igbesẹ-igbesẹ ti awọn faili akọsori, lilo ipo “CONFIG_KALLSYMS_FAST=y”, isọdọkan yiyan ti awọn faili C sinu awọn bulọọki apejọ si din awọn nọmba ti ohun faili.

Bi abajade, iṣẹ ti a ṣe jẹ ki o ṣee ṣe lati dinku iwọn awọn faili akọsori ti a ṣe ilana ni ipele ifiweranṣẹ-tẹlẹ nipasẹ awọn aṣẹ titobi 1-2. Fun apẹẹrẹ, ṣaaju iṣapeye, lilo faili akọsori “linux/gfp.h” yorisi ni afikun ti awọn laini koodu 13543 ati ifisi awọn faili akọsori 303 ti o gbẹkẹle, ati lẹhin iṣapeye iwọn ti dinku si awọn laini 181 ati awọn faili ti o gbẹkẹle 26. Tabi apẹẹrẹ miiran: nigbati o ba ṣaju faili “kernel/pid.c” laisi alemo kan, awọn laini koodu 94 ẹgbẹrun wa pẹlu, pupọ julọ eyiti a ko lo ni pid.c. Iyapa awọn faili akọsori jẹ ki o ṣee ṣe lati dinku iye koodu ti a ṣe ilana nipasẹ igba mẹta, dinku nọmba awọn laini ti a ṣe ilana si 36 ẹgbẹrun.

Nigbati ekuro naa ti tun tun ṣe pẹlu aṣẹ “ṣe -j96 vmlinux” lori eto idanwo kan, ohun elo ti awọn abulẹ fihan idinku ninu akoko kikọ ti ẹka v5.16-rc7 lati 231.34 si 129.97 awọn aaya (lati 15.5 si 27.7 kọ. fun wakati kan), ati tun pọ si ṣiṣe ti lilo awọn ohun kohun Sipiyu lakoko awọn apejọ. Pẹlu kikọ afikun, ipa ti iṣapeye paapaa jẹ akiyesi diẹ sii - akoko lati tun kọ ekuro lẹhin ṣiṣe awọn ayipada si awọn faili akọsori ti dinku ni pataki (lati 112% si 173% da lori faili akọsori ti yipada). Awọn iṣapeye lọwọlọwọ wa fun ARM64, MIPS, Sparc ati x86 (32- ati 64-bit) awọn faaji.

orisun: opennet.ru

Ra alejo gbigba igbẹkẹle fun awọn aaye pẹlu aabo DDoS, awọn olupin VPS VDS 🔥 Ra gbigbalejo oju opo wẹẹbu ti o gbẹkẹle pẹlu aabo DDoS, awọn olupin VPS VDS | ProHoster