Ukuphathwa kwememori ku-Linux: umhlahlandlela ophelele kanye nokwenza ngcono

Isibuyekezo sokugcina: I-30 March ka-2026
  • I-Linux isebenzisa imemori ebonakalayo njenge-cache kanye nama-buffer, ngakho-ke i-RAM encane "yamahhala" ayisho ukuthi kunenkinga.
  • Inhlanganisela ye-RAM, i-swap, i-virtual memory, kanye ne-page cache ivumela ukuhlukaniswa kwenqubo futhi igcina ukusebenza ngaphansi kwemithwalo ehlukahlukene.
  • Amathuluzi anjenge-free, htop, vmstat, pmap, kanye ne-cgroupv2 enza kube lula ukuxilonga nokunciphisa ukusetshenziswa kwememori ngezinqubo nezinsizakalo.
  • Amasu anjenge-zram, i-zswap, i-EarlyOOM, noma i-systemd-oomd athuthukisa impendulo yesistimu ekucindezelweni kwememori futhi avimbele ukuphahlazeka.

Ukuphathwa kwememori ku-Linux

Uma usebenza namaseva noma amakhompyutha edeskithophu asekelwe ku-Linux, ukuphathwa kwenkumbulo Kungenye yezinsika Lezi zici zenza umehluko phakathi kwesistimu esheshayo kanye nesistimu edonsa kanzima. Kungakhathaliseki ukuthi i-Debian, Ubuntu, i-AlmaLinux, i-CentOS, noma yikuphi okunye ukusatshalaliswa, ukuqonda indlela i-Linux ephatha ngayo i-RAM, i-swap, kanye nezinye izindlela zangaphakathi kubalulekile ekugwemeni ukuphahlazeka, ukulahlekelwa ukusebenza, noma izinkinga zokuzinza.

Ngaphezu kwalokho, ezindaweni zesimanje ezisebenzisa izizindalwazi ezidingayo, ama-container, ama-desktop agcwele, kanye nezinhlelo zokusebenza ezisindayo, "ukuba ne-RAM eningi" akwanele: kubalulekile ukwazi. Indlela iLinux esebenzisa ngayo inkumbulo, ukuthi izinkomba zisho ukuthini ngempela sibonani phakathi amathuluzi afana top, htop, free o vmstatFuthi yiziphi izinketho esinazo zokulungisa ukuziphatha kwe-kernel, i-swap, ama-cgroup, noma izindlela ezifana ne-zram, i-zswap, i-EarlyOOM, noma i-systemd-oomd?

Izisekelo Zememori ku-Linux

I-Linux yakhelwe ukusebenzisa kahle imemori etholakalayo, ngakho-ke i-RAM cishe ayibonakali "ingenalutho," ngoba i-kernel iyisebenzisa njenge i-disk cache, ama-buffer, kanye nesitoreji sesikhashana ukusheshisa ukufinyelela idatha nezinhlelo zokusebenza. Lokhu kuholela ekungaqondani okuningi: ukubona inkumbulo encane "ekhululekile" akusho ukuthi kuyinkinga, kodwa kunalokho kusho ukuthi uhlelo lusebenza kahle.

Inani eliphelele lememori ikhompyutha engayiphatha lincike ku- ukwakheka kwesistimu yokusebenzaUhlelo lwe-32-bit luvame ukukhawulelwa ku-4 GB yememori ekwazi ukubhekelwa, kuyilapho uhlelo lwe-64-bit lungaphatha kalula amashumi noma amakhulu ama-gigabytes. Ngokwethiyori, ukwakheka kwe-64-bit kuvumela izibalo ezinkulu (ngokulandelana kwama-exabytes), yize empeleni umkhawulo wangempela ubekwa yihadiwe kanye ne-kernel esetshenzisiwe.

Ukuhlanganiswa kwe-Linux ukuhlukaniswa kanye nokwahlukaniswa kwamakhasi ukuhlela inkumbulo. Imemori ihlukaniswe ngamakhasi anosayizi ozinzile (ngokuvamile ama-4 KiB, angabuzwa nge getconf PAGESIZE) futhi i-kernel iphatha izakhiwo zangaphakathi ezibizwa ngamathebula ekhasi ukuhumusha amakheli angokoqobo abe amakheli angokoqobo, ukusebenzisa izimvume, nokulawula isimo sekhasi ngalinye.

Inkumbulo engokomzimba, okungukuthi I-RAM efakiwe kukhompyuthaKungumthombo obizayo kodwa oshesha kakhulu. I-Linux iyisebenzisela ukusebenzisa izinqubo, ama-data cache, imemori eyabiwe, ama-I/O buffers, kanye nezakhiwo zangaphakathi ze-kernel. Uma izinqubo zingagcwalisi yonke i-RAM, uhlelo lugcwalisa isikhala nge-disk cache ukuze kusheshiswe ukufinyelela kumafayela ahamba kancane kanye namadivayisi okugcina.

