Π Π΅ΠΏΠ΅Ρ€ΠΈ Π·Π° сСрвСри Линукс: ΠΈΠ·Π±ΠΎΡ€ Π½Π° ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ΠΈ Π°Π»Π°Ρ‚ΠΊΠΈ

ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΡƒΠ²Π°ΠΌΠ΅ Π΄Π° Π·Π±ΠΎΡ€ΡƒΠ²Π°ΠΌΠ΅ Π·Π° Π°Π»Π°Ρ‚ΠΊΠΈ Π·Π° ΠΏΡ€ΠΎΡ†Π΅Π½ΠΊΠ° Π½Π° пСрформанситС Π½Π° процСсорот Π½Π° ΠΌΠ°ΡˆΠΈΠ½ΠΈΡ‚Π΅ со Linux. ДСнСс Π²ΠΎ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»ΠΎΡ‚: temci, uarch-bench, likwid, perf-tools ΠΈ llvm-mca.

ПовСќС ΠΎΠ΄Ρ€Π΅Π΄Π½ΠΈΡ†ΠΈ:

Π Π΅ΠΏΠ΅Ρ€ΠΈ Π·Π° сСрвСри Линукс: ΠΈΠ·Π±ΠΎΡ€ Π½Π° ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ΠΈ Π°Π»Π°Ρ‚ΠΊΠΈ
Π€ΠΎΡ‚ΠΎ - Лукас Π‘Π»Π°ΠΆΠ΅ΠΊ - РаспрснСтС

Ρ‚Π΅ΠΌΡ†ΠΈ

Ова Π΅ Π°Π»Π°Ρ‚ΠΊΠ° Π·Π° ΠΏΡ€ΠΎΡ†Π΅Π½ΠΊΠ° Π½Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π½Π° ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅ Π½Π° Π΄Π²Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ. Π’ΠΎ ΡΡƒΡˆΡ‚ΠΈΠ½Π°, Ρ‚ΠΎΠ° Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° Π΄Π° Π³ΠΎ спорСдитС Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π½Π° ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅ Π½Π° Π΄Π²Π΅ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ. Автор Π½Π° Π°Π»Π°Ρ‚ΠΊΠ°Ρ‚Π° бСшС студСнтот ΠΎΠ΄ Π“Π΅Ρ€ΠΌΠ°Π½ΠΈΡ˜Π°, ΠˆΠΎΡ…Π°Π½Π΅Ρ Π‘Π΅Ρ…Π±Π΅Ρ€Π³Π΅Ρ€, кој Π³ΠΎ ΠΈΠ·Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΊΠ°ΠΊΠΎ Π΄Π΅Π» ΠΎΠ΄ ΡΠ²ΠΎΡ˜Π°Ρ‚Π° додипломска Ρ‚Π΅Π·Π° Π²ΠΎ 2016 Π³ΠΎΠ΄ΠΈΠ½Π°. Π”Π΅Π½Π΅ΡˆΠ½Π° Π°Π»Π°Ρ‚ΠΊΠ° дистрибуирани ΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Ρ†ΠΈΡ€Π°Π½ ΠΏΠΎΠ΄ GNU General Public License.

ΠˆΠΎΡ…Π°Π½ΠΈΡ сакашС Π΄Π° создадС Π°Π»Π°Ρ‚ΠΊΠ° која ќС ΠΌΡƒ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠΈ Π΄Π° Π³ΠΈ ΠΌΠ΅Ρ€ΠΈ пСрформанситС Π½Π° ΠΊΠΎΠΌΠΏΡ˜ΡƒΡ‚Π΅Ρ€ΡΠΊΠΈΠΎΡ‚ систСм Π²ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€Π°Π½Π° срСдина. Π—Π°Ρ‚ΠΎΠ°, Π΅Π΄Π½Π° ΠΎΠ΄ Π³Π»Π°Π²Π½ΠΈΡ‚Π΅ карактСристики Π½Π° temci Π΅ способноста Π΄Π° сС постави тСст срСдина. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€, нСкој ΠΌΠΎΠΆΠ΅ Π΄Π°: смСнСтС Π³ΠΈ поставкитС Π·Π° ΡƒΠΏΡ€Π°Π²ΡƒΠ²Π°ΡšΠ΅ со Ρ„Ρ€Π΅ΠΊΠ²Π΅Π½Ρ†ΠΈΡ˜Π°Ρ‚Π° Π½Π° процСсорот, ΠΎΠ½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ…ΠΈΠΏΠ΅Ρ€-нишки ΠΈ 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

