మీరు VMware vSphere (లేదా ఏదైనా ఇతర టెక్నాలజీ స్టాక్) ఆధారంగా వర్చువల్ ఇన్ఫ్రాస్ట్రక్చర్ను నిర్వహిస్తే, మీరు తరచుగా వినియోగదారుల నుండి ఫిర్యాదులను వింటారు: “వర్చువల్ మెషీన్ నెమ్మదిగా ఉంది!”. ఈ కథనాల శ్రేణిలో, నేను పనితీరు కొలమానాలను విశ్లేషిస్తాను మరియు ఏమి మరియు ఎందుకు "నెమ్మది" మరియు అది "నెమ్మదించకుండా" ఎలా చూసుకోవాలో మీకు తెలియజేస్తాను.
నేను వర్చువల్ మెషీన్ పనితీరు యొక్క క్రింది అంశాలను పరిశీలిస్తాను:
- cpu,
- ఫ్రేం,
- డిస్క్,
- నెట్వర్క్.
నేను CPUతో ప్రారంభిస్తాను.
పనితీరు విశ్లేషణ కోసం మనకు ఇది అవసరం:
- vCenter పనితీరు కౌంటర్లు - పనితీరు కౌంటర్లు, గ్రాఫ్లను vSphere క్లయింట్ ద్వారా వీక్షించవచ్చు. ఈ కౌంటర్లపై సమాచారం క్లయింట్ యొక్క ఏదైనా వెర్షన్లో అందుబాటులో ఉంటుంది (C#లో “మందపాటి” క్లయింట్, Flexలో వెబ్ క్లయింట్ మరియు HTML5లో వెబ్ క్లయింట్). ఈ కథనాలలో, మేము C# క్లయింట్ నుండి స్క్రీన్షాట్లను ఉపయోగిస్తాము, ఎందుకంటే అవి సూక్ష్మంగా మెరుగ్గా కనిపిస్తాయి :)
- ESXTOP ESXi కమాండ్ లైన్ నుండి అమలు చేసే యుటిలిటీ. దాని సహాయంతో, మీరు రియల్ టైమ్లో పనితీరు కౌంటర్ల విలువలను పొందవచ్చు లేదా తదుపరి విశ్లేషణ కోసం ఈ విలువలను నిర్దిష్ట వ్యవధిలో .csv ఫైల్కి అప్లోడ్ చేయవచ్చు. తరువాత, నేను ఈ సాధనం గురించి మీకు మరింత తెలియజేస్తాను మరియు అంశంపై డాక్యుమెంటేషన్ మరియు కథనాలకు కొన్ని ఉపయోగకరమైన లింక్లను అందిస్తాను.
సిద్ధాంతం యొక్క బిట్
ESXiలో, ప్రతి vCPU (వర్చువల్ మెషిన్ కెర్నల్) యొక్క ఆపరేషన్కు ఒక ప్రత్యేక ప్రక్రియ బాధ్యత వహిస్తుంది - VMware పరిభాషలో ప్రపంచం. సేవా ప్రక్రియలు కూడా ఉన్నాయి, కానీ VM పనితీరు విశ్లేషణ యొక్క కోణం నుండి, అవి తక్కువ ఆసక్తికరంగా ఉంటాయి.
ESXiలో ఒక ప్రక్రియ నాలుగు రాష్ట్రాల్లో ఒకటిగా ఉంటుంది:
- రన్ ప్రక్రియ కొన్ని ఉపయోగకరమైన పని చేస్తోంది.
- వేచి - ప్రక్రియ ఏ పనిని చేయదు (నిష్క్రియ) లేదా ఇన్పుట్ / అవుట్పుట్ కోసం వేచి ఉంటుంది.
- కాస్టాప్ - మల్టీ-కోర్ వర్చువల్ మెషీన్లలో సంభవించే స్థితి. హైపర్వైజర్ యొక్క CPU షెడ్యూలర్ (ESXi CPU షెడ్యూలర్) అన్ని సక్రియ వర్చువల్ మెషీన్ కోర్లను ఒకే సమయంలో సర్వర్ యొక్క ఫిజికల్ కోర్లలో అమలు చేయడానికి షెడ్యూల్ చేయలేనప్పుడు ఇది జరుగుతుంది. భౌతిక ప్రపంచంలో, అన్ని ప్రాసెసర్ కోర్లు సమాంతరంగా నడుస్తాయి, VM లోపల ఉన్న అతిథి OS ఇదే విధమైన ప్రవర్తనను ఆశిస్తుంది, కాబట్టి హైపర్వైజర్ VM కోర్లను వేగాన్ని తగ్గించవలసి ఉంటుంది, ఇది చక్రాన్ని వేగంగా పూర్తి చేసే అవకాశాన్ని కలిగి ఉంటుంది. ESXi యొక్క ఆధునిక సంస్కరణల్లో, CPU షెడ్యూలర్ రిలాక్స్డ్ కో-షెడ్యూలింగ్ అనే మెకానిజంను ఉపయోగిస్తుంది: హైపర్వైజర్ "వేగవంతమైన" మరియు "నెమ్మదైన" వర్చువల్ మెషీన్ కోర్ (స్కేవ్) మధ్య అంతరాన్ని గణిస్తుంది. గ్యాప్ నిర్దిష్ట థ్రెషోల్డ్ను మించి ఉంటే, "ఫాస్ట్" కోర్ కోస్టాప్ స్థితిలోకి ప్రవేశిస్తుంది. VM కోర్లు ఈ స్థితిలో ఎక్కువ సమయం గడిపినట్లయితే, అది పనితీరు సమస్యలను కలిగిస్తుంది.
- రెడీ - హైపర్వైజర్ దాని అమలు కోసం వనరులను కేటాయించలేనప్పుడు ప్రక్రియ ఈ స్థితిలోకి ప్రవేశిస్తుంది. అధిక సిద్ధంగా విలువలు VM పనితీరు సమస్యలను కలిగిస్తాయి.
ప్రధాన VM CPU పనితీరు కౌంటర్లు
CPU వినియోగం, %. పేర్కొన్న వ్యవధిలో CPU వినియోగం శాతాన్ని చూపుతుంది.
ఎలా విశ్లేషించాలి? VM స్థిరంగా 90% వద్ద CPUని ఉపయోగిస్తుంటే లేదా 100% వరకు పీక్లు ఉంటే, అప్పుడు మాకు సమస్య ఉంది. VM లోపల అప్లికేషన్ యొక్క "నెమ్మది" ఆపరేషన్లో మాత్రమే కాకుండా, నెట్వర్క్లో VM యొక్క అసాధ్యతలో కూడా సమస్యలు వ్యక్తీకరించబడతాయి. VM క్రమానుగతంగా పడిపోతుందని మానిటరింగ్ సిస్టమ్ చూపిస్తే, CPU వినియోగ గ్రాఫ్లోని పీక్లపై దృష్టి పెట్టండి.
వర్చువల్ మెషీన్ యొక్క CPU లోడ్ను చూపే ప్రామాణిక అలారం ఉంది:
నేను ఏమి చేయాలి? VM నిరంతరం CPU వినియోగాన్ని స్కేల్ని కలిగి ఉంటే, మీరు vCPUల సంఖ్యను పెంచడం గురించి ఆలోచించవచ్చు (దురదృష్టవశాత్తూ, ఇది ఎల్లప్పుడూ సహాయం చేయదు) లేదా VMని మరింత సమర్థవంతమైన ప్రాసెసర్లతో సర్వర్కు తరలించడం.
Mhzలో CPU వినియోగం
vCenterలోని గ్రాఫ్లలో, %లో వినియోగం మొత్తం వర్చువల్ మెషీన్కు మాత్రమే వీక్షించబడుతుంది, వ్యక్తిగత కోర్ల కోసం గ్రాఫ్లు లేవు (Esxtopలో, కోర్ల కోసం %లో విలువలు ఉన్నాయి). ప్రతి కోర్ కోసం, మీరు MHzలో వినియోగాన్ని చూడవచ్చు.
ఎలా విశ్లేషించాలి? మల్టీ-కోర్ ఆర్కిటెక్చర్ కోసం అప్లికేషన్ ఆప్టిమైజ్ చేయబడలేదు: ఇది 100% వద్ద ఒక కోర్ని మాత్రమే ఉపయోగిస్తుంది మరియు మిగిలినవి లోడ్ లేకుండా పనిలేకుండా ఉంటాయి. ఉదాహరణకు, డిఫాల్ట్ బ్యాకప్ సెట్టింగ్లతో, MS SQL ఒక కోర్లో మాత్రమే ప్రక్రియను ప్రారంభిస్తుంది. తత్ఫలితంగా, బ్యాకప్ మందగిస్తుంది డిస్కుల నెమ్మదిగా వేగం కారణంగా కాదు (వినియోగదారు మొదట ఫిర్యాదు చేసినది), కానీ ప్రాసెసర్ భరించలేనందున. పారామితులను మార్చడం ద్వారా సమస్య పరిష్కరించబడింది: బ్యాకప్ అనేక ఫైళ్ళలో (వరుసగా, అనేక ప్రక్రియలలో) సమాంతరంగా అమలు చేయడం ప్రారంభించింది.
కోర్ల అసమాన లోడ్ యొక్క ఉదాహరణ.
కోర్లు అసమానంగా లోడ్ చేయబడినప్పుడు మరియు వాటిలో కొన్ని 100% శిఖరాలను కలిగి ఉన్నప్పుడు (పై గ్రాఫ్లో వలె) పరిస్థితి కూడా ఉంది. ఒక కోర్ మాత్రమే లోడ్ చేయడంతో, CPU వినియోగ అలారం పని చేయదు (ఇది VM అంతటా ఉంది), కానీ పనితీరు సమస్యలు ఉంటాయి.
నేను ఏమి చేయాలి? వర్చువల్ మెషీన్లోని సాఫ్ట్వేర్ కోర్లను అసమానంగా లోడ్ చేస్తే (ఒక కోర్ లేదా కోర్లలో కొంత భాగాన్ని మాత్రమే ఉపయోగిస్తుంది), వాటి సంఖ్యను పెంచడంలో అర్ధమే లేదు. ఈ సందర్భంలో, VMని మరింత సమర్థవంతమైన ప్రాసెసర్లతో సర్వర్కు తరలించడం మంచిది.
మీరు సర్వర్ యొక్క BIOSలో పవర్ సెట్టింగ్లను తనిఖీ చేయడానికి కూడా ప్రయత్నించవచ్చు. చాలా మంది నిర్వాహకులు BIOSలో హై పెర్ఫార్మెన్స్ మోడ్ను ఎనేబుల్ చేస్తారు మరియు తద్వారా C-స్టేట్స్ మరియు P-స్టేట్స్ పవర్ సేవింగ్ టెక్నాలజీలను డిజేబుల్ చేస్తారు. ఆధునిక ఇంటెల్ ప్రాసెసర్లు టర్బో బూస్ట్ టెక్నాలజీని ఉపయోగిస్తాయి, ఇది ఇతర కోర్ల వ్యయంతో వ్యక్తిగత ప్రాసెసర్ కోర్ల ఫ్రీక్వెన్సీని పెంచుతుంది. కానీ పవర్ సేవింగ్ టెక్నాలజీలను ఎనేబుల్ చేసినప్పుడు మాత్రమే ఇది పని చేస్తుంది. మేము వాటిని నిలిపివేస్తే, ప్రాసెసర్ లోడ్ చేయని కోర్ల విద్యుత్ వినియోగాన్ని తగ్గించదు.
VMware సర్వర్లలో పవర్-పొదుపు సాంకేతికతలను నిలిపివేయవద్దని సిఫార్సు చేస్తుంది, కానీ హైపర్వైజర్కు గరిష్ట శక్తి నిర్వహణను అందించే మోడ్లను ఎంచుకోవాలి. అదే సమయంలో, హైపర్వైజర్ పవర్ వినియోగ సెట్టింగ్లలో, మీరు అధిక పనితీరును ఎంచుకోవాలి.
మీ ఇన్ఫ్రాస్ట్రక్చర్లో పెరిగిన CPU ఫ్రీక్వెన్సీ అవసరమయ్యే వ్యక్తిగత VMలు (లేదా VM కోర్లు) ఉంటే, విద్యుత్ వినియోగాన్ని సరిగ్గా కాన్ఫిగర్ చేయడం వలన వాటి పనితీరు గణనీయంగా మెరుగుపడుతుంది.
CPU సిద్ధంగా ఉంది (సంసిద్ధత)
VM కోర్ (vCPU) సిద్ధంగా ఉన్న స్థితిలో ఉంటే, అది ఉపయోగకరమైన పనిని చేయదు. వర్చువల్ మెషీన్ యొక్క vCPU ప్రాసెస్ను కేటాయించగల ఉచిత భౌతిక కోర్ను హైపర్వైజర్ కనుగొననప్పుడు ఈ పరిస్థితి ఏర్పడుతుంది.
ఎలా విశ్లేషించాలి? సాధారణంగా, వర్చువల్ మెషీన్ యొక్క కోర్లు 10% కంటే ఎక్కువ సమయం సిద్ధంగా ఉన్నట్లయితే, మీరు పనితీరు సమస్యలను గమనించవచ్చు. సరళంగా చెప్పాలంటే, భౌతిక వనరుల లభ్యత కోసం VM వేచి ఉన్న సమయాలలో 10% కంటే ఎక్కువ.
vCenterలో, మీరు CPU సిద్ధంగా ఉన్న 2 కౌంటర్లను చూడవచ్చు:
- సంసిద్ధత,
- రెడీ.
రెండు కౌంటర్ల విలువలను మొత్తం VM మరియు వ్యక్తిగత కోర్ల కోసం చూడవచ్చు.
సంసిద్ధత విలువను వెంటనే శాతంగా చూపుతుంది, కానీ నిజ సమయంలో మాత్రమే (చివరి గంటకు డేటా, కొలత విరామం 20 సెకన్లు). హాట్ ముసుగులో సమస్యలను కనుగొనడానికి మాత్రమే ఈ కౌంటర్ ఉత్తమంగా ఉపయోగించబడుతుంది.
సిద్ధంగా ఉన్న కౌంటర్ విలువలను చారిత్రక కోణంలో కూడా చూడవచ్చు. ఇది నమూనాలను స్థాపించడానికి మరియు సమస్య యొక్క లోతైన విశ్లేషణకు ఉపయోగపడుతుంది. ఉదాహరణకు, ఒక నిర్దిష్ట సమయంలో VM పనితీరు సమస్యలను కలిగి ఉంటే, మీరు VM నడుస్తున్న సర్వర్లోని మొత్తం లోడ్తో CPU రెడీ హోవర్ విరామాలను సరిపోల్చవచ్చు మరియు లోడ్ను తగ్గించడానికి చర్యలు తీసుకోవచ్చు (DRS విఫలమైతే).
సిద్ధంగా, సంసిద్ధత వలె కాకుండా, శాతాలలో కాదు, మిల్లీసెకన్లలో చూపబడుతుంది. ఇది సమ్మషన్ రకానికి చెందిన కౌంటర్, అంటే, కొలత వ్యవధిలో VM కోర్ సిద్ధంగా ఉన్న స్థితిలో ఎంత సమయం ఉందో చూపిస్తుంది. మీరు సాధారణ సూత్రాన్ని ఉపయోగించి ఈ విలువను శాతానికి మార్చవచ్చు:
(CPU సిద్ధంగా సమ్మషన్ విలువ / (సెకన్లలో చార్ట్ డిఫాల్ట్ నవీకరణ విరామం * 1000)) * 100 = CPU సిద్ధంగా %
ఉదాహరణకు, దిగువ గ్రాఫ్లోని VM కోసం, మొత్తం వర్చువల్ మెషీన్కు గరిష్ట రెడీ విలువ ఇలా ఉంటుంది:
రెడీ విలువను శాతంగా లెక్కించేటప్పుడు, మీరు రెండు పాయింట్లకు శ్రద్ధ వహించాలి:
- మొత్తం VM అంతటా రెడీ విలువ అనేది కోర్ల అంతటా సిద్ధంగా ఉన్న మొత్తం.
- కొలత విరామం. నిజ సమయానికి, ఇది 20 సెకన్లు మరియు ఉదాహరణకు, రోజువారీ చార్ట్లలో, ఇది 300 సెకన్లు.
యాక్టివ్ ట్రబుల్ షూటింగ్తో, ఈ సాధారణ క్షణాలను సులభంగా కోల్పోవచ్చు మరియు ఉనికిలో లేని సమస్యలను పరిష్కరించడంలో విలువైన సమయాన్ని వృథా చేయవచ్చు.
దిగువ గ్రాఫ్లోని డేటా ఆధారంగా రెడీ అని గణిద్దాం. (324474/(20*1000))*100 = మొత్తం VM కోసం 1622%. మీరు కోర్లను చూస్తే అది అంత భయానకంగా లేదు: 1622/64 = 25% ప్రతి కోర్. ఈ సందర్భంలో, క్యాచ్ని గుర్తించడం చాలా సులభం: రెడీ విలువ అవాస్తవంగా ఉంటుంది. కానీ మేము అనేక కోర్లతో మొత్తం VM కోసం 10-20% గురించి మాట్లాడుతుంటే, ప్రతి కోర్కి విలువ సాధారణ పరిధిలో ఉండవచ్చు.
నేను ఏమి చేయాలి? వర్చువల్ మిషన్ల సాధారణ ఆపరేషన్ కోసం సర్వర్లో తగినంత ప్రాసెసర్ వనరులు లేవని అధిక రెడీ విలువ సూచిస్తుంది. అటువంటి పరిస్థితిలో, ప్రాసెసర్ (vCPU:pCPU) ద్వారా ఓవర్సబ్స్క్రిప్షన్ను తగ్గించడం మాత్రమే మిగిలి ఉంది. సహజంగానే, ఇప్పటికే ఉన్న VMల పారామితులను తగ్గించడం ద్వారా లేదా VMలో కొంత భాగాన్ని ఇతర సర్వర్లకు తరలించడం ద్వారా దీనిని సాధించవచ్చు.
కో-స్టాప్
ఎలా విశ్లేషించాలి? ఈ కౌంటర్ కూడా సమ్మషన్ రకాన్ని కలిగి ఉంది మరియు సిద్ధంగా ఉన్న విధంగానే శాతాలకు మార్చబడుతుంది:
(CPU కో-స్టాప్ సమ్మషన్ విలువ / (సెకన్లలో చార్ట్ డిఫాల్ట్ అప్డేట్ విరామం * 1000)) * 100 = CPU కో-స్టాప్ %
ఇక్కడ మీరు VMకి కోర్ల సంఖ్య మరియు కొలత విరామంపై కూడా శ్రద్ధ వహించాలి.
కాస్టాప్ స్థితిలో, కెర్నల్ ఉపయోగకరమైన పనిని చేయదు. సరైన VM పరిమాణం మరియు సాధారణ సర్వర్ లోడ్తో, కో-స్టాప్ కౌంటర్ సున్నాకి దగ్గరగా ఉండాలి.
ఈ సందర్భంలో, లోడ్ స్పష్టంగా అసాధారణంగా ఉంటుంది :)
నేను ఏమి చేయాలి? పెద్ద సంఖ్యలో కోర్లతో కూడిన అనేక VMలు ఒకే హైపర్వైజర్లో రన్ అవుతున్నట్లయితే మరియు CPU ద్వారా ఓవర్సబ్స్క్రిప్షన్ ఉంటే, అప్పుడు కో-స్టాప్ కౌంటర్ పెరగవచ్చు, దీని వలన ఈ VMల పనితీరులో సమస్యలు వస్తాయి.
అలాగే, హైపర్-ట్రెడింగ్ ప్రారంభించబడిన ఒక ఫిజికల్ సర్వర్ కోర్లో ఒక VM యొక్క యాక్టివ్ కోర్ల కోసం థ్రెడ్లను ఉపయోగించినట్లయితే కో-స్టాప్ పెరుగుతుంది. ఈ పరిస్థితి సంభవించవచ్చు, ఉదాహరణకు, VM అది రన్ అవుతున్న సర్వర్లో భౌతికంగా కలిగి ఉన్న దాని కంటే ఎక్కువ కోర్లను కలిగి ఉంటే లేదా VM కోసం "preferHT" సెట్టింగ్ ప్రారంభించబడితే. మీరు ఈ సెట్టింగ్ గురించి చదువుకోవచ్చు.
అధిక కో-స్టాప్ల కారణంగా VM పనితీరు సమస్యలను నివారించడానికి, ఆ VMలో రన్ అయ్యే సాఫ్ట్వేర్ మరియు VM రన్ అవుతున్న ఫిజికల్ సర్వర్ సామర్థ్యాల కోసం తయారీదారు సిఫార్సుల ప్రకారం VMని సైజ్ చేయండి.
రిజర్వ్లో కోర్లను జోడించవద్దు, ఇది VMకి మాత్రమే కాకుండా, సర్వర్లోని దాని పొరుగువారికి కూడా పనితీరు సమస్యలను కలిగిస్తుంది.
ఇతర ఉపయోగకరమైన CPU కొలమానాలు
రన్ - కొలత వ్యవధిలో ఎంత కాలం (ms) vCPU RUN స్థితిలో ఉంది, అంటే, ఇది వాస్తవానికి ఉపయోగకరమైన పనిని చేసింది.
ఐడిల్ - కొలత వ్యవధిలో ఎంత సమయం (ms) vCPU నిష్క్రియ స్థితిలో ఉంది. అధిక నిష్క్రియ విలువలు సమస్య కాదు, ఇది కేవలం vCPUకి "ఏమీ లేదు".
వేచి - కొలత వ్యవధిలో ఎంత కాలం (మిసె) vCPU నిరీక్షణ స్థితిలో ఉంది. ఈ కౌంటర్లో IDLE చేర్చబడినందున, అధిక నిరీక్షణ విలువలు కూడా సమస్యను సూచించవు. అయితే వెయిట్ IDLE ఎక్కువగా ఉన్నప్పుడు తక్కువగా ఉంటే, అప్పుడు VM I / O ఆపరేషన్ల పూర్తి కోసం వేచి ఉంది మరియు ఇది హార్డ్ డిస్క్ లేదా VM యొక్క ఏదైనా వర్చువల్ పరికరాల పనితీరుతో సమస్యను సూచిస్తుంది.
గరిష్టంగా పరిమితం చేయబడింది - సెట్ రిసోర్స్ పరిమితి కారణంగా కొలత వ్యవధిలో ఎంత కాలం (మిసె) vCPU సిద్ధంగా ఉంది. పనితీరు వివరించలేని విధంగా తక్కువగా ఉంటే, VM సెట్టింగ్లలో ఈ కౌంటర్ విలువ మరియు CPU పరిమితిని తనిఖీ చేయడం ఉపయోగకరంగా ఉంటుంది. VMలు మీకు తెలియని పరిమితులను కలిగి ఉండవచ్చు. ఉదాహరణకు, CPU పరిమితిని సెట్ చేసిన టెంప్లేట్ నుండి VM క్లోన్ చేయబడినప్పుడు ఇది జరుగుతుంది.
వేచి ఉండండి - కొలత వ్యవధిలో VMkernel Swapతో ఆపరేషన్ కోసం vCPU ఎంతకాలం వేచి ఉంది. ఈ కౌంటర్ విలువ సున్నా కంటే ఎక్కువగా ఉంటే, VM ఖచ్చితంగా పనితీరు సమస్యలను కలిగి ఉంటుంది. RAM కౌంటర్ల గురించి కథనంలో SWAP గురించి మరింత మాట్లాడతాము.
ESXTOP
vCenterలోని పనితీరు కౌంటర్లు చారిత్రక డేటాను విశ్లేషించడానికి మంచివి అయితే, సమస్య యొక్క ఆన్లైన్ విశ్లేషణ ESXTOPలో ఉత్తమంగా చేయబడుతుంది. ఇక్కడ అన్ని విలువలు పూర్తయిన రూపంలో ప్రదర్శించబడతాయి (ఏదైనా అనువదించాల్సిన అవసరం లేదు), మరియు కనీస కొలత వ్యవధి 2 సెకన్లు.
CPUలోని ESXTOP స్క్రీన్ "c" కీతో పిలువబడుతుంది మరియు ఇలా కనిపిస్తుంది:
సౌలభ్యం కోసం, మీరు Shift-V నొక్కడం ద్వారా వర్చువల్ మెషీన్ ప్రక్రియలను మాత్రమే వదిలివేయవచ్చు.
వ్యక్తిగత VM కోర్ల కొలమానాలను వీక్షించడానికి, "e" నొక్కి, మీకు ఆసక్తి ఉన్న VM యొక్క GIDని టైప్ చేయండి (క్రింద స్క్రీన్షాట్లో 30919):
నేను డిఫాల్ట్గా ప్రదర్శించబడే నిలువు వరుసల ద్వారా క్లుప్తంగా వెళ్తాను. "f" నొక్కడం ద్వారా అదనపు నిలువు వరుసలను జోడించవచ్చు.
NWLD (ప్రపంచాల సంఖ్య) సమూహంలోని ప్రక్రియల సంఖ్య. సమూహాన్ని విస్తరించడానికి మరియు ప్రతి ప్రక్రియ కోసం కొలమానాలను చూడటానికి (ఉదాహరణకు, బహుళ-కోర్ VM యొక్క ప్రతి కోర్ కోసం), “e” నొక్కండి. సమూహంలో ఒకటి కంటే ఎక్కువ ప్రక్రియలు ఉంటే, సమూహం యొక్క కొలమానాలు వ్యక్తిగత ప్రక్రియల కొలమానాల మొత్తానికి సమానంగా ఉంటాయి.
%ఉపయోగించబడిన – ఒక ప్రక్రియ లేదా ప్రక్రియల సమూహం ఎన్ని సర్వర్ CPU చక్రాలను ఉపయోగిస్తోంది.
%RUN - కొలత వ్యవధిలో ప్రక్రియ ఎంతకాలం RUN స్థితిలో ఉంది, అనగా. ఉపయోగకరమైన పని చేసాడు. ఇది హైపర్-థ్రెడింగ్, ఫ్రీక్వెన్సీ స్కేలింగ్ మరియు సిస్టమ్ టాస్క్ల (%SYS) కోసం వెచ్చించే సమయాన్ని పరిగణనలోకి తీసుకోని %USED నుండి భిన్నంగా ఉంటుంది.
%SYS - సిస్టమ్ టాస్క్లపై గడిపిన సమయం, ఉదాహరణకు: అంతరాయ ప్రాసెసింగ్, I/O, నెట్వర్కింగ్ మొదలైనవి. VMలో I/O ఎక్కువగా ఉంటే విలువ ఎక్కువగా ఉంటుంది.
%OVRLP - VM ప్రాసెస్ నడుస్తున్న ఫిజికల్ కోర్ ఇతర ప్రక్రియల పనులపై ఎంత సమయం వెచ్చించింది.
ఈ కొలమానాలు ఒకదానికొకటి ఈ క్రింది విధంగా ఉంటాయి:
%USED = %RUN + %SYS - %OVRLP.
సాధారణంగా %USED మెట్రిక్ మరింత సమాచారంగా ఉంటుంది.
% వేచి ఉండండి - కొలత వ్యవధిలో ప్రక్రియ ఎంతకాలం వేచి ఉంది. IDLEని కలిగి ఉంటుంది.
%IDLE - కొలత వ్యవధిలో ప్రక్రియ ఎంతకాలం IDLE స్థితిలో ఉంది.
%SWPWT - కొలత వ్యవధిలో VMkernel Swapతో ఆపరేషన్ కోసం vCPU ఎంతకాలం వేచి ఉంది.
%VMWAIT - కొలత వ్యవధిలో vCPU ఈవెంట్ కోసం ఎంత సమయం వేచి ఉంది (సాధారణంగా I / O). vCenterలో ఇలాంటి కౌంటర్ లేదు. అధిక విలువలు VMలో I/Oతో సమస్యలను సూచిస్తాయి.
%WAIT = %VMWAIT + %IDLE + %SWPWT.
VM VMkernel Swapని ఉపయోగించకపోతే, పనితీరు సమస్యలను విశ్లేషించేటప్పుడు, %VMWAITని చూడటం మంచిది, ఎందుకంటే VM ఏమీ చేయని సమయాన్ని (%IDLE) ఈ మెట్రిక్ పరిగణనలోకి తీసుకోదు.
%RDY - కొలత వ్యవధిలో ప్రక్రియ ఎంతకాలం సిద్ధంగా ఉంది.
%CSTP - కొలత వ్యవధిలో ప్రక్రియ ఎంతకాలం ఆగిపోయింది.
%MLMTD - సెట్ రిసోర్స్ పరిమితి కారణంగా కొలత వ్యవధిలో ఎంతకాలం vCPU సిద్ధంగా ఉంది.
%WAIT + %RDY + %CSTP + %RUN = 100% - VM కోర్ ఎల్లప్పుడూ ఈ నాలుగు రాష్ట్రాల్లో ఒకదానిలో ఉంటుంది.
హైపర్వైజర్పై CPU
vCenter హైపర్వైజర్ కోసం CPU పనితీరు కౌంటర్లను కూడా కలిగి ఉంది, కానీ అవి ఆసక్తికరంగా ఏమీ లేవు - ఇది సర్వర్లోని అన్ని VMల కౌంటర్ల మొత్తం మాత్రమే.
సర్వర్లో CPU స్థితిని వీక్షించడానికి అత్యంత అనుకూలమైన మార్గం సారాంశం ట్యాబ్లో ఉంది:
సర్వర్ కోసం, అలాగే వర్చువల్ మెషీన్ కోసం, ప్రామాణిక అలారం ఉంది:
సర్వర్ CPUపై లోడ్ ఎక్కువగా ఉన్నప్పుడు, దానిపై నడుస్తున్న VMలు పనితీరు సమస్యలను ఎదుర్కొంటాయి.
ESXTOPలో, సర్వర్ CPU లోడ్ డేటా స్క్రీన్ పైభాగంలో ప్రదర్శించబడుతుంది. హైపర్వైజర్లకు చాలా సమాచారం లేని ప్రామాణిక CPU లోడ్తో పాటు, మరో మూడు మెట్రిక్లు ఉన్నాయి:
కోర్ యుటిఎల్(%) - భౌతిక సర్వర్ యొక్క కోర్ యొక్క లోడ్. కొలత వ్యవధిలో కెర్నల్ ఎంత సమయం పని చేస్తుందో ఈ కౌంటర్ చూపుతుంది.
PCPU UTIL(%) - హైపర్-థ్రెడింగ్ ప్రారంభించబడితే, ప్రతి భౌతిక కోర్కి రెండు థ్రెడ్లు (PCPU) ఉంటాయి. ప్రతి థ్రెడ్ ఎంతకాలం పని చేస్తుందో ఈ మెట్రిక్ చూపిస్తుంది.
PCPU వాడిన(%) - PCPU UTIL(%) వలెనే, అయితే ఫ్రీక్వెన్సీ స్కేలింగ్ను పరిగణనలోకి తీసుకుంటుంది (పవర్ను ఆదా చేయడానికి కోర్ ఫ్రీక్వెన్సీని తగ్గించడం లేదా టర్బో బూస్ట్ టెక్నాలజీ కారణంగా కోర్ ఫ్రీక్వెన్సీని పెంచడం) మరియు హైపర్-థ్రెడింగ్.
PCPU_USED% = PCPU_UTIL% * ప్రభావవంతమైన కోర్ క్లాక్ / నామినల్ కోర్ క్లాక్.
ఈ స్క్రీన్షాట్లో, కొన్ని కోర్ల కోసం, టర్బో బూస్ట్ కారణంగా, USED విలువ 100% కంటే ఎక్కువగా ఉంటుంది, ఎందుకంటే కోర్ ఫ్రీక్వెన్సీ నామమాత్రం కంటే ఎక్కువగా ఉంటుంది.
హైపర్-థ్రెడింగ్ ఎలా పరిగణనలోకి తీసుకోబడుతుందనే దాని గురించి కొన్ని మాటలు. సర్వర్ యొక్క భౌతిక కోర్ యొక్క రెండు థ్రెడ్లలో ప్రక్రియలు 100% సమయం అమలు చేయబడితే, కోర్ నామమాత్రపు ఫ్రీక్వెన్సీలో నడుస్తుంది, అప్పుడు:
- కోర్ కోసం CORE UTIL 100% ఉంటుంది,
- రెండు థ్రెడ్ల కోసం PCPU UTIL 100% ఉంటుంది,
- రెండు థ్రెడ్ల కోసం ఉపయోగించే PCPU 50% ఉంటుంది.
కొలత వ్యవధిలో రెండు థ్రెడ్లు 100% పని చేయకపోతే, థ్రెడ్లు సమాంతరంగా పనిచేసిన ఆ కాలాల్లో, కోర్ల కోసం ఉపయోగించే PCPU సగానికి తగ్గించబడుతుంది.
ESXTOP సర్వర్ CPU పవర్ ఆప్షన్లతో కూడిన స్క్రీన్ను కూడా కలిగి ఉంది. సర్వర్ శక్తి-పొదుపు సాంకేతికతలను ఉపయోగిస్తుందో లేదో ఇక్కడ మీరు చూడవచ్చు: సి-స్టేట్లు మరియు పి-స్టేట్లు. "p" కీ ద్వారా కాల్ చేయబడింది:
సాధారణ CPU పనితీరు సమస్యలు
చివరగా, నేను VM CPU పనితీరుతో సమస్యల యొక్క సాధారణ కారణాలను పరిశీలిస్తాను మరియు వాటిని పరిష్కరించడానికి చిన్న చిట్కాలను ఇస్తాను:
తగినంత కోర్ క్లాక్ లేదు. VMని మరింత శక్తివంతమైన కోర్లకు అప్గ్రేడ్ చేయడం సాధ్యం కాకపోతే, మీరు పవర్ సెట్టింగ్లను మార్చడానికి ప్రయత్నించవచ్చు, తద్వారా Turbo Boost మరింత సమర్థవంతంగా పని చేస్తుంది.
తప్పు VM పరిమాణం (చాలా ఎక్కువ/కొన్ని కోర్లు). మీరు కొన్ని కోర్లను ఉంచినట్లయితే, VM యొక్క CPUపై అధిక లోడ్ ఉంటుంది. చాలా ఉంటే, అధిక కో-స్టాప్ను పట్టుకోండి.
సర్వర్లో పెద్ద CPU ఓవర్సబ్స్క్రిప్షన్. VM ఎక్కువగా సిద్ధంగా ఉంటే, CPU ఓవర్సబ్స్క్రిప్షన్ను తగ్గించండి.
పెద్ద VMలలో NUMA టోపోలాజీ తప్పు. VM (vNUMA) ద్వారా చూసిన NUMA టోపోలాజీ తప్పనిసరిగా సర్వర్ యొక్క NUMA టోపోలాజీ (pNUMA)తో సరిపోలాలి. రోగ నిర్ధారణ మరియు ఈ సమస్యకు సాధ్యమయ్యే పరిష్కారాల గురించి, ఉదాహరణకు, పుస్తకంలో వ్రాయబడింది
నాకు CPU గురించి అంతే. ప్రశ్నలు అడగండి. తదుపరి భాగంలో నేను RAM గురించి మాట్లాడతాను.
ఉపయోగకరమైన లింకులు
మూలం: www.habr.com