Izrāde

Kā notīrīt kešatmiņu operētājsistēmā Linux

Kā notīrīt kešatmiņu operētājsistēmā Linux
Linux failu sistēmas kešatmiņa (Page Cache) tiek izmantota, lai IO darbības būtu ātrākas.  Noteiktos apstākļos administrators vai izstrādātājs varētu vēlēties manuāli notīrīt kešatmiņu.  Šajā rakstā mēs izskaidrosim, kā darbojas Linux failu sistēmas kešatmiņa.  Tad mēs parādīsim, kā uzraudzīt kešatmiņas izmantošanu un kā notīrīt kešatmiņu.  Mēs veiksim dažus vienkāršus veiktspējas eksperimentus, lai pārbaudītu, vai kešatmiņa darbojas, kā paredzēts, un ka kešatmiņas skalošanas un notīrīšanas procedūra darbojas arī kā paredzēts.

Kā darbojas Linux failu sistēmas kešatmiņa

Kodols rezervē noteiktu daudzumu sistēmas atmiņas failu sistēmas disku piekļuves kešatmiņai, lai padarītu kopējo veiktspēju ātrāku.  Linux kešatmiņu sauc par Lapas kešatmiņa. Lapas kešatmiņas lielums ir konfigurējams ar bagātīgiem noklusējumiem, kas ļauj kešot lielu daudzumu disku bloku.  Maksimālo kešatmiņas lielumu un politikas, kad dati jāizņem no kešatmiņas, var pielāgot ar kodola parametriem.  Linux kešatmiņas pieeju sauc par atrakstīšanas kešatmiņu.  Tas nozīmē, ja dati tiek ierakstīti diskā, tie tiek ierakstīti atmiņā kešatmiņā un kešatmiņā tiek atzīmēti kā netīri, līdz tie tiek sinhronizēti ar disku.  Kodols uztur iekšējās datu struktūras, lai optimizētu datus, kurus izlikt no kešatmiņas, ja kešatmiņā ir nepieciešama vairāk vietas.

Linux lasīšanas sistēmas izsaukumu laikā kodols pārbaudīs, vai pieprasītie dati tiek glabāti kešatmiņā esošajos datu blokos, tas būtu veiksmīgs kešatmiņas trāpījums, un dati tiks atgriezti no kešatmiņas, neveicot IO diska sistēmā.  Kešatmiņas gadījumā dati tiks iegūti no IO sistēmas un kešatmiņa tiks atjaunināta, pamatojoties uz kešatmiņas politikām, jo ​​šie paši dati, visticamāk, tiks pieprasīti vēlreiz.

Kad tiks sasniegti noteikti atmiņas izmantošanas sliekšņi, fona uzdevumi sāks netīrus datus ierakstīt diskā, lai pārliecinātos, ka tas notīra atmiņas kešatmiņu.  Tie var ietekmēt atmiņu un procesoru ietilpīgu lietojumprogrammu veiktspēju, un administratoriem un / vai izstrādātājiem tā ir jāpielāgo.

Izmantojot komandu Free, lai skatītu kešatmiņas lietojumu

Mēs varam izmantot bezmaksas komandu no komandrindas, lai analizētu sistēmas atmiņu un kešatmiņai atvēlēto atmiņas apjomu.  Skatīt komandu zemāk:

# bezmaksas -m

Ko mēs redzam no bez maksas komanda iepriekš ir, ka ir 7.5 GB RAM šajā sistēmā.  No tā tiek izmantoti tikai 209 MB un 6.5 MB ir bez maksas.  Bufera kešatmiņā tiek izmantoti 667 MB.  Tagad mēģināsim palielināt šo skaitli, palaižot komandu, lai ģenerētu 1 gigabaita failu un nolasītu failu.  Tālāk sniegtā komanda ģenerēs aptuveni 100 MB nejaušus datus un pēc tam pievienos 10 faila kopijas vienā liels_fails.

