లైనక్స్ ఫైల్ సిస్టమ్ కాష్ ఎలా పనిచేస్తుంది
కెర్నల్ మొత్తం పనితీరును వేగవంతం చేయడానికి ఫైల్ సిస్టమ్ డిస్క్ యాక్సెస్లను కాష్ చేయడానికి కొంత మొత్తంలో సిస్టమ్ మెమరీని రిజర్వ్ చేస్తుంది. లైనక్స్లోని కాష్ను అంటారు పేజీ కాష్ . పెద్ద మొత్తంలో డిస్క్ బ్లాక్లను కాష్ చేయడానికి ఎనేబుల్ చేయబడిన ఉదారంగా డిఫాల్ట్లతో పేజీ కాష్ పరిమాణం కాన్ఫిగర్ చేయబడుతుంది. కాష్ యొక్క గరిష్ట పరిమాణం మరియు కాష్ నుండి డేటాను ఎప్పుడు తొలగించాలో అనే విధానాలు కెర్నల్ పారామితులతో సర్దుబాటు చేయబడతాయి. లైనక్స్ కాష్ విధానాన్ని రైట్-బ్యాక్ కాష్ అంటారు. దీని అర్థం డేటా డిస్క్కి వ్రాయబడితే అది కాష్లోకి మెమరీకి వ్రాయబడుతుంది మరియు డిస్క్కి సమకాలీకరించబడే వరకు కాష్లో మురికిగా గుర్తించబడింది. కాష్లో ఎక్కువ స్థలం అవసరమైనప్పుడు కాష్ నుండి ఏ డేటాను తొలగించాలో ఆప్టిమైజ్ చేయడానికి కెర్నల్ అంతర్గత డేటా నిర్మాణాలను నిర్వహిస్తుంది.
లైనక్స్ రీడ్ సిస్టమ్ కాల్స్ సమయంలో, కెర్నల్ అభ్యర్థించిన డేటా కాష్లోని డేటా బ్లాక్లలో నిల్వ చేయబడిందో లేదో తనిఖీ చేస్తుంది, అది విజయవంతమైన కాష్ హిట్ అవుతుంది మరియు డిస్క్ సిస్టమ్కు ఎటువంటి IO చేయకుండానే డేటా కాష్ నుండి తిరిగి ఇవ్వబడుతుంది. కాష్ మిస్ కోసం డేటా IO సిస్టమ్ నుండి పొందబడుతుంది మరియు క్యాషింగ్ విధానాల ఆధారంగా కాష్ అప్డేట్ చేయబడుతుంది, అదే డేటా మళ్లీ అభ్యర్థించబడే అవకాశం ఉంది.
మెమరీ వినియోగం యొక్క నిర్దిష్ట పరిమితులను చేరుకున్నప్పుడు నేపథ్య పనులు మెమరీ కాష్ను క్లియర్ చేస్తున్నాయని నిర్ధారించడానికి మురికి డేటాను డిస్క్కి వ్రాయడం ప్రారంభిస్తాయి. ఇవి మెమరీ మరియు CPU ఇంటెన్సివ్ అప్లికేషన్ల పనితీరుపై ప్రభావం చూపుతాయి మరియు నిర్వాహకులు మరియు డెవలపర్ల ద్వారా ట్యూనింగ్ అవసరం.
కాష్ వినియోగాన్ని వీక్షించడానికి ఉచిత ఆదేశాన్ని ఉపయోగించడం
సిస్టమ్ మెమరీ మరియు కాషింగ్కు కేటాయించిన మెమరీ మొత్తాన్ని విశ్లేషించడానికి మేము కమాండ్ లైన్ నుండి ఉచిత ఆదేశాన్ని ఉపయోగించవచ్చు. దిగువ ఆదేశాన్ని చూడండి:
#ఉచిత -m
నుండి మనం ఏమి చూస్తాము ఉచిత పైన ఉన్న ఆదేశం ఏమిటంటే, ఈ సిస్టమ్లో 7.5 GB RAM ఉంది. ఇందులో కేవలం 209 MB మాత్రమే ఉపయోగించబడుతుంది మరియు 6.5 MB ఉచితం. బఫర్ కాష్లో 667 MB ఉపయోగించబడుతుంది. ఇప్పుడు 1 గిగాబైట్ యొక్క ఫైల్ను రూపొందించడానికి మరియు ఫైల్ను చదవడానికి ఒక ఆదేశాన్ని అమలు చేయడం ద్వారా ఆ సంఖ్యను పెంచడానికి ప్రయత్నిద్దాం. దిగువ ఉన్న ఆదేశం సుమారు 100MB యాదృచ్ఛిక డేటాను ఉత్పత్తి చేస్తుంది, ఆపై ఫైల్ యొక్క 10 కాపీలను కలిపి ఒకటిగా జోడిస్తుంది పెద్ద_ఫైల్ .
# dd if =/dev/random of =/root/data_file కౌంట్ = 1400000
# కోసం `seq 1 10` లో; ప్రతిధ్వని చేయండి $ i; పిల్లి డేటా_ఫైల్ >> పెద్ద_ఫైల్; పూర్తి
ఇప్పుడు మేము ఈ 1 Gig ఫైల్ని చదివి, ఆపై ఉచిత ఆదేశాన్ని మళ్లీ తనిఖీ చేస్తాము:
# పిల్లి పెద్ద_ఫైల్> /dev /null# ఉచిత -మీ
బఫర్ కాష్ వినియోగం 667 నుండి 1735 మెగాబైట్లకు బఫర్ కాష్ వినియోగంలో దాదాపు 1 గిగాబైట్ పెరుగుదలని మనం చూడవచ్చు.
Proc Sys VM డ్రాప్ క్యాచెస్ కమాండ్
లైనక్స్ కెర్నల్ కాష్ను వదలడానికి ఇంటర్ఫేస్ను అందిస్తుంది, ఈ ఆదేశాలను ప్రయత్నిద్దాం మరియు ఉచిత సెట్టింగ్పై ప్రభావం చూద్దాం.
# ప్రతిధ్వని 1>/proc/sys/vm/drop_caches# ఉచిత -మీ
బఫర్ కాష్ కేటాయింపులో ఎక్కువ భాగం ఈ ఆదేశంతో విముక్తి పొందినట్లు మనం పైన చూడవచ్చు.
డ్రాప్ క్యాచెస్ పనిచేస్తుందని ప్రయోగాత్మక ధృవీకరణ
ఫైల్ని చదవడానికి కాష్ని ఉపయోగించి మేము ఒక పనితీరు ధ్రువీకరణను చేయగలమా? డిస్క్ నుండి ఫైల్ చదవడానికి ఎంత సమయం పడుతుందో పరీక్షించడానికి ఫైల్ని చదివి /dev /null కి తిరిగి వ్రాద్దాం. మేము దానితో టైమ్ చేస్తాము సమయం కమాండ్ పై ఆదేశాలతో కాష్ను క్లియర్ చేసిన వెంటనే మేము ఈ ఆదేశాన్ని చేస్తాము.
ఫైల్ చదవడానికి 8.4 సెకన్లు పట్టింది. ఫైల్ సిస్టమ్ కాష్లో ఉండాలి కాబట్టి ఇప్పుడు మళ్లీ చదువుదాం మరియు ఇప్పుడు ఎంత సమయం పడుతుందో చూడండి.
బూమ్! ఫైల్ క్యాష్ కానప్పుడు దాన్ని చదవడానికి 8.4 సెకన్లతో పోలిస్తే కేవలం .2 సెకన్లు మాత్రమే పట్టింది. ధృవీకరించడానికి మొదట కాష్ను క్లియర్ చేసి, ఆపై ఫైల్ను 2 సార్లు చదవడం ద్వారా దీన్ని మళ్లీ పునరావృతం చేద్దాం.
ఇది ఊహించిన విధంగా సంపూర్ణంగా పనిచేసింది. కాష్ చేయని రీడ్ కోసం 8.5 సెకన్లు మరియు కాష్ చేసిన రీడ్ కోసం .2 సెకన్లు.
ముగింపు
పేజీ కాష్ స్వయంచాలకంగా లైనక్స్ సిస్టమ్లలో ప్రారంభించబడుతుంది మరియు ఇటీవల ఉపయోగించిన డేటాను కాష్లో నిల్వ చేయడం ద్వారా పారదర్శకంగా IO ని వేగవంతం చేస్తుంది. మీరు కాష్ను మాన్యువల్గా క్లియర్ చేయాలనుకుంటే, కాష్ను వదలమని మరియు కాష్ కోసం ఉపయోగించిన మెమరీని విడిపించాలని కెర్నల్కు సూచించే /proc ఫైల్సిస్టమ్కు ఎకో కమాండ్ పంపడం ద్వారా సులభంగా చేయవచ్చు. ఆదేశాన్ని అమలు చేయడానికి సూచనలు ఈ వ్యాసంలో పైన చూపబడ్డాయి మరియు ఫ్లషింగ్ ముందు మరియు తర్వాత కాష్ ప్రవర్తన యొక్క ప్రయోగాత్మక ధ్రువీకరణ కూడా చూపబడ్డాయి.