Njengoba i-RAM ilinganiselwe, i-Linux isebenzisa imemori ebonakalayo kanye nezindlela zokushintshana ukuze ukwandisa ngokunengqondo isikhala esitholakalayookuvumela izinqubo ukuthi zibone isikhala esikhulu, esiqhubekayo sekheli, noma amakhasi esetshenziswa kabusha futhi athuthwa phakathi kwe-RAM kanye nesitoreji sesibili ngaphansi.

Imemori ebonakalayo, inkumbulo ebonakalayo, ukushintshana, kanye nediski

Ku-Linux, igama elithi "inkumbulo ebonakalayo" livame ukusetshenziswa ukubhekisela esikhaleni sememori esibonakala enkambisweni ngayinye. Uhlelo ngalunye lubona indawo yekheli eyimfihlo, ehlukanisiwe nevikelweLokhu kungenxa yokuhlanganiswa kwe-MMU yeprosesa kanye namathebula ekhasi le-kernel. Lesi sikhala sikhulu kakhulu kune-RAM etholakalayo futhi sincike kokubili kwimemori ebonakalayo kanye namafayela ashintshiwe kanye namafayela ahlelwe.

Inkumbulo engokwenyama (i-RAM) yilapho amakhasi asetshenziswa ngenkuthalo ehlala khona. Kubalulekile ukuba i-RAM eyanele yomthwalo womsebenzi ojwayelekileIsibonelo, iseva enezizindalwazi ezifana ne-MongoDB idinga inkumbulo ebonakalayo edlula lokho injini yesizindalwazi nezinye izinsizakalo ezikudingayo, ngoba uma i-MongoDB iphoqeleka ukusebenzisa i-swap kakhulu, ukusebenza kwayo kuyehla: ukufinyelela kwe-RAM kulinganiswa ngama-nanosecond, kuyilapho i-disk swap isebenza ngama-millisecond.

Shintsha inkumbulo isebenza njenge ukunwetshwa kwe-RAM okuhamba kancaneUma inkumbulo ebonakalayo igcwala, i-Linux ingahambisa amakhasi angasetshenziswa njalo ukushintshanisa isikhala, okungaba ukwahlukanisa okuzinikele noma ifayela ngaphakathi kohlelo lwefayela. Zombili lezi zindlela ziyasebenza; ukukhetha kuncike kunqubomgomo yokuphatha, ukuphathwa okulula, kanye nezidingo zokulala phansi.

Kubalulekile ukucacisa isikhala sokushintshana: akusona isigebengu. Akuyona, ngokwayo, into efanayo nesistimu ehamba kancane, futhi akuyona insiza okufanele isetshenziswe kuphela lapho konke okunye kuphahlazeka. Uma ihlelwe kahle, isikhala sokushintshana siyakuvumela i-RAM yamahhala evela kumakhasi angaziwa angasebenzi (isibonelo, izingxenye zememori yenqubo ezingasetshenziswanga isikhathi eside), okushiya isikhala esitholakalayo semisebenzi emisha edinga isivinini.

Ngaphezu kwe-RAM kanye ne-swap, amadivayisi okugcina nawo ayasetshenziswa. idatha eqhubekayo esindayo ekuqaliseni kabusha nasekunqamukeni kukagesiNgenkathi ikhompyutha ivuliwe, iningi laleyo datha ligcinwa ku-RAM (ikhasi le-cache), bese i-kernel inquma ukuthi yimaphi amakhasi okufanele agcinwe nokuthi yimaphi okufanele akhishwe ngokusekelwe ku-heuristics yokusetshenziswa kwamuva, ngenhloso yokunciphisa ukufinyelela kwediski okubizayo.

Indlela ukusetshenziswa kwememori okugeleza ngayo ku-Linux

Ukugeleza kwedatha okuvamile ohlelweni lwe-Linux kudlula ezingxenyeni eziningana: umsebenzisi noma izinhlelo zokusebenza zikhiqiza izicelo uhlelo oluzihumushela kuzo ukufinyelela imemori nediskiIdatha efundwa kusukela kusitoreji ifakwa kuqala ku-RAM, lapho ingahlala khona ku-cache yekhasi. Uma iceliwe futhi, i-kernel ihlola ukuthi isivele i-cached, ngaleyo ndlela igweme ukufinyelela okusha kwediski.

I-CPU ne-MMU nazo ziyabandakanyeka kule nqubo. I-CPU isebenza kumakheli abonakalayo, futhi isebenzisa amathebula ekhasi, ihadiwe ihumusha ukufinyelela ngakunye ekhelini elibonakalayo ku-RAM noma iyixazulule isebenzisa izindlela zephutha lekhasi uma ikheli lingalayishwanga. Uma idatha idinga ukuqhubeka, ibhalelwa kudiski, kodwa ngenkathi isebenza ngayo, kuqala ukuyigcina kuthebula lekheli elibonakalayo. Inkumbulo esheshayo yokusebenza okuthuthukisiwe.

