Linux సర్వర్ల కోసం బెంచ్మార్క్లు: ఓపెన్ టూల్స్ ఎంపిక
మేము Linux మెషీన్లలో CPU పనితీరును అంచనా వేయడానికి సాధనాల గురించి మాట్లాడటం కొనసాగిస్తాము. ఈరోజు మెటీరియల్లో: temci, uarch-bench, likwid, perf-టూల్స్ మరియు llvm-mca.
ఇది రెండు ప్రోగ్రామ్ల అమలు సమయాన్ని అంచనా వేయడానికి ఒక సాధనం. ముఖ్యంగా, ఇది రెండు అప్లికేషన్ల అమలు సమయాన్ని పోల్చడానికి మిమ్మల్ని అనుమతిస్తుంది. యుటిలిటీ యొక్క రచయిత జర్మనీకి చెందిన విద్యార్థి జోహన్నెస్ బెచ్బెర్గర్, అతను 2016లో తన అండర్ గ్రాడ్యుయేట్ థీసిస్లో భాగంగా దీనిని అభివృద్ధి చేశాడు. నేడు ఒక సాధనం ద్వారా పంపిణీ చేయబడింది GNU జనరల్ పబ్లిక్ లైసెన్స్ క్రింద లైసెన్స్ పొందింది.
జోహన్నెస్ ఒక నియంత్రిత వాతావరణంలో కంప్యూటింగ్ సిస్టమ్ పనితీరును కొలవడానికి అనుమతించే ఒక సాధనాన్ని సృష్టించాలనుకున్నాడు. అందువల్ల, టెమ్సీ యొక్క ప్రధాన లక్షణాలలో ఒకటి పరీక్ష వాతావరణాన్ని ఏర్పాటు చేయగల సామర్థ్యం. ఉదాహరణకి, చెయ్యవచ్చు: CPU ఫ్రీక్వెన్సీ మేనేజర్ సెట్టింగ్లను మార్చండి, నిలిపివేయండి హైపర్-థ్రెడింగ్ మరియు L1 మరియు L2 కాష్లు, ఇంటెల్ ప్రాసెసర్లలో టర్బో మోడ్ని ఆఫ్ చేయడం మొదలైనవి. బెంచ్మార్కింగ్ కోసం temci సాధనాలను ఉపయోగిస్తుంది సమయం, perf_stat и గెట్రూసేజ్.
మొదటి సందర్భంలో యుటిలిటీ ఇలా కనిపిస్తుంది:
# compare the run times of two programs, running them each 20 times
> temci short exec "sleep 0.1" "sleep 0.2" --runs 20
Benchmark 20 times [####################################] 100%
Report for single runs
sleep 0.1 ( 20 single benchmarks)
avg_mem_usage mean = 0.000, deviation = 0.0
avg_res_set mean = 0.000, deviation = 0.0
etime mean = 100.00000m, deviation = 0.00000%
max_res_set mean = 2.1800k, deviation = 3.86455%
stime mean = 0.000, deviation = 0.0
utime mean = 0.000, deviation = 0.0
sleep 0.2 ( 20 single benchmarks)
avg_mem_usage mean = 0.000, deviation = 0.0
avg_res_set mean = 0.000, deviation = 0.0
etime mean = 200.00000m, deviation = 0.00000%
max_res_set mean = 2.1968k, deviation = 3.82530%
stime mean = 0.000, deviation = 0.0
utime mean = 0.000, deviation = 0.0
బెంచ్మార్కింగ్ ఫలితాల ఆధారంగా, సిస్టమ్ ఉత్పత్తి చేస్తుంది అనుకూలమైన నివేదిక రేఖాచిత్రాలు, పట్టికలు మరియు గ్రాఫ్లతో, ఇది temciని సారూప్య పరిష్కారాల నుండి వేరు చేస్తుంది.
టెమ్సీ యొక్క లోపాలలో, దాని "యువత" నిలుస్తుంది. దీని కారణంగా అతను ప్రతిదానికీ మద్దతు లేదు హార్డ్వేర్ మరియు సాఫ్ట్వేర్ కాన్ఫిగరేషన్లు. ఉదాహరణకు, MacOSలో అమలు చేయడం కష్టం మరియు ARM-ఆధారిత సిస్టమ్లో కొన్ని లక్షణాలు అందుబాటులో లేవు. భవిష్యత్తులో, పరిస్థితి మారవచ్చు, రచయిత ప్రాజెక్ట్ను చురుకుగా అభివృద్ధి చేస్తున్నందున, మరియు GitHub లో నక్షత్రాల సంఖ్య క్రమంగా పెరుగుతోంది - చాలా కాలం క్రితం temci కూడా వ్యాఖ్యలలో చర్చించారు హ్యాకర్ వార్తలపై.
ఇంజనీర్ ట్రావిస్ డౌన్స్ అభివృద్ధి చేసిన తక్కువ-స్థాయి CPU ఫంక్షన్ల పనితీరును అంచనా వేయడానికి ఒక యుటిలిటీ (ట్రావిస్ డౌన్స్) ఇటీవల అతను బ్లాగింగ్ చేస్తున్నాడు పనితీరు విషయాలు GitHub పేజీలలో, ఇది బెంచ్మార్కింగ్ సాధనాలు మరియు ఇతర సంబంధిత విషయాల గురించి మాట్లాడుతుంది. సాధారణంగా, uarch-బెంచ్ జనాదరణ పొందడం ప్రారంభించింది, కానీ ఇది ఇప్పటికే చాలా సాధారణం పేర్కొన్న బెంచ్మార్కింగ్ కోసం గో-టు టూల్గా నేపథ్య థ్రెడ్లలో హ్యాకర్ న్యూస్ నివాసితులు.
మెమరీ పనితీరు, సమాంతర డేటా లోడింగ్ వేగం మరియు శుభ్రపరిచే పనిని అంచనా వేయడానికి Uarch-బెంచ్ మిమ్మల్ని అనుమతిస్తుంది YMM నమోదు చేస్తుంది. ప్రోగ్రామ్ ద్వారా రూపొందించబడిన బెంచ్మార్కింగ్ ఫలితాలు ఎలా ఉంటాయో కనుగొనవచ్చు అధికారిక రిపోజిటరీలో పేజీ దిగువన.
టెమ్సీ వంటి uarch-బెంచ్, డిస్కనెక్ట్ చేస్తుంది ఇంటెల్ టర్బో బూస్ట్ ఫంక్షన్ (ఇది స్వయంచాలకంగా లోడ్ కింద ప్రాసెసర్ క్లాక్ వేగాన్ని పెంచుతుంది) తద్వారా పరీక్ష ఫలితాలు స్థిరంగా ఉంటాయి.
ప్రస్తుతానికి, ప్రాజెక్ట్ అభివృద్ధి ప్రారంభ దశలో ఉంది, కాబట్టి uarch-benchకు వివరణాత్మక డాక్యుమెంటేషన్ లేదు మరియు దాని ఆపరేషన్ బగ్లను కలిగి ఉండవచ్చు - ఉదాహరణకు, కష్టాలు తెలుస్తాయి రైజెన్లో ప్రారంభించడంతో. అలాగే, x86 ఆర్కిటెక్చర్ల బెంచ్మార్క్లకు మాత్రమే మద్దతు ఉంది. భవిష్యత్తులో మరిన్ని కార్యాచరణలను జోడిస్తానని రచయిత హామీ ఇచ్చారు మరియు అభివృద్ధిలో చేరమని మిమ్మల్ని ఆహ్వానిస్తున్నారు.
ఇది Intel, AMD మరియు ARMv8 ప్రాసెసర్లతో Linux మెషీన్ల పనితీరును అంచనా వేయడానికి సాధనాల సమితి. ఇది 2017లో జర్మన్ ఫెడరల్ మినిస్ట్రీ ఆఫ్ ఎడ్యుకేషన్ అండ్ రీసెర్చ్ ఆధ్వర్యంలో సృష్టించబడింది మరియు ఓపెన్ సోర్స్లోకి విడుదల చేయబడింది.
likwid సాధనాల్లో, మేము likwid-powermeterని హైలైట్ చేయవచ్చు, ఇది సిస్టమ్ ద్వారా వినియోగించబడే శక్తి గురించి RAPL రిజిస్టర్ల నుండి సమాచారాన్ని ప్రదర్శిస్తుంది, అలాగే ప్రాసెసర్ ఫ్రీక్వెన్సీని నియంత్రించడానికి మిమ్మల్ని అనుమతించే likwid-setFrequencies. మీరు పూర్తి జాబితాను చూడవచ్చు రిపోజిటరీలో కనుగొనండి.
సాధనం HPC పరిశోధనలో పాల్గొన్న ఇంజనీర్లచే ఉపయోగించబడుతుంది. ఉదాహరణకు, likwid తో работает జర్మనీలోని యూనివర్శిటీ ఆఫ్ ఎర్లాంజెన్-నురేమ్బెర్గ్ (RRZE) యొక్క ప్రాంతీయ కంప్యూటింగ్ సెంటర్ నుండి నిపుణుల బృందం. ఈ సాధనాల సమితి అభివృద్ధిలో ఆమె కూడా చురుకుగా పాల్గొంటుంది.
Linux సర్వర్ల పనితీరును విశ్లేషించడానికి ఈ సాధనం సమర్పించిన బ్రెండన్ గ్రెగ్. అతను డెవలపర్లలో ఒకడు DTrace — నిజ సమయంలో అప్లికేషన్లను డీబగ్గింగ్ చేయడానికి డైనమిక్ ట్రేసింగ్ ఫ్రేమ్వర్క్.
perf-tools perf_events మరియు ftrace కెర్నల్ సబ్సిస్టమ్లపై ఆధారపడి ఉంటుంది. I/O లేటెన్సీ (iosnoop), సిస్టమ్ కాల్ ఆర్గ్యుమెంట్లను ట్రాక్ చేయడానికి (అన్కౌంట్, ఫంక్స్లోవర్, ఫంక్గ్రాఫ్ మరియు ఫంక్ట్రేస్) మరియు ఫైల్ కాష్ (క్యాచెస్టాట్)లో “హిట్ల”పై గణాంకాలను సేకరించడానికి వారి యుటిలిటీలు మిమ్మల్ని అనుమతిస్తాయి. తరువాతి సందర్భంలో, ఆదేశం ఇలా కనిపిస్తుంది:
పరికరం చుట్టూ చాలా పెద్ద సంఘం ఏర్పడింది (GitHubలో దాదాపు 6 వేల నక్షత్రాలు) మరియు ఉదాహరణకు, పెర్ఫ్-టూల్స్ను చురుకుగా ఉపయోగించే కంపెనీలు ఉన్నాయి నెట్ఫ్లిక్స్. కానీ సాధనం మరింత అభివృద్ధి చేయబడుతోంది మరియు సవరించబడుతోంది (అయితే నవీకరణలు ఇటీవల చాలా అరుదుగా విడుదల చేయబడ్డాయి). అందువల్ల, దాని ఆపరేషన్లో లోపాలు సంభవించవచ్చు - కొన్నిసార్లు perf-టూల్స్ కెర్నల్ భయాందోళనలకు కారణమవుతాయని రచయిత వ్రాశారు.
వివిధ CPUలలో మెషిన్ కోడ్కి ఎన్ని కంప్యూటింగ్ వనరులు అవసరమో అంచనా వేసే యుటిలిటీ. ఆమె మూల్యాంకనం చేస్తుంది ప్రతి చక్రానికి సూచనలు (IPC) మరియు నిర్దిష్ట అప్లికేషన్ ఉత్పత్తి చేసే హార్డ్వేర్పై లోడ్.
ప్రాజెక్ట్లో భాగంగా llvm-mca 2018లో ప్రదర్శించబడింది ఎల్ఎల్విఎం, ఇది ప్రోగ్రామ్ల విశ్లేషణ, పరివర్తన మరియు ఆప్టిమైజేషన్ కోసం సార్వత్రిక వ్యవస్థను అభివృద్ధి చేస్తోంది. llvm-mca రచయితలు సాఫ్ట్వేర్ పనితీరును విశ్లేషించడానికి ఒక పరిష్కారం ద్వారా ప్రేరణ పొందారని తెలిసింది. ఇంటెల్ నుండి IACA మరియు ప్రత్యామ్నాయాన్ని రూపొందించాలని కోరింది. మరియు వినియోగదారుల ప్రకారం, సాధనం యొక్క అవుట్పుట్ (వాటి లేఅవుట్ మరియు పరిమాణం) నిజంగా IACAని పోలి ఉంటుంది - ఉదాహరణ ఇక్కడ చూడవచ్చు. అయితే, llvm-mca మాత్రమే అంగీకరిస్తుంది AT&T సింటాక్స్, కాబట్టి మీరు దానితో పనిచేయడానికి ఎక్కువగా కన్వర్టర్లను ఉపయోగించాల్సి ఉంటుంది.
మా బ్లాగులు మరియు సోషల్ నెట్వర్క్లలో మనం ఏమి వ్రాస్తాము: