Paano Malinaw ang Cache sa Linux

How Clear Cache Linux



Ang linux file system cache (Page Cache) ay ginagamit upang mas mabilis ang pagpapatakbo ng IO. Sa ilalim ng ilang mga pangyayari ay maaaring nais ng isang administrator o developer na manu-manong i-clear ang cache. Sa artikulong ito ipaliwanag namin kung paano gumagana ang cache ng Linux File System. Pagkatapos ay ipapakita namin kung paano subaybayan ang paggamit ng cache at kung paano i-clear ang cache. Gagawa kami ng ilang mga simpleng eksperimento sa pagganap upang mapatunayan na ang cache ay gumagana tulad ng inaasahan at ang cache flush at malinaw na pamamaraan ay gumagana rin tulad ng inaasahan.

Paano Gumagana ang Linux File System Cache

Naglalaan ang kernel ng isang tiyak na halaga ng memorya ng system para sa pag-cache ng file ng file ng file na nai-access upang mas mabilis ang pangkalahatang pagganap. Ang cache sa linux ay tinatawag na Pahina ng Cache . Ang laki ng cache ng pahina ay mai-configure na may naka-default na mga default na pinagana upang mag-cache ng maraming halaga ng mga disk block. Ang maximum na laki ng cache at ang mga patakaran kung kailan paalisin ang data mula sa cache ay naaakma sa mga parameter ng kernel. Ang diskarte ng linux cache ay tinatawag na isang cache ng pagsulat sa likod. Nangangahulugan ito kung ang data ay nakasulat sa disk ay nakasulat sa memorya sa cache at minarkahan bilang marumi sa cache hanggang sa ma-synchronize ito sa disk. Pinapanatili ng kernel ang panloob na mga istraktura ng data upang ma-optimize kung aling data ang dapat palayasin mula sa cache kapag kailangan ng mas maraming puwang sa cache.







Sa panahon ng mga pagbasa ng Linux na tawag sa system, susuriin ng kernel kung ang hiniling na data ay nakaimbak sa mga bloke ng data sa cache, iyon ay isang matagumpay na hit ng cache at ibabalik ang data mula sa cache nang hindi gumagawa ng anumang IO sa disk system. Para sa isang miss na cache ang data ay kukuha mula sa IO system at na-update ang cache batay sa mga patakaran sa pag-cache dahil ang parehong data na ito ay malamang na mahiling muli.



Kapag ang ilang mga threshold ng paggamit ng memorya ay naabot ang mga gawain sa background ay magsisimulang magsulat ng maruruming data sa disk upang matiyak na nililimas nito ang cache ng memorya. Maaari itong magkaroon ng isang epekto sa pagganap ng memorya at CPU intensive application at nangangailangan ng pag-tune ng mga administrator at o mga developer.



Paggamit ng Libreng utos upang tingnan ang Paggamit ng Cache

Maaari naming gamitin ang libreng utos mula sa linya ng utos upang pag-aralan ang memorya ng system at ang halaga ng memorya na inilalaan sa pag-cache. Tingnan ang utos sa ibaba:





#libre -m

Kung ano ang nakikita natin mula sa libre Ang utos sa itaas ay mayroong 7.5 GB ng RAM sa sistemang ito. Sa ito 209 MB lamang ang ginamit at 6.5 MB ang libre. 667 MB ang ginamit sa buffer cache. Subukan nating dagdagan ang numerong iyon sa pamamagitan ng pagpapatakbo ng isang utos upang makabuo ng isang file na 1 Gigabyte at basahin ang file. Ang utos sa ibaba ay bubuo ng humigit-kumulang 100MB ng random na data at pagkatapos ay idugtong ang 10 mga kopya ng file nang magkasama sa isa malaki_file .



# dd if = / dev / random ng = / root / data_file count = 1400000
# para sa ako sa `seq 1 10`; gawin ang echo $ i; cat data_file >> malaki_file; tapos na

Ngayon ay tiyakin naming basahin ang 1 Gig file at pagkatapos ay suriin muli ang libreng utos:

# cat big_file> / dev / null
# libre -m

Maaari naming makita ang paggamit ng buffer cache na umakyat mula 667 hanggang 1735 Megabytes isang humigit-kumulang na 1 pagtaas ng Gigabyte sa paggamit ng buffer cache.

Proc Sys VM Drop Cache Command

Nagbibigay ang linux kernel ng isang interface upang i-drop ang cache subukan natin ang mga utos na ito at tingnan ang epekto sa libreng setting.

# echo 1> / proc / sys / vm / drop_cache
# libre -m

Maaari nating makita sa itaas na ang karamihan ng paglalaan ng buffer cache ay napalaya sa utos na ito.

Pang-eksperimentong Pag-verify na Gumagawa ang Drop Cache

Maaari ba nating gawin ang pagpapatunay ng pagganap ng paggamit ng cache upang mabasa ang file? Basahin natin ang file at isulat ito pabalik sa / dev / null upang masubukan kung gaano katagal bago mabasa ang file mula sa disk. Isasabay natin ito sa oras utos Ginagawa namin kaagad ang utos na ito pagkatapos i-clear ang cache gamit ang mga utos sa itaas.

Tumagal ng 8.4 segundo upang mabasa ang file. Basahin natin itong muli ngayon na ang file ay dapat na nasa cache ng filesystem at tingnan kung gaano katagal ngayon.

Boom! Tumagal lamang ng .2 segundo kumpara sa 8.4 segundo upang mabasa ito nang hindi nai-cache ang file. Upang ma-verify ulitin natin ulit ito sa pamamagitan ng unang pag-clear sa cache at pagkatapos ay basahin ang file ng 2 beses.

Gumana ito ng perpekto tulad ng inaasahan. 8.5 segundo para sa nabasa na hindi naka-cache at .2 segundo para sa nabasang na-cache.

Konklusyon

Ang cache ng pahina ay awtomatikong pinagana sa mga system ng Linux at malinaw na gagawing mas mabilis ang IO sa pamamagitan ng pag-iimbak ng kamakailang ginamit na data sa cache. Kung nais mong manu-manong limasin ang cache na maaaring magawa nang madali sa pamamagitan ng pagpapadala ng isang echo command sa / proc filesystem na nagpapahiwatig sa kernel upang i-drop ang cache at palayain ang memorya na ginamit para sa cache. Ang mga tagubilin para sa pagpapatakbo ng utos ay ipinakita sa itaas sa artikulong ito at ipinakita rin ang pang-eksperimentong pagpapatunay ng pag-uugali ng cache bago at pagkatapos ng flushing.