Линукс серверүүдийн жишиг: нээлттэй хэрэгслүүдийн сонголт

Линукс машин дээрх CPU-ийн гүйцэтгэлийг үнэлэх хэрэгслүүдийн талаар бид үргэлжлүүлэн ярьсаар байна. Өнөөдөр материалд: temci, uarch-bench, likwid, perf-tools болон llvm-mca.

Бусад жишиг үзүүлэлтүүд:

Линукс серверүүдийн жишиг: нээлттэй хэрэгслүүдийн сонголт
Фото - Лукас Блазек - Цочмог арилгах

temci

Энэ нь хоёр програмын гүйцэтгэлийн хугацааг тооцоолох хэрэгсэл юм. Үндсэндээ энэ нь хоёр програмын гүйцэтгэлийн хугацааг харьцуулах боломжийг олгодог. Энэхүү хэрэгслийн зохиогч нь Германы оюутан Йоханнес Бехбергер байсан бөгөөд 2016 онд бакалаврын дипломын ажлынхаа нэг хэсэг болгон үүнийг боловсруулсан. Өнөөдрийн хэрэгсэл тараасан GNU General Public License-ийн дагуу лицензтэй.

Йоханнес хяналттай орчинд тооцоолох системийн гүйцэтгэлийг хэмжих хэрэгсэл бүтээхийг хүссэн. Тиймээс temci-ийн гол шинж чанаруудын нэг нь туршилтын орчинг бүрдүүлэх чадвар юм. Жишээлбэл, болно: CPU давтамжийн менежерийн тохиргоог өөрчлөх, идэвхгүй болгох hyper-threading болон L1 болон L2 кэшүүд, Intel процессорууд дээрх турбо горимыг унтраах гэх мэт. Темпи нь харьцуулахын тулд багажуудыг ашигладаг. цаг хугацаа, 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 дээрх оддын тоо аажмаар нэмэгдэж байна. сэтгэгдэл дээр хэлэлцсэн Hacker News дээр.

вандан сандал

Инженер Травис Даунсын бүтээсэн доод түвшний CPU функцүүдийн гүйцэтгэлийг үнэлэх хэрэгсэл.Трэвис Даунс). Сүүлийн үед блог хөтөлж байгаа Гүйцэтгэлийн асуудал GitHub хуудсууд дээр харьцуулах хэрэгслүүд болон бусад холбогдох зүйлсийн талаар өгүүлдэг. Ерөнхийдөө uarch-bench одоо л алдартай болж эхэлж байгаа боловч энэ нь аль хэдийн нэлээд түгээмэл болсон дурдсан Хакерын мэдээний оршин суугчид сэдэвчилсэн хэлхээсийг жишиг тогтоох хэрэгсэл болгон ашиглаж байна.

Uarch-bench нь санах ойн гүйцэтгэл, зэрэгцээ өгөгдөл ачаалах хурд, цэвэрлэгээний ажлыг үнэлэх боломжийг олгодог YMM бүртгэлүүд. Хөтөлбөрийн дагуу хийсэн жишиг үнэлгээний үр дүн ямар байгааг олж мэдэх боломжтой албан ёсны санд хуудасны доод талд.

Тэмчи шиг uarch-bench гэдгийг тэмдэглэх нь зүйтэй. идэвхгүй болгодог Intel Turbo Boost функц (энэ нь ачааллын үед процессорын цагийн хурдыг автоматаар нэмэгдүүлдэг) тул туршилтын үр дүн тогтвортой байна.

Одоогоор төсөл нь хөгжлийн эхний шатандаа байгаа тул uarch-bench-д нарийвчилсан баримт бичиг байхгүй бөгөөд түүний үйл ажиллагаа нь алдаатай байж магадгүй юм - жишээлбэл, хүндрэлүүд мэдэгдэж байна Ryzen дээр эхлүүлсэн. Мөн зөвхөн x86 архитектурт зориулсан жишиг үзүүлэлтүүдийг дэмждэг. Зохиогч ирээдүйд илүү олон функцийг нэмж өгөхөө амлаж, таныг хөгжилд нэгдэхийг урьж байна.

ликвид

Энэ нь Intel, AMD, ARMv8 процессортой Линукс машинуудын гүйцэтгэлийг үнэлэх хэрэгслүүдийн багц юм. Энэ нь 2017 онд Германы Холбооны Боловсрол, Судалгааны Яамны ивээл дор бүтээгдсэн бөгөөд нээлттэй эх сурвалжид гарсан.

Likwid хэрэгслүүдийн дотроос бид RAPL регистрээс системд зарцуулсан эрчим хүчний талаарх мэдээллийг харуулдаг likwid-powermeter, мөн процессорын давтамжийг хянах боломжийг олгодог likwid-setFrequencies-ийг онцолж болно. Та бүрэн жагсаалтыг харж болно агуулахаас олох.

Энэхүү хэрэгслийг HPC судалгаанд оролцдог инженерүүд ашигладаг. Жишээлбэл, likwid-тэй ажиллана ХБНГУ-ын Эрланген-Нюрнбергийн их сургуулийн (RRZE) бүсийн тооцооллын төвийн хэсэг мэргэжилтнүүд. Тэрээр энэ багц хэрэгслийг боловсруулахад идэвхтэй оролцдог.

Линукс серверүүдийн жишиг: нээлттэй хэрэгслүүдийн сонголт
Фото - Клем Оножегуо - Цочмог арилгах

төгс хэрэгслүүд

Линукс серверүүдийн гүйцэтгэлд дүн шинжилгээ хийх хэрэгсэл танилцуулав Брендан Грегг. Тэр бол хөгжүүлэгчдийн нэг юм 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

Энэ хэрэгслийн эргэн тойронд нэлээд том нийгэмлэг бий болсон (GitHub дээр бараг 6 мянган одтой). Жишээлбэл, perf-tools-ийг идэвхтэй ашигладаг компаниуд байдаг Netflix. Гэхдээ уг хэрэгслийг цаашид боловсруулж, өөрчилж байна (хэдийгээр сүүлийн үед шинэчлэлтүүд маш ховор гарсан). Тиймээс түүний үйл ажиллагаанд алдаа гарч болзошгүй - зохиогч заримдаа perf-tools нь цөмийн үймээнийг үүсгэдэг гэж бичжээ.

llvm-mca

Янз бүрийн CPU дээр машины код хичнээн хэмжээний тооцоолох нөөц шаардагдахыг урьдчилан таамаглах хэрэгсэл. Тэр үнэлдэг Цикл бүрийн заавар (IPC) болон тухайн програмын үүсгэсэн техник хангамжийн ачаалал.

llvm-mca-г 2018 онд төслийн хүрээнд танилцуулсан LLVM, программд дүн шинжилгээ хийх, өөрчлөх, оновчтой болгох бүх нийтийн системийг боловсруулж байна. llvm-mca-ийн зохиогчид програм хангамжийн гүйцэтгэлд дүн шинжилгээ хийх шийдлээс санаа авсан нь мэдэгдэж байна. Intel-ээс IACA мөн өөр хувилбар бий болгохыг эрэлхийлэв. Хэрэглэгчдийн үзэж байгаагаар уг хэрэгслийн гаралт (тэдгээрийн зохион байгуулалт, тоо хэмжээ) нь IACA-тай үнэхээр төстэй юм. эндээс олж болно. Гэсэн хэдий ч llvm-mca зөвхөн хүлээн авдаг AT&T синтакс, тиймээс та түүнтэй ажиллахын тулд хөрвүүлэгч ашиглах хэрэгтэй болно.

Бидний блог болон нийгмийн сүлжээнд юу бичдэг вэ:

Линукс серверүүдийн жишиг: нээлттэй хэрэгслүүдийн сонголт "Мат. Уолл Стрийтийн загвар" эсвэл үүлний зардлыг хэрхэн оновчтой болгох вэ

Линукс серверүүдийн жишиг: нээлттэй хэрэгслүүдийн сонголт Линукс системээ хэрхэн хамгаалах вэ: 10 зөвлөгөө
Линукс серверүүдийн жишиг: нээлттэй хэрэгслүүдийн сонголт Эрсдэлийг багасгах: мэдээллээ хэрхэн алдахгүй байх вэ

Линукс серверүүдийн жишиг: нээлттэй хэрэгслүүдийн сонголт Системийн удирдлагад аль хэдийн орсон эсвэл дөнгөж эхлүүлэхээр төлөвлөж буй хүмүүст зориулсан ном
Линукс серверүүдийн жишиг: нээлттэй хэрэгслүүдийн сонголт Сонгон шалгаруулалт: таван ном, сүлжээний нэг курс

Линукс серверүүдийн жишиг: нээлттэй хэрэгслүүдийн сонголтБид 1cloud.ru дээр үнэгүй үйлчилгээг санал болгож байна.DNS хостинг" Та DNS бүртгэлийг нэг хувийн дансанд удирдах боломжтой.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх