Giunsa ang Paglimpyo sa RAM Memory Cache, Buffer, ug Swap sa Linux


Sama sa bisan unsang operating system, ang GNU/Linux nagpatuman sa pagdumala sa memorya nga epektibo ug labaw pa niana. Apan kung adunay bisan unsang proseso nga mokaon sa imong panumduman ug gusto nimo nga limpyohan kini, ang Linux naghatag usa ka paagi aron ma-flush o ma-clear ang cache sa ram.

  • Pangitaa ang Top 15 nga Proseso pinaagi sa Memory Usage sa Linux
  • Pangitaa ang Nanguna nga Mga Proseso sa Pagdagan pinaagi sa Pinakataas nga Memorya ug Paggamit sa CPU sa Linux
  • Unsaon Limitahan ang Oras ug Memorya sa Paggamit sa mga Proseso sa Linux

Ang matag Linux System adunay tulo ka mga kapilian sa paghawan sa cache nga dili makabalda sa bisan unsang proseso o serbisyo.

1. Tin-aw ang PageCache lamang.

# sync; echo 1 > /proc/sys/vm/drop_caches

2. Tin-aw nga mga dentries ug inode.

# sync; echo 2 > /proc/sys/vm/drop_caches

3. I-clear ang pagecache, dentries, ug inode.

# sync; echo 3 > /proc/sys/vm/drop_caches 

Pagpatin-aw sa sugo sa ibabaw.

Ang pag-sync mag-flush sa buffer sa file system. Command Separated by \;” run sequentially. Ang shell naghulat sa matag command nga mahuman sa dili pa ipatuman ang sunod nga command sa sequence. Sama sa gihisgutan sa kernel documentation, ang pagsulat ngadto sa drop_cache molimpyo sa cache nga walay pagpatay sa bisan unsa. aplikasyon/serbisyo, ang command echo mao ang pagbuhat sa trabaho sa pagsulat sa pag-file.

Kung kinahanglan nimo nga tangtangon ang cache sa disk, ang una nga mando labing luwas sa negosyo ug produksiyon tungod kay ang \...echo 1 > ….” magtangtang lang sa PageCache. Dili girekomenda nga gamiton ang ikatulo nga opsyon sa ibabaw \...echo 3 >” sa produksiyon hangtod nga makahibalo ka sa imong gibuhat, kay matangtang niini ang pagecache, dentries, ug inode.

Kung nag-aplay ka sa lainlaing mga setting ug gusto nga susihon, kung kini gipatuman labi na sa I/O-extensive benchmark, nan kinahanglan nimo nga limpyohan ang buffer cache. Mahimo nimong ihulog ang cache sama sa gipatin-aw sa ibabaw nga wala i-reboot ang System ie, wala’y kinahanglan nga downtime.

Ang Linux gidisenyo sa paagi nga kini motan-aw sa disk cache sa dili pa motan-aw sa disk. Kung makit-an niini ang kapanguhaan sa cache, nan ang hangyo dili makaabot sa disk. Kon atong limpyohan ang cache, ang disk cache mahimong dili kaayo mapuslanon tungod kay ang OS mangita alang sa kapanguhaan sa disk.

Dugang pa, kini usab magpahinay sa sistema sa pipila ka mga segundo samtang ang cache gilimpyohan ug ang matag kapanguhaan nga gikinahanglan sa OS gikarga pag-usab sa disk cache.

Karon maghimo na kami og shell script aron awtomatikong ma-clear ang RAM cache kada adlaw sa 2 am pinaagi sa cron scheduler nga buluhaton. Paghimo og shell script clearcache.sh ug idugang ang mosunod nga mga linya.

#!/bin/bash
# Note, we are using "echo 3", but it is not recommended in production instead use "echo 1"
echo "echo 3 > /proc/sys/vm/drop_caches"

Ibutang ang pagtugot sa pagpatuman sa clearcache.sh file.

# chmod 755 clearcache.sh

Karon mahimo nimong tawagan ang script kung kinahanglan nimo nga hawanan ang cache sa ram.

Karon magbutang ug cron para hawanan ang RAM cache kada adlaw sa alas 2 sa buntag. Ablihi ang crontab para sa pag-edit.

# crontab -e

Idugang ang ubos nga linya, i-save ug pagawasa aron madala kini sa 2 am kada adlaw.

0  2  *  *  *  /path/to/clearcache.sh

Alang sa dugang nga mga detalye kung giunsa ang pag-cron sa usa ka trabaho, mahimo nimong susihon ang among artikulo sa 11 Mga Trabaho sa Pag-iskedyul sa Cron.

Dili! dili kini. Hunahunaa ang usa ka sitwasyon kung imong gi-iskedyul ang script sa paghawan sa ram cache kada adlaw sa alas 2 sa buntag. Kada adlaw sa alas 2 sa buntag ang script gipatuman ug kini nag-flush sa imong RAM cache. Usa ka adlaw alang sa bisan unsa nga hinungdan mahimong labaw pa sa gipaabut nga mga tiggamit online sa imong website ug nangita mga kapanguhaan gikan sa imong server.

Sa parehas nga oras, ang naka-iskedyul nga script nagdagan ug gilimpyohan ang tanan sa cache. Karon ang tanan nga mga tiggamit nagkuha data gikan sa disk. Moresulta kini sa pagkahagsa sa server ug pagkadaot sa database. Busa klaroha ang ram-cache lamang kung gikinahanglan, ug nahibal-an ang imong mga tunob, kung dili ikaw usa ka Cargo Cult System Administrator.

Kung gusto nimo nga hawanan ang Swap space, mahimo nimong ipadagan ang mando sa ubos.

# swapoff -a && swapon -a

Usab, mahimo nimong idugang ang sugo sa ibabaw sa usa ka cron script sa ibabaw, pagkahuman masabtan ang tanan nga kauban nga mga peligro.

Karon atong hiusahon ang duha sa ibabaw nga mga sugo ngadto sa usa ka sugo aron makahimo og tukmang script aron malimpyohan ang RAM Cache ug Swap Space.

# echo 3 > /proc/sys/vm/drop_caches && swapoff -a && swapon -a && printf '\n%s\n' 'Ram-cache and Swap Cleared'

OR

$ su -c "echo 3 >'/proc/sys/vm/drop_caches' && swapoff -a && swapon -a && printf '\n%s\n' 'Ram-cache and Swap Cleared'" root

Human sa pagsulay sa duha ka mga sugo sa ibabaw, atong ipadagan ang sugo nga \libre -h sa dili pa ug human sa pagpadagan sa script ug susihon ang cache.

Mao ra kana sa karon, kung gusto nimo ang artikulo, ayaw kalimti ang paghatag kanamo sa imong bililhon nga feedback sa mga komentaryo aron mahibal-an namon, kung unsa ang imong gihunahuna nga maayong ideya sa paghawan sa ram cache ug buffer sa produksiyon ug Enterprise?