# dd, ja = / dev / nejaušība = / root / datu_failu skaits = 1400000
# par i secībā 1 10; darīt atbalss $ i; kaķu datu_fails >> lielais_fails; izdarīts

Tagad mēs noteikti izlasīsim šo 1 Gig failu un pēc tam vēlreiz pārbaudiet bezmaksas komandu:

# cat large_file> / dev / null
# bezmaksas -m

Mēs varam redzēt, ka bufera kešatmiņas izmantošana ir palielinājusies no 667 līdz 1735 megabaitiem, kas ir aptuveni 1 gigabaita pieaugums bufera kešatmiņas izmantošanā.

Proc Sys VM Drop Cache komanda

Linux kodols nodrošina interfeisu, lai nomestu kešatmiņu. Izmēģināsim šīs komandas un redzēsim ietekmi uz bezmaksas iestatījumu.

# atbalss 1> / proc / sys / vm / drop_cache
# bezmaksas -m

Iepriekš redzams, ka lielākā daļa bufera kešatmiņas piešķiršanas tika atbrīvota ar šo komandu.

Eksperimentāla pārbaude, vai nomestās kešatmiņas darbojas

Vai mēs varam veikt veiktspējas pārbaudi, izmantojot kešatmiņu, lai lasītu failu? Lasīsim failu un rakstīsim to atpakaļ uz / dev / null, lai pārbaudītu, cik ilgs laiks nepieciešams, lai failu nolasītu no diska.  Mēs to plānosim ar laiks komandu.  Mēs veicam šo komandu tūlīt pēc kešatmiņas notīrīšanas ar iepriekšminētajām komandām.

Pagāja 8.4 sekundes, lai izlasītu failu.  Lasīsim to vēlreiz tagad, kad failam vajadzētu būt failu sistēmas kešatmiņā, un redzēsim, cik ilgi tas tagad aizņem.

Bums!  Tas prasīja tikai .2 sekundes, salīdzinot ar 8.4 sekundes, lai to izlasītu, kad fails netika saglabāts kešatmiņā.  Lai pārbaudītu, atkārtosim to vēlreiz, vispirms notīrot kešatmiņu un pēc tam divas reizes lasot failu.

Tas darbojās perfekti, kā paredzēts.  8.5 sekundes lasīšanai kešatmiņā un .2 sekundes kešatmiņā lasītajam.

Secinājums

Lappušu kešatmiņa tiek automātiski iespējota Linux sistēmās, un caurspīdīgi padarīs IO ātrāku, glabājot kešatmiņā nesen izmantotos datus.  Ja vēlaties manuāli notīrīt kešatmiņu, ko var viegli izdarīt, nosūtot atbalss komandu / proc failu sistēmai, norādot kodolam nomest kešatmiņu un atbrīvot kešatmiņā izmantoto atmiņu.  Norādījumi par komandas izpildi tika parādīti iepriekš šajā rakstā, un tika parādīta arī kešatmiņas darbības eksperimentālā validācija pirms un pēc skalošanas.

AppyMouse ekrāna skārienpaliktnis un peles rādītājs Windows planšetdatoriem
Planšetdatoru lietotājiem bieži pietrūkst peles rādītāja, it īpaši, ja viņi parasti lieto klēpjdatorus. Skārienekrāna viedtālruņiem un planšetdatoriem...
Vidējā peles poga nedarbojas sistēmā Windows 10
The peles vidējā poga palīdz jums ritināt garas tīmekļa lapas un ekrānus ar lielu datu daudzumu. Ja tas apstājas, jūs galu galā izmantosiet tastatūru,...
Kā nomainīt peles kreiso un labo pogu operētājsistēmā Windows 10
Tas ir diezgan normāli, ka visas datora peles ierīces ir ergonomiski izstrādātas lietotājiem ar labo roku. Bet ir pieejamas peles ierīces, kas ir īpaš...