Π’Ρ€Π· основа Π½Π° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅ ΠΎΠ΄ Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΈΠ½Π³ΠΎΡ‚, систСмот Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° ΡƒΠ΄ΠΎΠ±Π΅Π½ ΠΈΠ·Π²Π΅ΡˆΡ‚Π°Ρ˜ со Π΄ΠΈΡ˜Π°Π³Ρ€Π°ΠΌΠΈ, Ρ‚Π°Π±Π΅Π»ΠΈ ΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ½ΠΈ, ΡˆΡ‚ΠΎ Π³ΠΈ Ρ€Π°Π·Π»ΠΈΠΊΡƒΠ²Π° temci ΠΎΠ΄ слични Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ˜Π°.

ΠœΠ΅Ρ“Ρƒ нСдостатоцитС Π½Π° Ρ‚Π΅ΠΌΡ†ΠΈ, сС ΠΈΠ·Π΄Π²ΠΎΡ˜ΡƒΠ²Π° Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° β€žΠΌΠ»Π°Π΄ΠΎΡΡ‚β€œ. ΠŸΠΎΡ€Π°Π΄ΠΈ ΠΎΠ²Π° Ρ‚ΠΎΡ˜ Π½Π΅ Π΅ сС ΠΏΠΎΠ΄Π΄Ρ€ΠΆΠ°Π½ΠΎ хардвСрски ΠΈ софтвСрски ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚Π΅ΡˆΠΊΠΎ Π΅ Π΄Π° сС Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π° macOS, Π° Π½Π΅ΠΊΠΎΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π΅ сС достапни Π½Π° систСм Π±Π°Π·ΠΈΡ€Π°Π½ Π½Π° ARM. Π’ΠΎ ΠΈΠ΄Π½ΠΈΠ½Π°, ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ, бидСјќи Π°Π²Ρ‚ΠΎΡ€ΠΎΡ‚ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ Π³ΠΎ Ρ€Π°Π·Π²ΠΈΠ²Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚, Π° Π±Ρ€ΠΎΡ˜ΠΎΡ‚ Π½Π° Ρ•Π²Π΅Π·Π΄ΠΈ Π½Π° GitHub постСпСно сС Π·Π³ΠΎΠ»Π΅ΠΌΡƒΠ²Π° - Π½Π΅ Ρ‚ΠΎΠ»ΠΊΡƒ ΠΎΠ΄Π°ΠΌΠ½Π° Π΄ΡƒΡ€ΠΈ ΠΈ temci дискутирано Π²ΠΎ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΡ‚Π΅ Π½Π° Hacker News.

Π°Ρ€Ρ…-ΠΊΠ»ΡƒΠΏΠ°