Uma i-RAM iqala ukwehla, i-kernel iyasebenza ngama-algorithms ayo okubuyisela inkumbulo: ikhulula i-cache yamakhasi engasetshenziswa kakhulu, ihlanganisa izindawo zememori, ishintshanisa amakhasi abaluleke kakhulu, futhi, uma isimo siba sibi kakhulu, ingathatha izinyathelo ezinqala njengokusebenzisa i-OOM-killer.

  Ungabuyela kanjani endaweni yangaphambilini ku-Windows ngaphandle kokulahlekelwa idatha

Imephu yememori yenqubo ku-Linux

Yonke inqubo esebenza ku-Linux ine- imephu yememori noma ukwakheka kwememori okuchaza indlela isikhala sayo sekheli esihlelwe ngayo: lapho kutholakala khona ikhodi esebenzisekayo, iziguquguquko zomhlaba wonke, i-heap, i-stack, izimpikiswano zomugqa womyalo, iziguquguquko zemvelo, kanye nokumapha kwamafayela noma umtapo wolwazi okwabiwe.

Leyo mephu ivame ukuhlukaniswa ngezigaba eziningana ezihlukene. Ngaphansi kwesikhala esibonakalayo sithola ingxenye yombhalo (ikhodi ye-binary yohlelo), bese kuba izingxenye zedatha eziqalisiwe nezingazange ziqalwe (i-BSS), ngaphezu kwenqwaba lapho kugcinwa khona ukwabiwa okuguquguqukayo, bese kuthi phezulu kube yi-process stack. Izimpikiswano kanye nemvelo nakho kutholakala engxenyeni ephezulu yesikhala sekheli.

Ingxenye yombhalo iqukethe imiyalelo esebenzayo yohlelo kanye nemitapo yolwazi eyabiweNgokuvamile kuyafundwa kuphela futhi kungabiwa ngezinqubo eziningi ezisebenzisa i-binary efanayo, kulondolozwa inkumbulo ebonakalayo. Noma yimuphi umzamo wokubhalela leso sifunda uholela ephutheni lokuhlukanisa.

Ingxenye yedatha eqalisiwe igcina iziguquguquko zomhlaba wonke kanye nezimile ezinenani elingelona u-zero ekuqaleni. Le ngxenye ingahlukaniswa ngokomqondo ibe yingxenye yokufunda kuphela kanye nengxenye yokufunda-ukubhala, kuye ngohlobo lwedatha. Ngakolunye uhlangothi, ingxenye ye-BSS ihlanganisa iziguquguquko zomhlaba wonke noma ezimile ezingenalo inani elicacile kukhodi noma eziqalisiwe zibe u-zero.

Inqwaba yindawo esetshenziselwa inkumbulo enamandla ephethwe izingcingo ezifana ne-malloc, i-calloc, noma i-reallocUma uhlelo lucela inkumbulo, umphathi wememori yomsebenzisi uyayithatha ku-heap; uma eyikhulula nge-`free`, ibuyiselwa ku-heap kodwa hhayi ohlelweni lokusebenza, okungaholela ekuqhekekeni kwangaphakathi. I-stack igcinelwe iziguquguquko zomsebenzi wendawo, amakheli okubuyisa, kanye namapharamitha, futhi ikhula noma iyancipha ngokubizwa ngakunye komsebenzi kanye nokubuyiselwa.

Uma sifuna ukuhlola imephu yememori yenqubo esebenzayo, amathuluzi afana pmap Ziwusizo kakhulu. Nge pmap <PID> Singabona izifunda ezahlukene ezimephiwe, usayizi wazo, izimvume, kungakhathaliseki ukuthi azinagama noma zihlobene namafayela, kanye nosayizi ohlala (i-RSS) ku-RAM kanye nezinye izindlela zokulinganisa ezisiza ukuqonda ukusetshenziswa kwememori kwangempela kohlelo lokusebenza.

Imiqondo eyinhloko: amakhasi, amaphutha ekhasi, kanye ne-cache

Iyunithi encane kunazo zonke yokuphathwa kwememori ku-Linux yi- ikhasi lememoriNgokuvamile ama-KiB angu-4, yize amakhasi amakhulu emisebenzi ethile. Zonke izinqumo ze-kernel mayelana nokuthi yini okufanele ihanjiswe, ikhululwe, noma i-cache zenziwa ezingeni lekhasi, hhayi ezingeni le-byte ngayinye.

