Nîşaneyên ji bo serverên Linux: Hilbijartinek amûrên vekirî

Em berdewam dikin ku li ser amûrên ji bo nirxandina performansa CPU li ser makîneyên Linux-ê biaxivin. Îro di materyalê de: temci, uarch-bench, likwid, perf-tools û llvm-mca.

Zêdetir pîvan:

Nîşaneyên ji bo serverên Linux: Hilbijartinek amûrên vekirî
Фото - Lukas Blazek - Rakin

temci

Ev amûrek ji bo texmînkirina dema pêkanîna du bernameyan e. Di bingeh de, ew dihêle hûn dema pêkanîna du serlêdanan bidin ber hev. Nivîskarê karûbar xwendekarek ji Almanya, Johannes Bechberger bû, ku ew wekî beşek ji teza xwe ya lîsansê di 2016 de pêşxist. Amûra îroyîn belav kirin ji hêla di bin Lîsansa Giştî ya Giştî ya GNU de destûrdar e.

Johannes dixwest ku amûrek biafirîne ku destûrê bide wî ku performansa pergala komputerê di hawîrdorek kontrolkirî de bipîve. Ji ber vê yekê, yek ji taybetmendiyên sereke yên temci kapasîteya sazkirina jîngehek ceribandinê ye. Bo nimûne, dikare: mîhengên rêveberê frekansa CPU biguherînin, neçalak bikin hîper threading û kaşên L1 û L2, moda turbo li ser pêvajoyên Intel-ê qut bikin, hwd. Ji bo pîvandinê temci amûran bikar tîne dem, perf_stat и getrusage.

Ev e ku karûbar di doza yekem de xuya dike:

# 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

Li ser bingeha encamên pîvandinê, pergalê diafirîne rapora musaît bi diagram, tablo û grafîkan, ku temci ji çareseriyên wekhev cuda dike.

Di nav kêmasiyên temcî de “ciwanî”ya wê derdikeve pêş. Ji ber vê yekê ew her tişt nayê piştgirî kirin veavakirina hardware û nermalavê. Mînakî, xebitandina li ser macOS-ê dijwar e, û hin taybetmendî li ser pergalek ARM-based tune ne. Di pêşerojê de, dibe ku rewş biguhere, ji ber ku nivîskar bi aktîvî proje pêş dixe, û hejmara stêrên li ser GitHub hêdî hêdî zêde dibe - ne ewqas zû berê temci jî di şîroveyan de nîqaş kirin li ser Hacker News.

uarch-bench

Karûbarek ji bo nirxandina performansa fonksiyonên CPU-a-asta nizm, ku ji hêla endezyar Travis Downs ve hatî pêşve xistin (Travis Downs). Di van demên dawî de ew bloggeriyê dike Pirsên Performansê li ser Rûpelên GitHub, ku li ser amûrên pîvandinê û tiştên din ên têkildar diaxive. Bi gelemperî, uarch-bench nû dest bi populerbûnê dike, lê ew jixwe pir gelemperî ye behs kirin niştecîhên Hacker News di mijarên tematîk de wekî amûrek ji bo pîvandinê.

Uarch-bench dihêle hûn performansa bîranînê, leza barkirina daneya paralel û xebata paqijkirinê binirxînin YMM qeyd dike. Encamên pîvandinê yên ku ji hêla bernameyê ve têne hilberandin çawa xuya dikin, têne dîtin di depoya fermî de li binê rûpelê.

Hêjayî gotinê ye ku uarch-bench, mîna temci, asteng dike Fonksiyona Intel Turbo Boost (ew bixweber leza demjimêra pêvajoyê ya di bin barkirinê de zêde dike) da ku encamên testê hevgirtî bin.

Heya nuha, proje di qonaxên destpêkê yên pêşkeftinê de ye, ji ber vê yekê uarch-bench xwedan belgeyên hûrgulî nîn e, û dibe ku operasyona wê xeletiyan hebe - mînakî, zehmetî têne zanîn bi destpêkirina li ser Ryzen. Di heman demê de, tenê pîvanên ji bo mîmariyên x86 têne piştgirî kirin. Nivîskar soz dide ku di pêşerojê de bêtir fonksiyonê zêde bike û we vedixwîne ku hûn beşdarî pêşveçûnê bibin.

herrik

Ev komek amûrek e ku ji bo nirxandina performansa makîneyên Linux-ê bi pêvajoyên Intel, AMD û ARMv8 re ye. Ew di sala 2017-an de di bin banê Wezareta Perwerde û Lêkolînê ya Federal a Alman de hate afirandin û di çavkaniya vekirî de hate berdan.

Di nav amûrên likwid de, em dikarin likwid-powermeter ronî bikin, ku agahdariya ji qeydên RAPL di derheqê hêza ku ji hêla pergalê ve tê vexwarin nîşan dide, û her weha likwid-setFrequencies, ku dihêle hûn frekansa pêvajoyê kontrol bikin. Hûn dikarin navnîşa tevahî bibînin di depoyê de bibînin.

Amûr ji hêla endezyarên ku di lêkolîna HPC-ê de beşdar in tê bikar anîn. Mînakî, bi likwid berbiçav komek pisporên Navenda Kompîturê ya Herêmî ya Zanîngeha Erlangen-Nurnberg (RRZE) li Elmanyayê. Ew jî di pêşdebirina vê koma amûran de bi awayekî aktîf cih digire.

Nîşaneyên ji bo serverên Linux: Hilbijartinek amûrên vekirî
Фото - Clem Onojeghuo - Rakin

perf-amûrên

Ev amûr ji bo analîzkirina performansa serverên Linux danasîn Brendan Gregg. Ew yek ji pêşdebiran e DTrace - çarçoveyek şopandina dînamîkî ya ji bo rakirina sepanan di wextê rast de.

perf-tools li ser perf_events û binepergalên kernelê ftrace ye. Karûbarên wan dihêle hûn derengiya I/O (iosnoop) analîz bikin, argumanên banga pergalê bişopînin (nehesab, funcslower, funcgraph û functrace) û statîstîkên li ser "lêdan" di kaşê pelê de (cachestat) berhev bikin. Di rewşa paşîn de, ferman bi vî rengî xuya dike:

# ./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

Civakek pir mezin li dora amûrê ava bûye (hema hema 6 hezar stêrk li ser GitHub). Û şîrket hene ku bi awayekî çalak perf-amûran bikar tînin, mînakî Netflix. Lê amûr hê bêtir pêşdebir û guheztin (her çend nûvekirin di van demên dawî de pir kêm têne berdan). Ji ber vê yekê, dibe ku di xebata wê de xeletî çêbibin - nivîskar dinivîse ku carinan amûrên perf dibe sedema panîkê kernel.

llvm-mca

Karûbarek ku pêşbîn dike ka çend koda makîneya çavkaniyên hesabker dê li ser CPU-yên cihêreng hewce bike. Wê dinirxîne Talîmatên Per Cycle (CPI) û barkirina li ser hardware ku serîlêdanek taybetî çêdike.

llvm-mca di sala 2018 de wekî beşek projeyê hate pêşkêş kirin LLVM, ku ji bo analîz, veguherîn û xweşbînkirina bernameyan pergalek gerdûnî pêş dixe. Tê zanîn ku nivîskarên llvm-mca ji çareseriyek ji bo analîzkirina performansa nermalavê îlham girtin. IACA ji Intel û xwest ku alternatîfek çêbikin. Û li gorî bikarhêneran, hilberîna amûrê (reng û hêjahiya wan) bi rastî dişibihe IACA - mînak dikare li vir were dîtin. Lêbelê, llvm-mca tenê qebûl dike Hevoksaziya AT&T, ji ber vê yekê hûn ê bi îhtîmalek mezin neçar in ku veguherîneran bikar bînin da ku pê re bixebitin.

Tiştê ku em li ser blog û torên xwe yên civakî dinivîsin:

Nîşaneyên ji bo serverên Linux: Hilbijartinek amûrên vekirî "Hesîr. Modela Wall Street" an meriv çawa lêçûnên ewr xweşbîn dike

Nîşaneyên ji bo serverên Linux: Hilbijartinek amûrên vekirî Meriv çawa pergala xweya Linux-ê ewle dike: 10 serişte
Nîşaneyên ji bo serverên Linux: Hilbijartinek amûrên vekirî Kêmkirina rîskê: meriv çawa daneyên xwe winda nake

Nîşaneyên ji bo serverên Linux: Hilbijartinek amûrên vekirî Pirtûkên ji bo kesên ku berê di rêveberiya pergalê de ne an jî tenê plan dikin ku dest pê bikin
Nîşaneyên ji bo serverên Linux: Hilbijartinek amûrên vekirî Hilbijartin: pênc pirtûk û qursek li ser torê

Nîşaneyên ji bo serverên Linux: Hilbijartinek amûrên vekirîEm li 1cloud.ru karûbarek belaş pêşkêşî dikin "DNS hosting" Hûn dikarin tomarên DNS-ê di yek hesabek kesane de birêve bibin.

Source: www.habr.com

Add a comment