УслуТна Π°Π»Π°Ρ‚ΠΊΠ° Π·Π° Π΅Π²Π°Π»ΡƒΠ°Ρ†ΠΈΡ˜Π° Π½Π° пСрформанситС Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ Π½Π° процСсорот Π½Π° ниско Π½ΠΈΠ²ΠΎ, Ρ€Π°Π·Π²ΠΈΠ΅Π½Π° ΠΎΠ΄ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΎΡ‚ ВрСвис Даунс (ВрСвис Даунс). НСодамна Π±Π»ΠΎΠ³ΠΈΡ€Π° ΠŸΡ€Π°ΡˆΠ°ΡšΠ° Π½Π° пСрформанситС Π½Π° GitHub Pages, кој Π·Π±ΠΎΡ€ΡƒΠ²Π° Π·Π° Π°Π»Π°Ρ‚ΠΊΠΈΡ‚Π΅ Π·Π° Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΈΠ½Π³ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ сродни Ρ€Π°Π±ΠΎΡ‚ΠΈ. Π’ΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ, uarch-ΠΊΠ»ΡƒΠΏΠ°Ρ‚Π° ΡˆΡ‚ΠΎΡ‚ΡƒΠΊΡƒ ΠΏΠΎΡ‡Π½ΡƒΠ²Π° Π΄Π° сС Π·Π΄ΠΎΠ±ΠΈΠ²Π° со популарност, Π½ΠΎ вСќС Π΅ доста чСста појава спомСнати ΠΆΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ Π½Π° Hacker News Π²ΠΎ тСматски нишки ΠΊΠ°ΠΊΠΎ Π°Π»Π°Ρ‚ΠΊΠ° Π·Π° Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°ΡšΠ΅.

Uarch-bench Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° Π΄Π° Π³ΠΈ ΠΎΡ†Π΅Π½ΠΈΡ‚Π΅ пСрформанситС Π½Π° ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π°Ρ‚Π°, ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½Π°Ρ‚Π° Π±Ρ€Π·ΠΈΠ½Π° Π½Π° Π²Ρ‡ΠΈΡ‚ΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈΡ‚Π΅ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° Ρ‡ΠΈΡΡ‚Π΅ΡšΠ΅Ρ‚ΠΎ YMM рСгистри. МоТС Π΄Π° сС најдС ΠΊΠ°ΠΊΠΎ ΠΈΠ·Π³Π»Π΅Π΄Π°Π°Ρ‚ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅ ΠΎΠ΄ Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΈΠ½Π³ΠΎΡ‚ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½ΠΈ ΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° Π²ΠΎ ΠΎΡ„ΠΈΡ†ΠΈΡ˜Π°Π»Π½ΠΎΡ‚ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚Π΅ Π½Π° Π΄Π½ΠΎΡ‚ΠΎ Π½Π° страницата.

Π’Ρ€Π΅Π΄ΠΈ Π΄Π° сС Π½Π°ΠΏΠΎΠΌΠ΅Π½Π΅ Π΄Π΅ΠΊΠ° Π°Ρ€Ρ…-ΠΊΠ»ΡƒΠΏΠ°Ρ‚Π°, ΠΊΠ°ΠΊΠΎ Ρ‚Π΅ΠΌΡ†ΠΈ, ΠΎΠ½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° Π€ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π°Ρ‚Π° Intel Turbo Boost (автоматски ја Π·Π³ΠΎΠ»Π΅ΠΌΡƒΠ²Π° Π±Ρ€Π·ΠΈΠ½Π°Ρ‚Π° Π½Π° часовникот Π½Π° процСсорот ΠΏΡ€ΠΈ ΠΎΠΏΡ‚ΠΎΠ²Π°Ρ€ΡƒΠ²Π°ΡšΠ΅), Ρ‚Π°ΠΊΠ° ΡˆΡ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅ ΠΎΠ΄ тСстот сС конзистСнтни.

ЗасСга, ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ Π΅ Π²ΠΎ Ρ€Π°Π½Π° Ρ„Π°Π·Π° Π½Π° Ρ€Π°Π·Π²ΠΎΡ˜, Ρ‚Π°ΠΊΠ° ΡˆΡ‚ΠΎ uarch-bench Π½Π΅ΠΌΠ° Π΄Π΅Ρ‚Π°Π»Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π°, Π° Π½Π΅Π³ΠΎΠ²ΠΎΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ΡšΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° содрТи Π³Ρ€Π΅ΡˆΠΊΠΈ - Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚Π΅ΡˆΠΊΠΎΡ‚ΠΈΠΈΡ‚Π΅ сС ΠΏΠΎΠ·Π½Π°Ρ‚ΠΈ со Π»Π°Π½ΡΠΈΡ€Π°ΡšΠ΅ Π½Π° Ryzen. Π˜ΡΡ‚ΠΎ Ρ‚Π°ΠΊΠ°, ΠΏΠΎΠ΄Π΄Ρ€ΠΆΠ°Π½ΠΈ сС само Ρ€Π΅ΠΏΠ΅Ρ€ΠΈ Π·Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΈ x86. Авторот Π²Π΅Ρ‚ΡƒΠ²Π° Π΄Π΅ΠΊΠ° ќС Π΄ΠΎΠ΄Π°Π΄Π΅ повСќС функционалност Π²ΠΎ ΠΈΠ΄Π½ΠΈΠ½Π° ΠΈ Π²Π΅ ΠΏΠΎΠΊΠ°Π½ΡƒΠ²Π° Π΄Π° сС ΠΏΡ€ΠΈΠΊΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Π½Π° Ρ€Π°Π·Π²ΠΎΡ˜ΠΎΡ‚.

тСчност

Ова Π΅ Π·Π±ΠΈΡ€ Π½Π° Π°Π»Π°Ρ‚ΠΊΠΈ Π·Π° ΠΏΡ€ΠΎΡ†Π΅Π½ΠΊΠ° Π½Π° пСрформанситС Π½Π° Linux ΠΌΠ°ΡˆΠΈΠ½ΠΈΡ‚Π΅ со процСсори Intel, AMD ΠΈ ARMv8. Π‘ΠΎΠ·Π΄Π°Π΄Π΅Π½ Π΅ ΠΏΠΎΠ΄ покровитСлство Π½Π° гСрманското Π‘ΠΎΡ˜ΡƒΠ·Π½ΠΎ ΠœΠΈΠ½ΠΈΡΡ‚Π΅Ρ€ΡΡ‚Π²ΠΎ Π·Π° ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΈΡΡ‚Ρ€Π°ΠΆΡƒΠ²Π°ΡšΠ΅ Π²ΠΎ 2017 Π³ΠΎΠ΄ΠΈΠ½Π° ΠΈ ΠΏΡƒΡˆΡ‚Π΅Π½ Π²ΠΎ ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄.

ΠœΠ΅Ρ“Ρƒ Π°Π»Π°Ρ‚ΠΊΠΈΡ‚Π΅ likwid, ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° Π³ΠΈ истакнСмС likwid-powermeter, кој ΠΏΡ€ΠΈΠΊΠ°ΠΆΡƒΠ²Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ΄ RAPL рСгистритС Π·Π° Π΅Π½Π΅Ρ€Π³ΠΈΡ˜Π°Ρ‚Π° ΡˆΡ‚ΠΎ ја Ρ‚Ρ€ΠΎΡˆΠΈ систСмот, ΠΊΠ°ΠΊΠΎ ΠΈ likwid-setFrequencies, ΡˆΡ‚ΠΎ Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° Π΄Π° ја ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€Π°Ρ‚Π΅ Ρ„Ρ€Π΅ΠΊΠ²Π΅Π½Ρ†ΠΈΡ˜Π°Ρ‚Π° Π½Π° процСсорот. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ја Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΏΠ»Π΅Ρ‚Π½Π°Ρ‚Π° листа Π½Π°Ρ˜Π΄Π΅Ρ‚Π΅ Π²ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚Π΅Ρ‚ΠΎ.

Алатката ја користат ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΈ Π²ΠΊΠ»ΡƒΡ‡Π΅Π½ΠΈ Π²ΠΎ ΠΈΡΡ‚Ρ€Π°ΠΆΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° HPC. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€, со likwid Ρ€Π°Π±ΠΎΡ‚ΠΈ Π³Ρ€ΡƒΠΏΠ° ΡΠΏΠ΅Ρ†ΠΈΡ˜Π°Π»ΠΈΡΡ‚ΠΈ ΠΎΠ΄ Π Π΅Π³ΠΈΠΎΠ½Π°Π»Π½ΠΈΠΎΡ‚ ΠΊΠΎΠΌΠΏΡ˜ΡƒΡ‚Π΅Ρ€ΡΠΊΠΈ Ρ†Π΅Π½Ρ‚Π°Ρ€ Π½Π° Π£Π½ΠΈΠ²Π΅Ρ€Π·ΠΈΡ‚Π΅Ρ‚ΠΎΡ‚ Π²ΠΎ Π•Ρ€Π»Π°Π½Π³Π΅Π½-НирнбСрг (RRZE) Π²ΠΎ Π“Π΅Ρ€ΠΌΠ°Π½ΠΈΡ˜Π°. Π’Π°Π°, исто Ρ‚Π°ΠΊΠ°, Π·Π΅ΠΌΠ° Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ учСство Π²ΠΎ Ρ€Π°Π·Π²ΠΎΡ˜ΠΎΡ‚ Π½Π° овој сСт Π½Π° Π°Π»Π°Ρ‚ΠΊΠΈ.

Π Π΅ΠΏΠ΅Ρ€ΠΈ Π·Π° сСрвСри Линукс: ΠΈΠ·Π±ΠΎΡ€ Π½Π° ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ΠΈ Π°Π»Π°Ρ‚ΠΊΠΈ
Π€ΠΎΡ‚ΠΎ - КлСм ΠžΠ½ΠΎΡ˜Π΅Π³ΡƒΠΎ - РаспрснСтС

ΠΏΠ΅Ρ€Ρ„-Π°Π»Π°Ρ‚ΠΊΠΈ

Оваа Π°Π»Π°Ρ‚ΠΊΠ° Π·Π° Π°Π½Π°Π»ΠΈΠ·Π° Π½Π° пСрформанситС Π½Π° Linux сСрвСритС Π²ΠΎΠ²Π΅Π΄Π΅Π½ΠΎ Π‘Ρ€Π΅Π½Π΄Π°Π½ Π“Ρ€Π΅Π³. Вој Π΅ Π΅Π΄Π΅Π½ ΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ 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). И ΠΈΠΌΠ° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΊΠΎΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ користат ΠΏΠ΅Ρ€Ρ„-Π°Π»Π°Ρ‚ΠΊΠΈ, Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Netflix. Но, Π°Π»Π°Ρ‚ΠΊΠ°Ρ‚Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ сС Ρ€Π°Π·Π²ΠΈΠ²Π° ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€Π° (ΠΈΠ°ΠΊΠΎ Π°ΠΆΡƒΡ€ΠΈΡ€Π°ΡšΠ°Ρ‚Π° сС ΠΎΠ±Ρ˜Π°Π²ΡƒΠ²Π°Π°Ρ‚ доста Ρ€Π΅Ρ‚ΠΊΠΎ Π²ΠΎ послСдно Π²Ρ€Π΅ΠΌΠ΅). Π—Π°Ρ‚ΠΎΠ°, ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΠΎΡ˜Π°Π²Π°Ρ‚ Π³Ρ€Π΅ΡˆΠΊΠΈ Π²ΠΎ Π½Π΅Π³ΠΎΠ²ΠΎΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ΡšΠ΅ - Π°Π²Ρ‚ΠΎΡ€ΠΎΡ‚ ΠΏΠΈΡˆΡƒΠ²Π° Π΄Π΅ΠΊΠ° понСкогаш perf-tools ΠΏΡ€Π΅Π΄ΠΈΠ·Π²ΠΈΠΊΡƒΠ²Π° ΠΏΠ°Π½ΠΈΠΊΠ° Π²ΠΎ Ρ˜Π°Π΄Ρ€ΠΎΡ‚ΠΎ.

llvm-mca

