Հենանիշներ Linux սերվերների համար. բաց գործիքների ընտրություն

Մենք շարունակում ենք խոսել Linux մեքենաների վրա պրոցեսորի աշխատանքը գնահատելու գործիքների մասին: Այսօր նյութում՝ temci, uarch-bench, likwid, perf-tools և llvm-mca:

Ավելի շատ հենանիշներ.

Հենանիշներ Linux սերվերների համար. բաց գործիքների ընտրություն
Լուսանկարը - Լուկաս Բլաժեկ - Անջատեք

temci

Սա երկու ծրագրերի կատարման ժամանակը գնահատելու գործիք է։ Ըստ էության, այն թույլ է տալիս համեմատել երկու հավելվածների կատարման ժամանակը: Կոմունալ ծրագրի հեղինակը Գերմանիայից ժամանած ուսանող Յոհաննես Բեխբերգերն էր, ով այն մշակել է որպես իր բակալավրիատի թեզի մաս 2016թ. Այսօրվա գործիքը տարածվում է լիցենզավորված GNU Ընդհանուր հանրային լիցենզիայի ներքո:

Յոհաննեսը ցանկանում էր ստեղծել մի գործիք, որը թույլ կտա նրան չափել հաշվողական համակարգի աշխատանքը վերահսկվող միջավայրում: Հետևաբար, temci-ի հիմնական հատկանիշներից մեկը թեստային միջավայր ստեղծելու հնարավորությունն է: Օրինակ, կարելիՓոխել պրոցեսորի հաճախականության կառավարչի կարգավորումները, անջատել հիպեր threading և L1 և L2 քեշերը, անջատել տուրբո ռեժիմը Intel պրոցեսորների վրա և այլն: Հենանիշավորման համար 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

Հենանիշավորման արդյունքների հիման վրա համակարգը ստեղծում է հարմար հաշվետվություն գծապատկերներով, աղյուսակներով և գրաֆիկներով, որոնք տարբերում են տեմսին նմանատիպ լուծումներից։

Տեմչիի թերությունների մեջ առանձնանում է նրա «երիտասարդությունը»։ Սրա պատճառով նա ամեն ինչ չէ, որ աջակցվում է ապարատային և ծրագրային ապահովման կոնֆիգուրացիաներ: Օրինակ, դժվար է գործարկել macOS-ով, և որոշ գործառույթներ հասանելի չեն ARM-ի վրա հիմնված համակարգում: Ապագայում իրավիճակը կարող է փոխվել, քանի որ հեղինակը ակտիվորեն զարգացնում է նախագիծը, իսկ GitHub-ում աստղերի թիվը աստիճանաբար ավելանում է. ոչ այնքան վաղուց նույնիսկ temci-ն: քննարկվել է մեկնաբանություններում Hacker News-ում։

uarch-bench

Ցածր մակարդակի պրոցեսորի գործառույթների կատարողականը գնահատելու օգտակար ծրագիր, որը մշակվել է ինժեներ Թրևիս Դաունսի կողմից (Թրևիս Դաունս) Վերջերս նա բլոգում է Կատարման հարցեր GitHub Pages-ում, որը խոսում է չափորոշիչ գործիքների և հարակից այլ բաների մասին: Ընդհանուր առմամբ, uarch-bench-ը նոր է սկսում ժողովրդականություն ձեռք բերել, բայց դա արդեն բավականին տարածված է նշված Hacker News-ի ռեզիդենտները թեմատիկ թեմաներում՝ որպես չափորոշիչի կիրառման գործիք:

Uarch-bench-ը թույլ է տալիս գնահատել հիշողության աշխատանքը, տվյալների զուգահեռ բեռնման արագությունը և մաքրման աշխատանքը YMM գրանցում է. Ինչ տեսք ունեն ծրագրի կողմից գեներացված համեմատական ​​արդյունքները, կարելի է գտնել պաշտոնական պահոցում էջի ներքևում։

Հարկ է նշել, որ ուարխ-նստարանը, ինչպես temci, անջատում է Intel Turbo Boost ֆունկցիան (այն ավտոմատ կերպով մեծացնում է պրոցեսորի ժամացույցի արագությունը ծանրաբեռնվածության դեպքում), որպեսզի թեստի արդյունքները համապատասխանեն:

Առայժմ նախագիծը մշակման վաղ փուլում է, ուստի uarch-bench-ը չունի մանրամասն փաստաթղթեր, և դրա շահագործումը կարող է պարունակել սխալներ, օրինակ. դժվարությունները հայտնի են Ryzen-ի գործարկումով: Բացի այդ, աջակցվում են միայն x86 ճարտարապետությունների հենանիշները: Հեղինակը խոստանում է հետագայում ավելացնել ավելի շատ ֆունկցիոնալություն և հրավիրում է ձեզ միանալ մշակմանը:

հեղուկ

Սա Intel, AMD և ARMv8 պրոցեսորներով Linux մեքենաների աշխատանքը գնահատելու գործիքների հավաքածու է: Այն ստեղծվել է Գերմանիայի կրթության և հետազոտությունների դաշնային նախարարության հովանու ներքո 2017 թվականին և թողարկվել բաց կոդով:

likwid գործիքներից կարելի է առանձնացնել likwid-powermeter-ը, որը ցուցադրում է RAPL ռեգիստրներից տեղեկատվություն համակարգի կողմից սպառվող էներգիայի մասին, ինչպես նաև likwid-setFrequencies, որը թույլ է տալիս վերահսկել պրոցեսորի հաճախականությունը: Դուք կարող եք տեսնել ամբողջական ցանկը գտնել պահեստում.

Գործիքը օգտագործվում է HPC-ի հետազոտության մեջ ներգրավված ինժեներների կողմից: Օրինակ՝ likwid-ի հետ աշխատանքներ Գերմանիայի Էրլանգեն-Նյուրնբերգի համալսարանի (RRZE) տարածաշրջանային հաշվողական կենտրոնի մասնագետների խումբ: Նա նաև ակտիվ մասնակցություն է ունենում գործիքների այս հավաքածուի մշակմանը:

Հենանիշներ Linux սերվերների համար. բաց գործիքների ընտրություն
Լուսանկարը - Clem Onojeghuo- ն - Անջատեք

perf-գործիքներ

Այս գործիքը Linux սերվերների աշխատանքը վերլուծելու համար ներկայացրեց Բրենդան Գրեգ. Նա մշակողներից է DTrace — իրական ժամանակում հավելվածների վրիպազերծման դինամիկ հետագծման շրջանակ:

perf-tools-ը հիմնված է perf_events և ftrace միջուկի ենթահամակարգերի վրա: Նրանց կոմունալ ծառայությունները թույլ են տալիս վերլուծել I/O հետաձգումը (iosnoop), հետևել համակարգի կանչերի փաստարկներին (unccount, funcslower, funcgraph և functrace) և հավաքել վիճակագրություն ֆայլերի քեշում «հարվածների» վերաբերյալ (cachestat): Վերջին դեպքում հրամանն այսպիսի տեսք ունի.

# ./cachestat -t
Counting cache functions... Output every 1 seconds.
TIME HITS MISSES DIRTIES RATIO BUFFERS_MB CACHE_MB
08:28:57 415 0 0 100.0% 1 191
08:28:58 411 0 0 100.0% 1 191
08:28:59 362 97 0 78.9% 0 8
08:29:00 411 0 0 100.0% 0 9

Գործիքի շուրջ բավականին մեծ համայնք է ​​ձևավորվել (գրեթե 6 հազար աստղ GitHub-ում) Եվ կան ընկերություններ, որոնք, օրինակ, ակտիվորեն օգտագործում են perf-tools Netflix. Բայց գործիքը հետագայում մշակվում և փոփոխվում է (չնայած թարմացումները վերջերս շատ հազվադեպ են թողարկվել): Հետևաբար, դրա շահագործման մեջ կարող են սխալներ առաջանալ. հեղինակը գրում է, որ երբեմն perf-tools-ը միջուկի խուճապ է առաջացնում:

llvm-mca

Կոմունալ, որը կանխատեսում է, թե քանի հաշվողական ռեսուրսներ կպահանջվի մեքենայի կոդը տարբեր պրոցեսորների վրա: Նա գնահատում է Ցուցումներ մեկ ցիկլով (IPC) և ապարատային բեռը, որը ստեղծում է որոշակի հավելված:

llvm-mca-ն նախագծի շրջանակներում ներկայացվել է 2018թ LLVM, որը մշակում է ծրագրերի վերլուծության, վերափոխման և օպտիմալացման ունիվերսալ համակարգ։ Հայտնի է, որ llvm-mca-ի հեղինակները ոգեշնչվել են ծրագրային ապահովման կատարողականի վերլուծության լուծումից. IACA Intel-ից և ձգտել է այլընտրանք ստեղծել: Եվ ըստ օգտատերերի, գործիքի արդյունքը (դրանց դասավորությունը և քանակը) իսկապես նման է IACA-ին. օրինակ. կարելի է գտնել այստեղ. Այնուամենայնիվ, llvm-mca-ն միայն ընդունում է AT&T շարահյուսություն, այնպես որ, ամենայն հավանականությամբ, ստիպված կլինեք օգտագործել փոխարկիչներ դրա հետ աշխատելու համար:

Ինչի մասին ենք գրում մեր բլոգներում և սոցիալական ցանցերում.

Հենանիշներ Linux սերվերների համար. բաց գործիքների ընտրություն «Մատթ. Wall Street մոդելը» կամ ինչպես օպտիմալացնել ամպային ծախսերը

Հենանիշներ Linux սերվերների համար. բաց գործիքների ընտրություն Ինչպես ապահովել ձեր Linux համակարգը. 10 խորհուրդ
Հենանիշներ Linux սերվերների համար. բաց գործիքների ընտրություն Ռիսկերի նվազեցում. ինչպես չկորցնել ձեր տվյալները

Հենանիշներ Linux սերվերների համար. բաց գործիքների ընտրություն Գրքեր նրանց համար, ովքեր արդեն ներգրավված են համակարգի կառավարման մեջ կամ նոր են պատրաստվում սկսել
Հենանիշներ Linux սերվերների համար. բաց գործիքների ընտրություն Ընտրություն՝ հինգ գիրք և մեկ դասընթաց ցանցերի վերաբերյալ

Հենանիշներ Linux սերվերների համար. բաց գործիքների ընտրությունՄենք 1cloud.ru-ում առաջարկում ենք անվճար ծառայություն.DNS հոստինգ« Դուք կարող եք կառավարել DNS գրառումները մեկ անձնական հաշվի մեջ:

Source: www.habr.com

Добавить комментарий