Π‘Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΈ Π·Π° ΡΡŠΡ€Π²ΡŠΡ€ΠΈ Π½Π° Linux: ΠΏΠΎΠ΄Π±Ρ€Π°Π½Π° колСкция ΠΎΡ‚ ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ΠΈ инструмСнти

ΠŸΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π°ΠΌΠ΅ Π΄Π° Ρ€Π°Π·ΠΊΠ°Π·Π²Π°ΠΌΠ΅ Π·Π° инструмСнтитС Π·Π° ΠΎΡ†Π΅Π½ΠΊΠ° Π½Π° производитСлността Π½Π° CPU Π½Π° Linux машини. ДнСс Π² ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°: temci, uarch-bench, likwid, perf-tools ΠΈ llvm-mca.

ΠŸΠΎΠ²Π΅Ρ‡Π΅ Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΎΠ²Π΅:

Π‘Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΈ Π·Π° ΡΡŠΡ€Π²ΡŠΡ€ΠΈ Π½Π° Linux: ΠΏΠΎΠ΄Π±Ρ€Π°Π½Π° колСкция ΠΎΡ‚ ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ΠΈ инструмСнти
Π‘Π½ΠΈΠΌΠΊΠ° β€” Лукас Π‘Π»Π°Π·Π΅ΠΊ β€” Unsplash

temci

Π’ΠΎΠ²Π° Π΅ инструмСнт Π·Π° ΠΎΡ†Π΅Π½ΠΊΠ° Π½Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° изпълнСниС Π½Π° Π΄Π²Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ. По ΡΡŠΡ‰Π΅ΡΡ‚Π²ΠΎ, Ρ‚ΠΎΠΉ позволява Π΄Π° сС сравнят Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° изпълнСниС Π½Π° Π΄Π²Π΅ прилоТСния. ΠΠ²Ρ‚ΠΎΡ€ΡŠΡ‚ Π½Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°Ρ‚Π° Π΅ ΡΡ‚ΡƒΠ΄Π΅Π½Ρ‚ΡŠΡ‚ ΠΎΡ‚ ГСрмания ЙоханСс Π‘Π΅Ρ…Π±Π΅Ρ€Π³Π΅Ρ€, ΠΊΠΎΠΉΡ‚ΠΎ я Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΈΠ» Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° Π±Π°ΠΊΠ°Π»Π°Π²ΡŠΡ€ΡΠΊΠ° Π΄ΠΈΠΏΠ»ΠΎΠΌΠ½Π° Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΡ€Π΅Π· 2016 Π³ΠΎΠ΄ΠΈΠ½Π°. ДнСс ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ΡŠΡ‚ сС разпространява сС разпространява ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π· GNU General Public License.

ЙоханСс Π΅ искал Π΄Π° създадС инструмСнт, ΠΊΠΎΠΉΡ‚ΠΎ Π΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Ρ€Π²Π°Π½Π΅ Π½Π° производитСлността Π½Π° изчислитСлната систСма Π² ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€Π°Π½Π° срСда. Π—Π°Ρ‚ΠΎΠ²Π° Π΅Π΄Π½Π° ΠΎΡ‚ основнитС характСристики Π½Π° temci Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π΄Π° сС настрои тСстовата срСда. НапримСр, ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π½Π°ΠΌΠ΅Ρ€ΠΈ: Π΄Π° сС промСнят настройкитС Π½Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€Π° Π·Π° чСстота Π½Π° CPU, Π΄Π° сС Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Ρ‚ hyper-threading ΠΈ ΠΊΠ΅ΡˆΠΎΠ²Π΅Ρ‚Π΅ L1 ΠΈ L2, Π΄Π° сС ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈ Ρ€Π΅ΠΆΠΈΠΌΡŠΡ‚ Π½Π° Ρ‚ΡƒΡ€Π±ΠΎ Π½Π° Intel процСсоритС ΠΈ Π΄Ρ€. Π—Π° Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΈΠ½Π³Π° temci ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° инструмСнти time, perf_stat ΠΈ getrusage.

Π•Ρ‚ΠΎ ΠΊΠ°ΠΊ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°Ρ‚Π° Π² ΠΏΡŠΡ€Π²ΠΈΡ случай:

# 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 ΠΎΡ‚ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ.

Π‘Ρ€Π΅Π΄ Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ†ΠΈΡ‚Π΅ Π½Π° temci Π΅ Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° "младост". ΠŸΠΎΡ€Π°Π΄ΠΈ Ρ‚ΠΎΠ²Π° Ρ‚ΠΎΠΉ Π½Π΅ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° всички ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π½Π° Ρ…Π°Ρ€Π΄ΡƒΠ΅Ρ€Π° ΠΈ софтуСра. НапримСр, Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ сС стартира ΠΏΠΎΠ΄ macOS, Π° Π½Π° систСми с ARM процСсор някои Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π΅ са Π½Π°Π»ΠΈΡ‡Π½ΠΈ. Π’ Π±ΡŠΠ΄Π΅Ρ‰Π΅ ситуацията ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π°Π²Ρ‚ΠΎΡ€ΡŠΡ‚ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ Ρ€Π°Π·Π²ΠΈΠ²Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π° броят Π½Π° Π·Π²Π΅Π·Π΄ΠΈΡ‚Π΅ Π² GitHub постСпСнно нараства β€” ΠΏΡ€Π΅Π΄ΠΈ Π½Π΅ΠΎΡ‚Π΄Π°Π²Π½Π° temci Π΄ΠΎΡ€ΠΈ бСшС обсъТдан Π² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΡ‚Π΅ Π½Π° Hacker News.

uarch-bench

Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° Π·Π° ΠΎΡ†Π΅Π½ΠΊΠ° Π½Π° производитСлността Π½Π° нискоуровнСвитС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π° CPU, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π΅Π½Π° ΠΎΡ‚ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π° ВрСвис Даунс (Travis Downs). ΠžΡ‚ΡΠΊΠΎΡ€ΠΎ Ρ‚ΠΎΠΉ Π²ΠΎΠ΄ΠΈ своя Π±Π»ΠΎΠ³ Performance Matters Π½Π° GitHub Pages, Π² ΠΊΠΎΠΉΡ‚ΠΎ Ρ€Π°Π·ΠΊΠ°Π·Π²Π° Π·Π° инструмСнти Π·Π° Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΈΠ½Π³ ΠΈ ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с тях Π½Π΅Ρ‰Π°. ΠžΠ±Ρ‰ΠΎ Π²Π·Π΅Ρ‚ΠΎ, uarch-bench всС ΠΎΡ‰Π΅ Π΅Π΄Π²Π° Π·Π°ΠΏΠΎΡ‡Π²Π° Π΄Π° Π½Π°Π±ΠΈΡ€Π° популярност, Π½ΠΎ Π²Π΅Ρ‡Π΅ доста чСсто сС спомСнава ΠΏΠΎΠΏΠ°Π΄Π° Π² Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΈ Ρ‚Ρ€Π΅Π΄ΠΎΠ²Π΅ Π½Π° Hacker News ΠΊΠ°Ρ‚ΠΎ основСн инструмСнт Π·Π° Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΈΠ½Π³.

Uarch-bench позволява Π΄Π° сС ΠΎΡ†Π΅Π½ΠΈ производитСлността Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, скоростта Π½Π° ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΎ Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° ΠΏΠΎ почистванСто Π½Π° YMM рСгистритС. Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅ ΠΎΡ‚ Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΈΠ½Π³Π°, Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½ΠΈ ΠΎΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π°, ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈ Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»Π½ΠΎΡ‚ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π² края Π½Π° страницата.