УслуТна Π°Π»Π°Ρ‚ΠΊΠ° која ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ΡƒΠ²Π° ΠΊΠΎΠ»ΠΊΡƒ ΠΊΠΎΠΌΠΏΡ˜ΡƒΡ‚Π΅Ρ€ΡΠΊΠΈ рСсурси ќС Π±Π°Ρ€Π° ΠΊΠΎΠ΄ΠΎΡ‚ Π½Π° ΠΌΠ°ΡˆΠΈΠ½Π°Ρ‚Π° Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ процСсори. Π’Π°Π° ΠΎΡ†Π΅Π½ΡƒΠ²Π° Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ ΠΏΠΎ циклус (IPC) ΠΈ ΠΎΠΏΡ‚ΠΎΠ²Π°Ρ€ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° Ρ…Π°Ρ€Π΄Π²Π΅Ρ€ΠΎΡ‚ ΡˆΡ‚ΠΎ Π³ΠΎ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° ΠΎΠ΄Ρ€Π΅Π΄Π΅Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°.

llvm-mca бСшС прСтставСна Π²ΠΎ 2018 Π³ΠΎΠ΄ΠΈΠ½Π° ΠΊΠ°ΠΊΠΎ Π΄Π΅Π» ΠΎΠ΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ LLVM, која Ρ€Π°Π·Π²ΠΈΠ²Π° ΡƒΠ½ΠΈΠ²Π΅Ρ€Π·Π°Π»Π΅Π½ систСм Π·Π° Π°Π½Π°Π»ΠΈΠ·Π°, Ρ‚Ρ€Π°Π½ΡΡ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ˜Π° ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ˜Π° Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ‚Π΅. ΠŸΠΎΠ·Π½Π°Ρ‚ΠΎ Π΅ Π΄Π΅ΠΊΠ° Π°Π²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ Π½Π° llvm-mca Π±ΠΈΠ»Π΅ инспирирани ΠΎΠ΄ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π° Π°Π½Π°Π»ΠΈΠ·Π° Π½Π° пСрформанситС Π½Π° софтвСрот IACA ΠΎΠ΄ Π˜Π½Ρ‚Π΅Π» ΠΈ сС ΠΎΠ±ΠΈΠ΄Π΅ Π΄Π° создадС Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π°. И спорСд корисницитС, ΠΈΠ·Π»Π΅Π·ΠΎΡ‚ Π½Π° Π°Π»Π°Ρ‚ΠΊΠ°Ρ‚Π° (Π½ΠΈΠ²Π½ΠΈΠΎΡ‚ распорСд ΠΈ ΠΊΠΎΠ»ΠΈΡ‡ΠΈΠ½Π°) навистина Π½Π°Π»ΠΈΠΊΡƒΠ²Π° Π½Π° IACA - ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΌΠΎΠΆΠ΅ Π΄Π° сС најдС Ρ‚ΡƒΠΊΠ°. Π‘Π΅ΠΏΠ°ΠΊ, llvm-mca ΠΏΡ€ΠΈΡ„Π°ΡœΠ° само AT&T синтакса, Ρ‚Π°ΠΊΠ° ΡˆΡ‚ΠΎ Π½Π°Ρ˜Π²Π΅Ρ€ΠΎΡ˜Π°Ρ‚Π½ΠΎ ќС Ρ‚Ρ€Π΅Π±Π° Π΄Π° користитС ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΎΡ€ΠΈ Π·Π° Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈΡ‚Π΅ со Π½Π΅Π³ΠΎ.

Π—Π° ΡˆΡ‚ΠΎ ΠΏΠΈΡˆΡƒΠ²Π°ΠΌΠ΅ Π½Π° Π½Π°ΡˆΠΈΡ‚Π΅ Π±Π»ΠΎΠ³ΠΎΠ²ΠΈ ΠΈ ΡΠΎΡ†ΠΈΡ˜Π°Π»Π½ΠΈ ΠΌΡ€Π΅ΠΆΠΈ:

Π Π΅ΠΏΠ΅Ρ€ΠΈ Π·Π° сСрвСри Линукс: ΠΈΠ·Π±ΠΎΡ€ Π½Π° ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ΠΈ Π°Π»Π°Ρ‚ΠΊΠΈ "Подлога. МодСл Π½Π° Π’ΠΎΠ»ΡΡ‚Ρ€ΠΈΡ‚β€œ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΎ Π΄Π° сС ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π°Ρ‚ Ρ‚Ρ€ΠΎΡˆΠΎΡ†ΠΈΡ‚Π΅ Π·Π° ΠΎΠ±Π»Π°ΠΊ

Π Π΅ΠΏΠ΅Ρ€ΠΈ Π·Π° сСрвСри Линукс: ΠΈΠ·Π±ΠΎΡ€ Π½Π° ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ΠΈ Π°Π»Π°Ρ‚ΠΊΠΈ Како Π΄Π° Π³ΠΎ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈΡ‚Π΅ Π²Π°ΡˆΠΈΠΎΡ‚ Linux систСм: 10 совСти
Π Π΅ΠΏΠ΅Ρ€ΠΈ Π·Π° сСрвСри Линукс: ΠΈΠ·Π±ΠΎΡ€ Π½Π° ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ΠΈ Π°Π»Π°Ρ‚ΠΊΠΈ ΠœΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€Π°ΡšΠ΅ Π½Π° Ρ€ΠΈΠ·ΠΈΡ†ΠΈΡ‚Π΅: ΠΊΠ°ΠΊΠΎ Π΄Π° Π½Π΅ Π³ΠΈ ΠΈΠ·Π³ΡƒΠ±ΠΈΡ‚Π΅ Π²Π°ΡˆΠΈΡ‚Π΅ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ

Π Π΅ΠΏΠ΅Ρ€ΠΈ Π·Π° сСрвСри Линукс: ΠΈΠ·Π±ΠΎΡ€ Π½Π° ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ΠΈ Π°Π»Π°Ρ‚ΠΊΠΈ Книги Π·Π° ΠΎΠ½ΠΈΠ΅ ΠΊΠΎΠΈ вСќС сС Π²ΠΊΠ»ΡƒΡ‡Π΅Π½ΠΈ Π²ΠΎ систСмската Π°Π΄ΠΌΠΈΠ½ΠΈΡΡ‚Ρ€Π°Ρ†ΠΈΡ˜Π° ΠΈΠ»ΠΈ ΡˆΡ‚ΠΎΡ‚ΡƒΠΊΡƒ ΠΏΠ»Π°Π½ΠΈΡ€Π°Π°Ρ‚ Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ‚
Π Π΅ΠΏΠ΅Ρ€ΠΈ Π·Π° сСрвСри Линукс: ΠΈΠ·Π±ΠΎΡ€ Π½Π° ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ΠΈ Π°Π»Π°Ρ‚ΠΊΠΈ Π˜Π·Π±ΠΎΡ€: ΠΏΠ΅Ρ‚ ΠΊΠ½ΠΈΠ³ΠΈ ΠΈ Π΅Π΄Π΅Π½ курс Π·Π° ΠΌΡ€Π΅ΠΆΠΈ

Π Π΅ΠΏΠ΅Ρ€ΠΈ Π·Π° сСрвСри Линукс: ΠΈΠ·Π±ΠΎΡ€ Π½Π° ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ΠΈ алаткиНиС Π½Π° 1cloud.ru Π½ΡƒΠ΄ΠΈΠΌΠ΅ бСсплатна услуга β€œDNS хостинг" ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΡƒΠΏΡ€Π°Π²ΡƒΠ²Π°Ρ‚Π΅ со записитС Π½Π° DNS Π²ΠΎ Π΅Π΄Π½Π° Π»ΠΈΡ‡Π½Π° смСтка.

Π˜Π·Π²ΠΎΡ€: www.habr.com

Π”ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€