Amathebula ekhasi ayizakhiwo ezilandelanayo ezigcinwa yi-kernel ezibonisa ukuthi amakheli angokoqobo ahunyushwa kanjani abe amakheli angokoqobo. Okufakiwe ngakunye kungafaka ulwazi mayelana funda, bhala, futhi usebenzise izimvume, isimo sekhasi (esikhona kwimemori, ekushintshaneni, engcolile, eyabiwe, njll.) kanye neminye imethadatha esetshenziswa yi-MMU ngesikhathi sokuhumusha.

Iphutha lekhasi lenzeka lapho inqubo ifinyelela ikheli elibonakalayo elivumelekile, kodwa ikhasi elihambisanayo alikakulungeli ukusetshenziswa: kungenzeka ukuthi alikabiwa okwamanje, kungenzeka ukuthi likwidiski, noma lingadinga ukumepha kokuqala. I-kernel iyangenelela ku thola noma udale lelo khasiUma ikhasi lihlala ku-RAM kodwa lingaphawulwanga kahle, izindleko zokwehluleka ziphansi; uma kufanele lilethwe kusuka kudiski (i-swap noma ifayela), izindleko ziphezulu kakhulu.

I-page cache, noma i-file page cache, ingenye yezimfihlo ezinhle zokusebenza kahle kwe-Linux. I-kernel iyigcina ku-RAM. idatha yefayela kanye nemethadatha Ukusheshisa ukufunda nokubhala, kunciphisa kakhulu inani lokufinyelela kumadiski. Ngakho-ke, noma kungabonakala sengathi kuncane inkumbulo yamahhala, ingxenye enkulu yaleyo RAM iyatholakala: i-kernel ingakhulula ngokushesha i-cache uma izinhlelo zokusebenza zidinga isikhala esengeziwe.

Ngaphakathi kwesikhala esibonakalayo siphinde sihlukanise phakathi kwememori yefayela, exhunywe kumafayela ahlelwe (isibonelo, ikhodi yama-binary kanye nemitapo yolwazi noma amafayela ahlelwe ngokusobala mmap), kanye nememori engaziwa, ehambisana nenqwaba, inqwaba, kanye nokunye ukumepha ngaphandle kwama-backup amafayela. Lokhu kokugcina kungashintshwa kuphela uma kudingeka, ngoba akukho fayela lapho ingavuselelwa khona.

Ingcindezi yememori, ukushaywa, kanye ne-OOM

Uma inani lamakhasi amahhala liwela ngaphansi kwemingcele ethile, uhlelo kuthiwa lungena esimweni sokuthi ingcindezi yememoriKuleso simo, i-kernel kufanele ichithe isikhathi esiningi ithola amakhasi angakhululwa, ahlanganiswe, noma athuthelwe ukushintshaniswa, futhi lokhu kuthinta ukusebenza okuphelele.

Kumaseva ewebhu, ukucindezeleka kwememori ephezulu kungahunyushwa kube ukubambezeleka okwandisiweIzisebenzi kumele zilinde amakhasi akhululwe ngaphambi kokuqhubeka nokucubungula izicelo, futhi i-CPU isebenzisa imijikelezo emisebenzini yokuphatha imemori esikhundleni sokucubungula imithwalo ekhokhelwayo. Kuma-desktop, lokhu kubhekwa njengokungingiza, ukuphendula kancane kwegundane, amafasitela angaphenduli, ngisho nokuma okwesikhashana.

Ekufinyeleleni okukude nge-SSH, RDP, noma i-VNC, lesi simo sibonakala njengemiyalo "elenga," ukulibaziseka kokuthayipha, futhi, ngokuvamile, ukusebenzisana okunzima kakhulu. Uma ukushintshana nakho kusetshenziswa kakhulu, kungaholela... isimo sokushaywalapho uhlelo luchitha isikhathi esiningi luhambisa amakhasi phakathi kwe-RAM nesitoreji kunokusebenzisa ikhodi ewusizo.

Ukuqhekeka kwenzeka lapho i-RAM inganele ukugcina isethi yokusebenza esebenzayo yezinqubo. Uma i-swap ivuliwe, amakhasi angaziwa ahamba njalo phakathi kwe-RAM nesikhala sokushintshana, okubangela i-disk I/O. Ngaphandle kwe-swap, i-kernel ayinandawo yokulahla la makhasi angaziwa, futhi okuwukuphela kwekhambi ukuqeda izinqubo kusetshenziswa i-OOM-killer.

Ngisho nangaphandle kokushintshana, ukubhujiswa kwememori yamafayela kungenzeka: amakhasi e-cache yefayela ayakhishwa futhi alayishwe kabusha ngokuqhubekayo kusuka kudiski, ngesivinini izinhlelo zokusebenza eziwadinga ngaso, okudala umjikelezo womsebenzi we-I/O kanye nokuhamba kancane okukhulu.

  I-Debian Linux: ukusatshalaliswa okuyinhloko kwe-ecosystem ye-GNU

Uma i-kernel iqeda zonke izinketho zayo zokuthola inkumbulo—ukukhulula i-cache, ukuhambisa amakhasi ukuze ashintshe, ukuhlanganisa, nokusebenzisa izinqubomgomo ze-cgroups—ingena esimweni I-Out-Of-Memory (OOM)Ngaleso sikhathi, i-OOM-killer kumele ikhethe izinqubo eyodwa noma ngaphezulu ukuze iqede ukuze ibuyise inkumbulo futhi isindise lonke uhlelo.

Ukuze ukhethe ukuthi iyiphi inqubo okufanele ibulawe, i-kernel ibala i- i-oom_score ye-PID ngayinye, ngokusekelwe ezicini ezifana nenani lememori esetshenzisiwe, ukubaluleka kwenqubo, kanye nezinye izinhlaka zangaphakathi. Lokhu kuziphatha kungashintshwa yi- oom_score_adjokulungisa isisindo senqubo ethile. Amathuluzi anjenge choom Zikuvumela ukuthi ubuke futhi ushintshe la manani kalula.

Ukushintshana: izinganekwane, imikhuba emihle kanye nezinhlobo zesimanje

I-Swap inedumela elibi elingafanele. Abasebenzisi abaningi bakholelwa ukuthi kuyinto okufanele igwenywe ngazo zonke izindleko noma ukuthi kunengqondo kuphela uma i-RAM ilinganiselwe kakhulu. Kodwa-ke, ku-Linux, i-swap iyingxenye... isu lememori ebonakalayo yomhlaba wonke: ivumela i-kernel ukuthi isuse amakhasi angaziwa angasebenzi ku-RAM ukuze ibeke phambili idatha esebenzayo kanye ne-cache yekhasi.

Akulungile ukucabanga nge-swap "njengendlela yokugcina" engasetshenziswa kuphela uma konke okunye kuhamba kabi. Eqinisweni, ngisho nasezinhlelweni ezine-RAM eningi, ukuba ne-swap kunikeza i-kernel indawo enkulu yokugcina isethi yokusebenza ishesha futhi isebenzise kangcono imemori ebonakalayo. Kodwa-ke, kuyiqiniso ukuthi lapho umsebenzi we-swap uphezulu kakhulu futhi uqhubeka, ukusebenza kuyaphazamiseka ngokuphawulekayo.

Ngokwemibono engokoqobo, umthetho omdala wokuthi isikhala sokushintshana kufanele sibe yi-RAM ephindwe ka-1 kuya ku-2 awuseyona umthetho ongashintshi. Kumaseva anememori eningi, kuvame kakhulu ukwaba isikhala sokushintshana esincane kakhulu ngokulingana, noma ngisho nokusebenzisa ukushintshaniswa okucindezelwe ku-RAM ngobuchwepheshe obufana ne-zram noma i-zswap ukuthuthukisa ukusebenza nokunciphisa ukubhala kwediski.

Esinye isimo sokusetshenziswa kwe-swap yi-hibernation: uhlelo lungalahla okuqukethwe kwe-RAM esikhaleni se-swap bese luvala ngokuphelele, bese lubuyisela isimo salo lapho luqala. Lokhu kudinga ukuthi isikhala se-swap esitholakalayo sibe sikhulu okungenani njengenani lememori okufanele lilondolozwe, futhi lokhu kuyisici esithonya ukukhetha phakathi kwezixazululo ezifana ne-zram (engavumeli i-hibernation) kanye ne-disk swap yendabuko.

Eminyakeni yamuva nje, ukuziphatha okungabazekayo kwe-OOM-killer kubikwe nakwamanye ama-kernel, lapho uhlelo luphahlazeka ngaphambi kokuba i-OOM-killer iqale ukusebenza. Kwezinye izimo, kuvumela izinqamuleli ezifana I-Alt+SysRq+F (ngemuva kokuvumela ipharamitha) /proc/sys/kernel/sysrqLokhu kukuvumela ukuthi uphoqe i-OOM-killer ukuthi ibuyise uhlelo olubonakala luqandisiwe. Ngaphezu kwalokho, ama-daemon afana ne-EarlyOOM, i-nohang, kanye ne-systemd-oomd avele ngokunembile ukuze asabele ngaphambi kokuba i-kernel ifinyelele ezimweni ezimbi kakhulu.

Amathuluzi okuqapha nokuphatha inkumbulo

Ukuze ugweme izinkinga zenkumbulo, kubalulekile ukusebenzisa amathuluzi afanele. Imiyalo efana free, top, htop, vmstat, ps o sar nikeza a i-X-ray enemininingwane eminingi yesimo sesistimu, kokubili ngesikhathi sangempela kanye nangesikhathi.

Umyalo free Ibonisa ngokushesha inani eliphelele lememori, imemori esetshenzisiwe, imemori yamahhala, imemori ye-cache, nama-buffer, kanye nolwazi lokushintshana. Lokhu kuwusizo kakhulu ekuhloleni ukuthi ingabe kukhona yini ukuntuleka kwememori ebonakalayo noma ukuthi iningi layo limane ligcinwe ku-cache futhi lingasetshenziswa kabusha ngaphandle kwenkinga.

Okwakudala top kanye nohlobo lwayo oluthuthukisiwe htop Zikuvumela ukuthi ubone ukusetshenziswa kwe-CPU kanye nememori ngenqubo ngayinye, kanye nomthwalo wesistimu, isikhathi sokusebenza, ukusetshenziswa kokushintshana, kanye nezinye izinkomba ngesikhathi sangempela. I-htop inikeza isikhombikubona esisebenziseka kalula., ngemigoqo yemibala nezinqamuleli zekhibhodi ukuze kuhlungwe, kuhlungwe, noma kubulawe izinqubo ngokushesha.

Umyalo vmstat Inikeza umbono wobuchwepheshe othe xaxa: izibalo zememori, izinqubo, ukukopisha ama-page, ukuphazamiseka, kanye nokuhlela i-CPU. Ilungele ukuthola amaphutha ekhasi amaningi, umsebenzi wokushintshana okuphezulu, noma iphethini yokuchitha. Okwamanje, ps Ikuvumela ukuthi ubhale izinqubo ngemininingwane eminingi, kufaka phakathi amakholomu enkumbulo yokuhlala (RSS), inkumbulo ebonakalayo (VSZ), kanye neminye imingcele esiza ukuthola izinhlelo zokusebenza "eziqalisiwe".

Ezindaweni ze-Debian noma ze-AlmaLinux, amaphakheji anjenge sysstat Banikeza imiyalo eyengeziwe efana nokuthi sar, engakwazi ukusetshenziswa kwememori yerekhodi ngokuhamba kwesikhathiLokhu kwenza kube nokwenzeka ukuhlanganisa amanani okusetshenziswa nemisebenzi ehleliwe, ukuthunyelwa, noma imicimbi ethile bese ulungisa ukucushwa kwesistimu ngokufanele.

Ukuhlola imephu yememori yenqubo ethile, ngaphezu kwe pmapKuhlale kungumqondo omuhle ukuhlola uhlelo lwefayela elingamanga /proclapho inqubo ngayinye inohla lwemibhalo yayo olunolwazi olunemininingwane, kufaka phakathi imephu yayo yememori ku /proc/<PID>/maps kanye nezibalo ku /proc/<PID>/smaps.

Ukuthuthukisa okuyisisekelo: ukushintshana, i-cache, kanye ne-swappiness

Ngaphandle kwemfundiso, kunezindlela eziningana ezilula zokwenza ukulungiswa kahle kokuphathwa kwememori ku-Linux ngaphandle kokuhlanya. Enye yezinto zokuqala okufanele uzenze ukuhlola isimo sokushintshana nge swapon --show Futhi, uma kudingeka, dala ifayela lokushintsha esikhundleni sokuthembela kuphela ku-partition. Lokhu kunikeza ukuguquguquka kokulungisa usayizi ngaphandle kokusebenzisa amadiski okuhlukanisa kabusha.

Ipharamitha vm.swappiness Lokhu kulawula ukuthi i-kernel isebenzisa kangakanani i-swap uma iqhathaniswa ne-freeing cache. Inani eliphezulu liphoqa i-swap ukuthi isetshenziswe kaningi; inani eliphansi ligcina i-swap ezimweni ezimbi kakhulu, libeka phambili ukugcina idatha ku-RAM. Izilungiselelo ezifana ne- ukuguquguquka = ​​10 Zivame ukusebenza kahle ezindaweni eziningi zedeskithophu kanye neseva ezilula, futhi zingasetshenziswa okwesikhashana nge ukwenza ngcono i-kernel nge-sysctl noma ngokuphikelela ku /etc/sysctl.conf.

Ezimweni ezithile lapho sifuna ukusula khona i-cache ngesandla—ngokwesibonelo, ngemva kokulayisha okuningi kokufunda osekuqediwe—singasebenzisa isethingi. vm.drop_caches. Ukuhlanganisa sync Futhi ngokubhala inani elifanele (1, 2, noma 3) kuleyo pharamitha, i-kernel ilahla ama-cache athile. Kodwa-ke, kungcono ukuyisebenzisa ngokuhlakanipha, ngoba I-cache akuyona "inkumbulo elahlekile"kodwa ukwenza ngcono okukhulu.

Ekusabalalisweni okufana ne-Debian ne-AlmaLinux, kuvamile ukuhambisana nalezi zilungiselelo ngokuqapha okuhle kwezinqubo ezisebenzisa izinsiza eziningi kusetshenziswa htop o psUkuhlonza izinsizakalo noma izinhlelo zokusebenza "ezidla" inkumbulo, futhi uma kudingeka, ukuzihlela kabusha noma ukunciphisa ukusetshenziswa kwazo.

Ukudala nokulungisa indawo yokushintshana kuyinto elula kakhulu: vele ugcine ifayela nge fallocateyinikeze izimvume ezifanele, uyiqalise njengokushintshana nayo mkswap futhi uyisebenzise nge swaponUkuze ushintsho luqhubeke, kufakwa okufakiwe okufanele ku- /etc/fstab okubonisa ukuthi leli fayela lizosetshenziswa njengokushintshana kuwo wonke amabhuthi.

  Umhlahlandlela ophelele wokuhlaziywa kwe-malware ukuvikela izinhlelo zakho

Amasu athuthukisiwe: i-zram, i-zswap, i-cgroupv2 kanye ne-OOM endaweni yomsebenzisi

Uma sifuna ukuthatha isinyathelo esiqhubekayo ekwenzeni ngcono, izindlela ezithuthukisiwe ziyasetshenziswa njenge i-zram, i-zswap y izikhala zamagama kanye namaqembuNgaphezu kwama-daemons afana ne-EarlyOOM, i-nohang, noma i-systemd-oomd, eklanyelwe ukusebenzisa kahle inkumbulo nokuthuthukisa impendulo yesistimu ngaphansi kwengcindezi.

I-zram isebenzisa i-kernel module ukudala amadivayisi e-compressed block ku-RAM ngokwayo. Isikhala sokushintshana singafakwa phezu kwalawa madivayisi, ngakho amakhasi ayacindezelwa ngaphambi kokugcinwa. Lokhu kusho ukuthi, empeleni, sebenzisa ngokugcwele inkumbulo etholakalayo ngezindleko ze-CPU ethile yokucindezela, futhi kuqeda isidingo sokubhala kudiski, yize kunciphisa ikhono lokuhlala ucashile.

I-zswap, ngakolunye uhlangothi, isebenza njenge-cache ecindezelwe ngokumelene nesikhala sangempela sokushintshana kudiski. Amakhasi okufanele ashintshwe agcinwa ecindezelwe ku-RAM ekuqaleni, futhi kuphela uma leyo cache isigcwele noma kunqunywe ukuwakhipha, lapho ebhalwa khona esikhaleni sokushintshana sendabuko. Lokhu kunciphisa i-disk I/O, kwandise isikhathi sokuphila sama-SSD, futhi Kuthuthukisa ukusebenza ezimweni zokusetshenziswa kokushintshana okumaphakathi.

Endaweni yokulawula izinsiza, i-cgroupv2 inikeza indlela enamandla yokuhlela izinqubo zibe yizigaba kanye nokwabela inkumbulo, i-CPU, nezinye izinsiza kuzo. Lokhu kufezwa ngamapharamitha anjenge memory.low noma amafayela afana memory.pressureUngatshela i-kernel ukuthi yimaphi amaqembu abaluleke kakhulu futhi uqaphe isikhathi esichithwa yimisebenzi evinjiwe ngenxa yokuntuleka kwenkumbulo, uhlukanise ukuthi inkinga ithinta eminye imisebenzi noma iqembu lonke.

Ezimweni lapho ukuqina kwesistimu kufanele kugwenywe ngazo zonke izindlela, kuye kwavela ama-daemons amaningana esikhala somsebenzisi ukuze aphathe izimo ze-OOM ngendlela ephumelelayo. I-EarlyOOM ihlola njalo i-RAM kanye ne-swap, futhi uma ithola ukuthi kokubili kungaphansi kwemingcele ethile (Ngokuzenzakalelayo, ngaphansi kuka-10% mahhala ukuqala ukwenza), ithumela izimpawu ezinqubweni nge- oom_score ukukhulula inkumbulo ngaphambi kokuba i-kernel ikhathazeke.

I-nohang inikeza indlela efanayo kodwa elungisekayo, isekela i-zram, ihlaziya ingcindezi yememori, futhi ivumela abasebenzisi ukuthi bachaze izenzo ezenziwe ngokwezifiso lapho kutholwa ingozi yokuphahlazeka. Nakuba iphrojekthi ilahlekelwe umsebenzi othile uma iqhathaniswa neminye, isalokhu iyindlela ekhangayo kubasebenzisi abathuthukile abafuna ukulawula okuhle ukuthi yiziphi izinqubo ezincishwayo nokuthi nini.

Ekugcineni, i-systemd-oomd, eyasungulwa yi-Facebook futhi manje esehlanganiswe nokusatshalaliswa okuningi nge-systemd yesimanje, inikeza ikhambi elenzelwe kokubili ukuthunyelwa okukhulu kanye nezimo zedeskithophu. Iqapha imikhawulo ye-cgroup, ingcindezi yememori, nezinye izinkomba, futhi inquma ukuthi yimaphi amayunithi noma izinsizakalo okufanele ziyekwe ukuze kubuyiselwe ukusetshenziswa kwesistimu, isebenza njengesithasiselo esiyinkimbinkimbi kakhulu ku-kernel OOM-killer yakudala.

Imikhuba emihle yokugwema izinkinga zenkumbulo

Ekuzijwayezeni kwansuku zonke, ngale kokulungisa imingcele ethile, kuyalulekwa ukulandela uchungechunge lwe imikhuba emihle yokunciphisa ukwesaba okuhlobene nememori ku-Linux. Okokuqala ukufaka usayizi we-RAM nokushintshana ngokufanele ngokusekelwe kumthwalo wangempela: izizindalwazi, amaseva ezinhlelo zokusebenza, amadeskithophu asindayo, noma imithwalo eminingi yeziqukathi idinga imemori eningi kunezinsizakalo ezilula.

Kumaseva, kuyalulekwa ukuhlola njalo ukuthi yiziphi izinsizakalo ezisebenzayo nokuthi khubaza noma umise lezo ezingasetshenziswaEzindaweni ezine-Docker noma ezinye izitsha, ngemva kokuqeda ukuhlolwa noma ukuthunyelwa kwesikhashana, kuyalulekwa ukuhlanza izitsha, izithombe, kanye namavolumu angasadingeki, ukuvimbela izinqubo ezisele ukuthi zingadli inkumbulo buthule.

Amadiski e-RAM angaba ithuluzi eliwusizo lokusheshisa izinhlobo ezithile zemisebenzi yesikhashana: uhlelo lwefayela luchazwa ku-RAM futhi lusetshenziselwa ukugcina idatha yohlelo lokusebenza noma izindawo zokusebenza ezishintshashintshayo kakhulu. Ngenxa yokuthi ziyashintshashintsha, kubalulekile ukuqonda ukuthi okuqukethwe kwazo kuyalahleka lapho kuvalwa noma kuqaliswa kabusha, kodwa ngokubuyisela zingaba ngokushesha okuphindwe kayishumi kune-SSD, into ethakazelisayo kakhulu yokufunda okujulile kanye nemisebenzi yokubhala yesikhashana.

Ngokombono wokuphepha, kubalulekile ukuqapha ama-port avulekile futhi udalule kuphela lawo adingeka kakhulu. Ukuhlaselwa kwe-malware, njenge-cryptominers, kuvame ukushiya iminonjana ngesimo sezinqubo ezidla inani elikhulu le-CPU nememori, futhi zingafaka imisebenzi ku- crontab Ukuqhubeka. Ukubukeza nokuhlanza imisebenzi ye-cron esolisayo, kanye nokuvala ama-port angabalulekile, kusiza ukuvimbela inkumbulo ukuthi ingadliwa yizinqubo ezingafuneki.

Okokugcina, akumelwe sikhohlwe umthelela wohlelo lwamafayela ekusebenzeni okuphelele. Izinketho zesimanje ezifana I-XFS noma i-Btrfs Zinganikeza izinzuzo ezingaphezu kwe-ext4 ezimweni ezithile, ikakhulukazi ngaphansi kwemithwalo yemisebenzi esindayo noma lapho kusetshenziswa izici ezithuthukisiwe. Icala ngalinye lidinga ukuhlolwa, kodwa ukukhetha uhlelo lwefayela nakho kuthonya indlela i-metadata kanye nokufinyelela kwediski okuphathwa ngayo, okuthinta ngokungaqondile ukusebenza kohlelo okubonwayo.

Ukuqonda ukuphathwa kwememori ku-Linux kuhilela ukuqonda ukuthi i-RAM, i-swap, kanye nesitoreji zabiwa kanjani, indima yemiqondo efana namakhasi, i-page cache, i-memory pressure, kanye ne-out-of-box (OOM), kanye nendlela yokusebenzisa amathuluzi athuthukile kanye nezindlela ezifana ne-zram, i-zswap, i-cgroupv2, kanye ne-systemd-oomd. Ngalolu lwazi, kulula kakhulu ukulungisa noma yimuphi umshini—kusukela kwi-laptop encane kuya kuseva yokukhiqiza egcwele izinsizakalo—ukuze imemori iyeke ukuba umthombo wezinkinga futhi ibe umngane ekufezeni ukusebenza okuhle kakhulu. uhlelo olusheshayo noluzinzile olulungiselelwe ukumelana nemithwalo ephezulu akukho drama.

Ukuxilongwa kwememori ye-RAM okuthuthukisiwe
I-athikili ehlobene:
Ukuxilongwa kwe-RAM Okuthuthukisiwe: umhlahlandlela ophelele wokuthola ukwehluleka kwangempela