Π’Π°ΠΆΠ½ΠΎ Π΅ Π΄Π° сС ΠΎΡ‚Π±Π΅Π»Π΅ΠΆΠΈ, Ρ‡Π΅ uarch-bench, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° temci, ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π²Π° функцията Intel Turbo Boost (която Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π° Ρ‚Π°ΠΊΡ‚ΠΎΠ²Π°Ρ‚Π° чСстота Π½Π° процСсора ΠΏΡ€ΠΈ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅), Π·Π° Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅ ΠΎΡ‚ тСстовСтС послСдоватСлни.

ВсС ΠΎΡ‰Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ Π΅ Π² Ρ€Π°Π½Π½ΠΈΡ‚Π΅ Π΅Ρ‚Π°ΠΏΠΈ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ uarch-bench няма ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π° докумСнтация, Π° Π² Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° ΠΌΡƒ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π²ΡŠΠ·Π½ΠΈΠΊΠ²Π°Ρ‚ бъговС β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, извСстни са трудности с стартиранС Π½Π° Ryzen. Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ°, ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚ сС само Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΎΠ²Π΅ Π·Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΈ x86. ΠΠ²Ρ‚ΠΎΡ€ΡŠΡ‚ ΠΎΠ±Π΅Ρ‰Π°Π²Π° Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈ ΠΏΠΎΠ²Π΅Ρ‡Π΅ функционалности Π² Π±ΡŠΠ΄Π΅Ρ‰Π΅ ΠΈ ΠΊΠ°Π½ΠΈ Π΄Π° сС ΠΏΡ€ΠΈΡΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ към Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π°.

likwid

Π’ΠΎΠ²Π° Π΅ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ инструмСнти Π·Π° ΠΎΡ†Π΅Π½ΠΊΠ° Π½Π° производитСлността Π½Π° Linux машини с процСсори Intel, AMD ΠΈ ARMv8. БъздадСн Π΅ ΠΏΠΎΠ΄ Π΅Π³ΠΈΠ΄Π°Ρ‚Π° Π½Π° Π€Π΅Π΄Π΅Ρ€Π°Π»Π½ΠΎΡ‚ΠΎ министСрство Π½Π° ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Ρ‚ΠΎ ΠΈ Π½Π°ΡƒΡ‡Π½ΠΈΡ‚Π΅ изслСдвания Π½Π° ГСрмания ΠΏΡ€Π΅Π· 2017 Π³ΠΎΠ΄ΠΈΠ½Π° ΠΈ Π΅ прСдоставСн Π² open source.

Π‘Ρ€Π΅Π΄ инструмСнтитС Π½Π° likwid ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΠΎΠ΄Ρ‡Π΅Ρ€Ρ‚Π°Π΅ΠΌ likwid-powermeter, ΠΊΠΎΠΉΡ‚ΠΎ ΠΈΠ·Π²Π΅ΠΆΠ΄Π° информация ΠΎΡ‚ RAPL рСгистритС Π·Π° консумираната мощност Π½Π° систСмата, Π° ΡΡŠΡ‰ΠΎ ΠΈ likwid-setFrequencies β€” позволяваща ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ» Π²ΡŠΡ€Ρ…Ρƒ Ρ‚Π°ΠΊΡ‚ΠΎΠ²ΠΈΡ‚Π΅ чСстоти Π½Π° процСсора. ΠŸΡŠΠ»Π½ΠΈΡΡ‚ списък ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ.

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ΡŠΡ‚ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΎΡ‚ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΈ, Π·Π°Π½ΠΈΠΌΠ°Π²Π°Ρ‰ΠΈ сС с изслСдвания Π² областта Π½Π° HPC. НапримСр, с likwid Ρ€Π°Π±ΠΎΡ‚ΠΈ Π³Ρ€ΡƒΠΏΠ° спСциалисти ΠΎΡ‚ РСгионалния изчислитСлСн Ρ†Π΅Π½Ρ‚ΡŠΡ€ Π½Π° унивСрситСта Π² Π•Ρ€Π»Π°Π½Π³Π΅Π½ β€” ΠΡŽΡ€Π½Π±Π΅Ρ€Π³ (RRZE) Π² ГСрмания. Π’Π΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ участват Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° Ρ‚ΠΎΠ·ΠΈ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ инструмСнти.

Π‘Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΈ Π·Π° ΡΡŠΡ€Π²ΡŠΡ€ΠΈ Π½Π° Linux: ΠΏΠΎΠ΄Π±Ρ€Π°Π½Π° колСкция ΠΎΡ‚ ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ΠΈ инструмСнти
Π‘Π½ΠΈΠΌΠΊΠ° β€” Clem Onojeghuo β€” Unsplash

perf-tools

Π’ΠΎΠ·ΠΈ инструмСнт Π΅ Π·Π° Π°Π½Π°Π»ΠΈΠ· Π½Π° производитСлността Π½Π° Linux ΡΡŠΡ€Π²ΡŠΡ€ΠΈ прСдстави Π‘Ρ€Π΅Π½Π΄Π°Π½ Π“Ρ€Π΅Π³ (Brendan Gregg). Π’ΠΎΠΉ Π΅ Π΅Π΄ΠΈΠ½ ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ DTrace - Π½Π° Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Π·Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΎ трасирванС Π·Π° отстраняванС Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСния Π² Ρ€Π΅Π°Π»Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅.

Π’ основата Π½Π° perf-tools стоят подсистСмитС Π½Π° ядрото perf_events ΠΈ ftrace. Π’Π΅Ρ…Π½ΠΈΡ‚Π΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΈ позволяват Π°Π½Π°Π»ΠΈΠ· Π½Π° забавянС ΠΏΡ€ΠΈ Π²Ρ…ΠΎΠ΄/ΠΈΠ·Ρ…ΠΎΠ΄ (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 ΠΏΡ€Π΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ²Π° kernel panic.

llvm-mca

Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π°, която прСдсказва ΠΊΠΎΠ»ΠΊΠΎ изчислитСлни рСсурси Ρ‰Π΅ изисква ΠΌΠ°ΡˆΠΈΠ½Π½ΠΈΡΡ‚ ΠΊΠΎΠ΄ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ CPU. Вя оцСнява Instructions Per Cycle (IPC) ΠΈ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ…Π°Ρ€Π΄ΡƒΠ΅Ρ€Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° Π΄Π°Π΄Π΅Π½ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

llvm-mca бСшС прСдставСн ΠΏΡ€Π΅Π· 2018 Π³ΠΎΠ΄ΠΈΠ½Π° Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° LLVM, ΠΊΠΎΠΉΡ‚ΠΎ сС Π·Π°Π½ΠΈΠΌΠ°Π²Π° с Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° унивСрсална систСма Π·Π° Π°Π½Π°Π»ΠΈΠ·, трансформация ΠΈ оптимизация Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ. Π˜Π·Π²Π΅ΡΡ‚Π½ΠΎ Π΅, Ρ‡Π΅ Π°Π²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ Π½Π° llvm-mca са Π²Π΄ΡŠΡ…Π½ΠΎΠ²Π΅Π½ΠΈ ΠΎΡ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π·Π° Π°Π½Π°Π»ΠΈΠ· Π½Π° производитСлността Π½Π° софтуСр IACA ΠΎΡ‚ Intel ΠΈ са сС стрСмСли Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π°Ρ‚ Π½Π΅Π³ΠΎΠ²Π° Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π°. И спорСд ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅, ΠΈΠ·Ρ…ΠΎΠ΄Π½ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ Π½Π° инструмСнта (тСхният Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΈ количСство) наистина напомнят Π½Π° IACA β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ Ρ‚ΡƒΠΊ. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π° llvm-mca ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° само AT&T-синтаксис, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ вСроятно Ρ‰Π΅ трябва Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΎΡ€ΠΈ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с Π½Π΅Π³ΠΎ.

Π—Π° ΠΊΠ°ΠΊΠ²ΠΎ пишСм Π² Π½Π°ΡˆΠΈΡ‚Π΅ Π±Π»ΠΎΠ³ΠΎΠ²Π΅ ΠΈ социални ΠΌΡ€Π΅ΠΆΠΈ:

Π‘Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΈ Π·Π° ΡΡŠΡ€Π²ΡŠΡ€ΠΈ Π½Π° Linux: ΠΏΠΎΠ΄Π±Ρ€Π°Π½Π° колСкция ΠΎΡ‚ ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ΠΈ инструмСнти Β«ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠ° ΠΌΠΎΠ΄Π΅Π» с Уолстрийт» ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ Ρ€Π°Π·Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ Π·Π° ΠΎΠ±Π»Π°ΠΊ

Π‘Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΈ Π·Π° ΡΡŠΡ€Π²ΡŠΡ€ΠΈ Π½Π° Linux: ΠΏΠΎΠ΄Π±Ρ€Π°Π½Π° колСкция ΠΎΡ‚ ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ΠΈ инструмСнти Как Π΄Π° Π·Π°Ρ‰ΠΈΡ‚ΠΈΠΌ Linux систСмата: 10 ΡΡŠΠ²Π΅Ρ‚Π°
Π‘Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΈ Π·Π° ΡΡŠΡ€Π²ΡŠΡ€ΠΈ Π½Π° Linux: ΠΏΠΎΠ΄Π±Ρ€Π°Π½Π° колСкция ΠΎΡ‚ ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ΠΈ инструмСнти ΠœΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° рисковСтС: ΠΊΠ°ΠΊ Π΄Π° Π½Π΅ Π·Π°Π³ΡƒΠ±ΠΈΡ‚Π΅ Π²Π°ΡˆΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ

Π‘Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΈ Π·Π° ΡΡŠΡ€Π²ΡŠΡ€ΠΈ Π½Π° Linux: ΠΏΠΎΠ΄Π±Ρ€Π°Π½Π° колСкция ΠΎΡ‚ ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ΠΈ инструмСнти Книги Π·Π° Ρ‚Π΅Π·ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π²Π΅Ρ‡Π΅ сС Π·Π°Π½ΠΈΠΌΠ°Π²Π°Ρ‚ с систСмно администриранС ΠΈΠ»ΠΈ Ρ‚ΠΎΠΊΡƒ-Ρ‰ΠΎ ΠΏΠ»Π°Π½ΠΈΡ€Π°Ρ‚ Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ‚
Π‘Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΈ Π·Π° ΡΡŠΡ€Π²ΡŠΡ€ΠΈ Π½Π° Linux: ΠΏΠΎΠ΄Π±Ρ€Π°Π½Π° колСкция ΠΎΡ‚ ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ΠΈ инструмСнти ΠŸΠΎΠ΄Π±ΠΎΡ€ΠΊΠ°: ΠΏΠ΅Ρ‚ ΠΊΠ½ΠΈΠ³ΠΈ ΠΈ Π΅Π΄ΠΈΠ½ курс ΠΏΠΎ ΠΌΡ€Π΅ΠΆΠΈ

Π‘Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΈ Π·Π° ΡΡŠΡ€Π²ΡŠΡ€ΠΈ Π½Π° Linux: ΠΏΠΎΠ΄Π±Ρ€Π°Π½Π° колСкция ΠΎΡ‚ ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ΠΈ инструмСнтиНиС Π² 1cloud.ru ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΠΌΠ΅ Π±Π΅Π·ΠΏΠ»Π°Ρ‚Π½Π° услуга Β«DNS-хостинг». УправлявайтС DNS записитС си Π² нашия Π΅Π΄ΠΈΠ½Π΅Π½ Π»ΠΈΡ‡Π΅Π½ ΠΊΠ°Π±ΠΈΠ½Π΅Ρ‚.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster