Streso bandymo procesorius linux. Darbas su „Phoronix Test Suite“ arba kaip patikrinti virtualių mašinų našumą „Linux“? Failo leidimo atributai apima

Stebėjimas atliekamas naudojant programų rinkinį lm jutikliai.


aptitude įdiegti lm jutiklius

Jutiklio rodmenis galite gauti naudodami komandą:


jutikliai

Temperatūros stebėjimas realiuoju laiku atliekamas šia komanda:


laikrodžių jutikliai

Komandos išvestyje pateikiama informacija apie įtampą, ventiliatoriaus greitį, procesoriaus temperatūrą (kiekvieną šerdį atskirai), temperatūrą kietieji diskai. Svarbus rodiklis yra maksimali užfiksuota temperatūros reikšmė (laukas aukštasšerdies temperatūros rodmenyse). Galite stebėti tik procesoriaus temperatūrą naudodami komandą:


while (true) do date; jutikliai | grep šerdis; aidas "======="; miegoti 1s; padaryta

Taip pat yra įvairių grafinių paslaugų, skirtų rodmenims rodyti. lm jutikliai. Dėl GNOME paprasta naudoti programėlė GNOME jutiklių programėlė.

CPU testavimas nepalankiausiomis sąlygomis

Plastikinis maišelis cpuburn

Vaizdo plokštės tvarkyklių veikimo patikrinimas

Patikrinkite 3D pagreitį:


glxinfo | grep OpenGL

Išvestis turėtų būti tokia:


„OpenGL“ tiekėjo eilutė: „Tungsten Graphics, Inc.“ „OpenGL“ pateikimo eilutė: „Mesa DRI Intel(R) G33 GEM 20100330 DEVELOPMENT OpenGL versijos eilutė: 1.4 Mesa 7.10-devel OpenGL plėtiniai:

Patikrinkime 3D pagreičio palaikymą naudojant vaizdo plokštę:


glxinfo | tiesioginis grep

Jei įdiegtas 3D palaikymas, rezultatas bus:


tiesioginis atvaizdavimas: Taip

Patikrinkime 3D greitį:


glxgears

Atsiras langas su paprasta 3D animacija. Tokiu atveju informacija apie atvaizdavimo greitį konsolėje bus rodoma kas 5 sekundes. Įprastos sukonfigūruotos tvarkyklės FPS reikšmės turėtų būti vidutiniškai didesnės nei 1000 (jei įjungtas V-sinchronizavimas, FPS vertė bus apribota sinchronizavimo dažnio).

Kitas OpenGL testas:


/usr/lib/xscreensaver/glblur-fps

Pasirodys ekrano užsklandos langas, rodantis FPS reikšmę.

Jei kyla problemų, galite iš naujo įdiegti vaizdo tvarkyklę (integruotai „Intel“ grafikai turite iš naujo įdiegti paketą xserver-xorg-video-intel). Tvarkyklės nustatymus atlieka programa driconf. Be to, norėdami valdyti „Intel“ vaizdo plokštės veikimą, galite įdiegti paketą intel-gpu-tools(į paketą įtraukta „intel_gpu_top“ programa, leidžianti stebėti vaizdo procesoriaus apkrovą realiuoju laiku).

Sistemos veikimo testavimas

paketas phoronix-test-suite

Programa atlieka našumo testavimą phoronix-test-suite. Tai programinės įrangos apvalkalas, leidžiantis automatiškai atsisiųsti ir paleisti įvairias testavimo programas, rinkti ir saugoti duomenis apie bandymų rezultatus.

Įdiegkime programą:


aptitude įdiegti phoronix-test-suite

Peržiūrėkite visų galimų testų sąrašą Trumpas aprašymas galima atlikti naudojant šią komandą:


phoronix-test-suite list-tests

Testai vykdomi naudojant komandą:


phoronix-test-suite etalonas TEST_NAME

  • CPU:

    • c-ray- kelių gijų matematikos testas. Didelė procesoriaus apkrova. Rezultatas naudojant C2D 2.0: 387,55 sekundės.

    • build-linux-kernel- Linux branduolio surinkimas. Ilgas testas. Tolygiai įkelia procesorių ir atmintį (naudoja gcc).

    • scimark2- galingas vienos gijos testas (intensyvus mokslinis skaičiavimas). Rodo vieno branduolio našumą gigaflopais.

    • ffmpeg- vaizdo kodavimas (bandomieji failai užima 130 MB). C2D 2.0: 25,99 sekundės.


  • Atmintis:

    • rampos greitis- atminties testas. Vidutinė procesoriaus apkrova. Rezultatai DDR2-800 2Gb (copy,int) : 2280.10 MB/s.

    • srautas- rodo atminties greitį atliekant įvairias operacijas.


  • HDD:

    • jozonas- bandymas kietasis diskas. Rodo įvairaus ilgio blokų skaitymo ir rašymo greitį. Rezultatas WD 80Gb (W,4K,512M): 52,42 MB/s.


  • Grafikos menai:

    • gtkperf- įvairių GNOME GUI elementų testavimas.

    • unigine-tropikai- Gražus 3D etalonas, jums reikia pritaikytų tvarkyklių, palaikančių 3D pagreitį.


Ilgalaikiams įvairiems bandymams rekomenduojama build-linux-kernel. Trumpam testavimui nepalankiausiomis sąlygomis c-ray(kartu su programa

klausimas kompiuterinė diagnostika kompiuterių ar nešiojamųjų kompiuterių savininkus dažniausiai glumina reguliarios jų darbo klaidos. Tačiau nemaža dalis entuziastų mėgsta peršokti procesorius, vaizdo plokštes, pervertinti atminties veikimo dažnius ir pan. Natūralu, kad nenutrūkstamas veikimas tokiomis avarinėmis situacijomis nėra garantuotas, o įsijungimo procese esantys overclockeriai turi patikrinti įjungto įrenginio stabilumą. Procesoriaus patikrinimas- privalomas veiksmas, kai įsijungia CPU. Siūlomas straipsnis skirtas tik procesoriaus veikimo patikrinimo klausimui esant didžiausiai apkrovai po pagreičio. Naudingumas LinX 0.6 su labai paprasta sąsaja padėkite mums tai padaryti.

Neseniai svetainėje buvo straipsnis apie tai, kuriame buvo minimas tik procesoriaus diagnostikos poreikis, tačiau paaiškinimo nebuvo. Šiandien nusprendžiau užpildyti šią spragą ir aprašyti procesoriaus tikrinimo tvarką. Dėl kompiuterinė diagnostika jums reikia tik vienos programos, skirtos maksimaliai CPU apkrovai atliekant skaičiavimo užduotis. Šios kompaktiškos programos pavadinimas yra LinX. Šiuo metu dabartinė yra LinX 0.6.5“. Be stabilumo testavimo, naudingumas taip pat gali būti naudojamas kaip geras etalonas.

Vartotojo perspektyva LinX 0.6 labai paprastas ir patogus dalykas su paprasta ir intuityvia sąsaja (rusiška ir angliška versija). Jis palaiko tiek Intel, tiek AMD procesorius. Nustatymuose galima pasirinkti 32/64 bitų darbo režimą, gijų skaičių, įjungti arba išjungti Intel HyperThreading technologiją, nustatyti paleidimų skaičių, stebėti testavimo eigą "gyvai"... Automatinis rinkinio išsaugojimas procesoriaus testavimo parametrai leis testuoti su tais pačiais nustatymais vėlesnių paleidimų metu, pavyzdžiui, kai palaipsniui įsibėgėja CPU.


Pagrindinio programos lango sąsajoje yra tik keli valdikliai. Pirmiausia mus domina parametrai „Atmintis“ / „Atmintis“ ir važiavimų skaičius „Kartų skaičius“ / „Paleisti“. Dėl kompiuterinė diagnostika rekomenduojama pirmame parametre pasirinkti visą laisvą atmintį (mygtukas „Visi“ šalia „Atmintis“), o „Kartų skaičius“ / „Paleisti“ nustatyti empiriškai: paleisti vieną paleidimą ir apskaičiuoti reikiamą paleidimų skaičių. kad programa veiktų bent valandą. Meniu „Nustatymai“ / „Nustatymai“ pasirinkite 32/64 bitų režimą, atsižvelgdami į įdiegtą procesorių ir versiją Operacinė sistema. Norėdami pradėti / sustabdyti testą, naudokite mygtukus "Test"/"Stop" ("Start"/"Stop"). Bandymo metu testo eigos indikatorius rodys laiką, praėjusį nuo pradžios, o kai paskutinis važiavimas bus baigtas, bus rodomas užrašas „Atlikta be klaidų MM m SS“ (arba „Baigta be klaidų MM m SS“). s“ angliškoje sąsajos versijoje).

Ilgą laiką testuojant nestabilią sistemą, gali atsirasti klaidų. „Linx 0.6“ nustatymų elementas „Stop on Error“ sustabdys tolesnį procesoriaus tikrinimą. Tai gali būti labai naudinga, kai atsiranda klaidų dėl procesoriaus perkaitimas. Kai kuriais atvejais gali būti laiku sustabdytas tyrimas išgelbėti gyvybęį išbandytą procesorių. Jei paleidę programą užfiksavote temperatūrą, artimą kritinei arba ją viršijate, tai yra aiškus signalas, kad turite pakeisti aušintuvą arba sumažinti pagreitį.

Naudojant LinX 0.6.5 kaip etalonas procesoriaus veikimo rezultatai bus rodomi pagrindinio programos lango galutinės lentelės stulpelyje „GFlops“ / „GFlops“. Taip, už Intel Core i7-3770k, kuris buvo padidintas iki 4,5 GHz, rezultatas bus regiono skaičius 110…115 GFlops priklausomai nuo nustatymų. po kelių paleidimų nurodytas procesorius dedamas aukščiau: kiekvieno praėjimo lentelėje nurodomas greitis, o būsenos eilutėje pateikiama informacija apie didžiausią (maksimalų) našumą GFlops.

Beje, jei tau įdomu CPU overclock, tada nustebsite, ar tikslinga įtraukti technologijas hipersriegiavimas skirtas „Intel“ procesoriui. Jokiu būdu ne visose HT užduotyse yra greičio padidėjimas, tačiau įtrauktas HT labai dažnai nuvertina „akmens“ įsijungimo galimybes. Sprendžiant iš daugybės apžvalgų, daugumoje žaidimų nėra nei menkiausio „HyperThreading“ FPS padidėjimo - čia „grojamumas“ labiau priklauso nuo vaizdo plokštės.

Etalonas yra didžiausio kompiuterio našumo matavimas, kuris išreiškiamas sutartiniais taškais. Dėl to galite palyginti skirtingų kompiuterių arba to paties kompiuterio našumą po, pavyzdžiui, įsijungimo arba per mažo įtampa.

Etalonas ir testas nepalankiausiomis sąlygomis nėra tas pats dalykas. Tiek etalono, tiek testavimo nepalankiausiomis sąlygomis metu sistema gauna pilną apkrovą. Tačiau pagrindinis lyginamosios analizės tikslas yra įvertinti našumą, o pagrindinis testavimo nepalankiausiomis sąlygomis tikslas yra patikrinti, ar sistema gali veikti esant darbo krūvio ribai, arba nustatyti šią ribą. Nors iš tikrųjų kai kurios programos sujungia abi funkcijas.

Etaloną galima atlikti visai sistemai arba atskiriems jos komponentams: centriniam procesoriui, vaizdo plokštei, įvesties / išvesties sistemai.

„Linux“ turi keletą programų, skirtų procesoriaus našumui įvertinti, pavyzdžiui: sysbench, stresas Ir phoronix-test-suite. Jų stresas pirmiausia atlieka testavimo nepalankiausiomis sąlygomis funkcijas, tačiau atvaizduoja gautus rodiklius, todėl yra gana tinkamas sistemos našumui įvertinti ir lyginti.

Lyginamoji sistema sysbench

sysbench yra įrankis komandinė eilutė. Jis buvo sukurtas siekiant įvertinti serverių su stipriai apkrautomis DBVS našumą, tačiau tinka ir įprastoms sistemoms atlikti.

Diegimas Ubuntu, Linux Mint, Debian, Kali Linux:

sudo apt įdiegti sysbench

Integruoti testai:

  • fileio- Failų I/O testavimas
  • cpu- CPU veikimo testavimas
  • atmintis- Atminties funkcijų greičio testavimas
  • siūlai- Siūlų posistemio veikimo testavimas
  • mutex- Mutex veikimo testas

Norėdami atlikti procesoriaus našumo testą:

Sysbench procesoriaus paleidimas

Atkreipkite dėmesį į tai, kaip programa paleidžiama: pradžioje yra testo pavadinimas, tada parinktys (pirmame pavyzdyje jų nėra), o tada komanda.

Programoje yra du vykdymo takai:

  • 10000 operacijų su skaičiais
  • 10 sekundžių vykdymas

Priklausomai nuo to, kas įvyks anksčiau, programa išeis po 10 000 įvykių arba po 10 sekundžių.

Šiuolaikiniai procesoriai yra labai produktyvūs ir jei programa baigiama labai greitai, duomenys gali būti iškraipyti. Pavyzdžiui, vertinant procesoriaus našumą, pavyzdžiui, droselis (dažnio atstatymas) vaidina svarbų vaidmenį. Droselis prasideda dėl perkaitimo arba viršijimo TDP. Šie efektai pastebimi tik dideliais procesoriaus atstumais. Jei, pavyzdžiui, testas baigtas per sekundę ir jūs gaunate n apdorotas operacijas, tai nereiškia, kad procesorius atliks per 60 sekundžių 60*n operacijų, nes dėl perkaitimo ir TDP nustatytų šilumos išsklaidymo ribų viršijimo nukris dažniai.

Norėdami atlikti ilgesnį bandomąjį paleidimą, naudokite parinktis --cpu-max-prime Ir -laikas. Pirmasis nustato maksimalų atliktų operacijų skaičių, o antrasis – maksimalų etalono laiką. Kai parinktys naudojamos tuo pačiu metu, pirmenybė teikiama -laikas.

Šiuolaikiniai procesoriai yra kelių branduolių ir kelių gijų:

Numatytas sysbench eina viena gija. Todėl, jei norite naudoti visus savo procesoriaus branduolius, naudokite parinktį -- siūlai. Turiu 6 fizinius ir 12 loginių procesoriaus branduolių, todėl naudosiu 12, kad įsitikinčiau, jog visi CPU veikia.

Kai naudojate parinktį --cpu-max-prime, kuo trumpesnis programos užbaigimo laikas, tuo našesnis centrinis procesorius:

Sysbench procesorius -- Threads=12 --cpu-max-prime=100000 run

Programa per greitai baigė darbą - per 10 sekundžių mažai tikėtina, kad procesorius turėjo laiko rimtai sureguliuoti. Todėl naudojant šias vertes testas yra tinkamas įvertinti didžiausią našumą per trumpą atstumą.

Gauti rezultatai:

CPU greitis: įvykiai per sekundę: 538,23 Bendroji statistika: bendras laikas: 10,0188 s, bendras įvykių skaičius: 5393 Vėlavimas (ms): min.: 19,85 vid.: 22,27 maks.: 30,56 95 procentilis: 23,10 suma: 120125,61 įvykių teisingumas stddev): 449.4167/4.11 vykdymo laikas (vid./stddev): 10.0105/0.01

CPU greičio įvykiai per sekundę reiškia operacijų, atliekamų centriniame procesoriuje, skaičių per sekundę – kuo didesnė reikšmė, tuo sistema produktyvesnė.

Bendra statistika bendras laikas reiškia bendrą operacijų vykdymo laiką.

Bendra statistika bendras įvykių skaičius reiškia bendrą užbaigtų įvykių skaičių.

Jei sistema išsijungia per greitai, galite padidinti vertę, pavyzdžiui, iki dviejų šimtų tūkstančių įvykių:

Sysbench procesorius --cpu-max-prime=200000 paleisti

Kitas būdas patikrinti, ar nėra droselio ir įvertinti procesoriaus našumą esant nuolatinei apkrovai, yra nustatyti vykdymo laiką, toliau pateiktame pavyzdyje laikas nustatytas į 300 sekundžių.

Sysbench procesorius --threads=12 --time=300 run

Turiu naudodamas parinktis -laikas Ir --cpu-max-prime CPU greičio įvykiai per sekundę skiriasi dešimtis kartų – matyt, arba kažkokia klaida programoje, arba programa skaičiuoja pagal kažkokias kitas taisykles.

Phoronix-test-suite etalonas

Įdiekite programą:

Sudo apt install phoronix-test-suite

Vykdyti – pirmą kartą turėsite sutikti su licencijos sutartimi, todėl programa paprašys leidimo siųsti anoniminę statistiką:

Phoronix-test-suite list-available-suites

Ankstesnėje komandoje bus išvardyti galimi etalonai.

Galimi Phoronix Test Suite v8.0.1 bandymų rinkiniai

Pts / garso kodavimas - Garso kodavimo sistema taškai / šachmatai - Šachmatų testavimo rinkinio procesorius pts / kompiliacija - Laiko kodo kompiliavimo procesorius pts / kompiliatorius - Kompiliatoriaus procesorius pts / glaudinimas - Laikinas failų glaudinimo procesorius pts / skaičiavimas - Skaičiavimo testų rinkinio sistema pts / kompiuterinis -biologija - Skaičiavimo biologijos testavimo rinkinys Procesoriaus taškai / procesoriaus - CPU / procesoriaus rinkinys Procesoriaus taškai / kriptografija - Kriptografijos procesoriaus taškai / kasdienės branduolio sekimo priemonės - Kasdienio branduolio sekimo sistemos taškai / kasdienės sistemos stebėjimo priemonės - Kasdienės sistemos stebėjimo sistemos taškai / duomenų bazė - Duomenų bazės testavimo sistemos taškai / darbalaukio grafika - darbalaukio grafikos sistemos taškai / diskas - disko testas„Suite“ disko taškai/kodavimas – kodavimo sistema taškai/mėgstamiausi – parankinių sistema * taškai/žaidimai – žaidimų sistema taškai/žaidimų uždara – uždarojo šaltinio žaidimų sistema * taškai/žaidimų nemokamai – nemokamos programinės įrangos žaidimų sistemos taškai/gui įrankių rinkiniai – GUI Įrankių rinkiniai Graphics pts/ioquake3-games – Žaidimai naudojant ioquake3 variklio sistemą pts/iqc – Vaizdo kokybės palyginimo rinkinys Grafika pts/java – Java sistemos pts/java-opengl – Java OpenGL sistemos pts/branduolys – branduolio sistemos pts/linux-system – „Linux“ sistemos sistemos taškai / mašininis mokymasis – mašininio mokymosi sistemos taškai / atmintis – atminties testavimo rinkinys „Memory Test Suite“ – „Mesa Test Suite“ grafikos taškai / pagrindinė plokštė – pagrindinės plokštės sistemos taškai / kelių branduolių sistema – kelių branduolių procesoriaus taškai / tinklelis – „Netbook Test Suite“ sistema pts/network – Networking Test Suite Network pts/nevada – OpenSolaris Nevada Test Suite System pts/opencl – OpenCL sistemos pts/opengl demonstracinės versijos – OpenGL demonstracinės versijos testavimo rinkinio sistemos pts/opengl-workstation – OpenGL Workstation Test Suite System pts/pts-desktop -Live - PTS Desktop Live System pts / ray-tracing - Ray-Tracing Test Suite System pts / serveris - Serverio pagrindinės plokštės sistema pts / ue4 - Unreal Engine 4 Tech Demos On Linux Graphics pts / Unigine - Unigine Test Suite Graphics * pts / universe - Universe Test Suite System pts / universe-cli - Universe CLI Test Suite System * pts / universe-x - Universe X Test Suite System pts / vaizdo kodavimas - Vaizdo kodavimo sistema pts / Workstation - Workstation System pts / Workstation-graphics - Workstation Grafika Graphics pts/xrender – X Render Extension Testing Graphics system/collection – Collection System

Iš dalies palaikomi rinkiniai pažymėti žvaigždute.

Norėdami paleisti procesoriaus našumo įvertinimo paleidimą:

Phoronix-test-suite paleisti ts/cpu

Atminkite, kad pts/cpu ir kiti etalonai užima kelis gigabaitus vietos diske. Pavyzdžiui, pts/cpu atsisiųs apie 3 GB duomenų ir naudos apie 7 GB vietos diske (naudotojo namų kataloge).

Norėdami gauti informacijos apie tai, kaip stebėti esamą procesoriaus dažnį ir temperatūrą Linux sistemoje, žr.

Atlikau Linpack testą ir pagalvojau: ar man laikas pakeisti nešiojamojo kompiuterio termo pastą?

Taip, pagal kelių bandymų iš eilės rezultatus (neperkraunu straipsnio nuotraukomis), aišku, kad procesorius pereina į droselį (praleidžia ciklus ir atstato dažnį kaitinant), bet kaip greitai jis paleidžiamas tai darai?

CPU testavimas nepalankiausiomis sąlygomis Linux terminale

Uždavęs šį klausimą ir internete paieškojęs komunalinių paslaugų, supratau, kad pagrindinė problema sprendžiant mano iškeltą užduotį buvo tuo pačiu metu bent poros komunalinių paslaugų paleidimas ir plačios akys dviejuose languose... Ir padariau išvadą, kad man labiau tinka konsolinė versija, o ne įvairiaspalviai atidarytų programų langai.

Pradėjau nuo sysbench:

sudo apt install sysbench

sysbench --num-threads=4 --test=cpu --cpu-max-prime=100000 run

  • --gijų skaičius=4- tai gijų skaičius, turiu dviejų branduolių keturių gijų Intel® Core ™ i7-640M, taigi 4;
  • --cpu-max-prime=100000- tai yra maksimalus atliekamų operacijų skaičius, aš jį nustatiau 100 000, nes numatytoji vertė yra 10 000, todėl bandymas baigiasi per anksti.

Tada perėjau į Linpack. Kadangi turiu Intel procesorių ir turiu tam tikrą tinginystę (tinginystė yra pažangos variklis), paėmiau, atsisiunčiau ir išpakavau jau paruoštą Intel Linpack, sukūręs linpack katalogą savo namų kataloge:

mkdir ./linpack
cd ./linpack
wget http://registrationcenter-download.intel.com/akdlm/irc_nas/9752/l_mklb_p_2018.3.011.tgz
tar -xvzf ./l_mklb_p_2018.3.011.tgz

Dėl AMD procesoriai Tokio varianto nebandyčiau, nes Intel kompiliatorius įdeda žymes, kurios tikrina procesorių, o jei ne Intel... na, pagalvokite apie šimtą ar dvi papildomas instrukcijas, procesorius vykdys ir akivaizdžiai praras našumą. AMD geriau kurti Linpack iš tokių šaltinių. Šiame straipsnyje nenagrinėsiu kūrimo iš šaltinių – skaitykite README šaltinio kode.

Grįžkime prie „Intel“ „Linpack“. Yra daug papildomų dalykų ir man jų nereikia, bet į ką turiu atsižvelgti dėl 2018.3.011 versijos. Iš karto eisiu į norimą katalogą, kad vėliau nerašyčiau ilgų komandų:

cd ./l_mklb_p_2018.3.011/benchmarks_2018/linux/mkl/benchmarks/linpack

Kadangi pagal numatytuosius nustatymus Intel Linpack yra skirtas serverio Xeons testavimui, sukurkime savo failą, kuris bus naudojamas kaip įvesties parinktys – tiesiog sumažinkite testų skaičių, kitaip pavargsime nuo „poros dienų“ laukimo testą užbaigti. Turiu Linux Mint LMDE 3, todėl naudoju xed teksto rengyklę ir man patinka dėl daugiau funkcionalumo, ypač kai paleidžiu kaip root – pakeičia spalvą į raudoną. Taigi, tame pačiame kataloge, į kurį persikėlėme, sukuriame failą, pavyzdžiui, my_test:

Ir nukopijuokite šį turinį į sukurtą failą:

„Intel(R) Distribution“ bendros atminties versija, skirta LINPACK* etalonui. *Kiti pavadinimai ir prekės ženklai gali būti laikomi kitų nuosavybe.
Duomenų failo lininput_xeon64 pavyzdys.
5 # testų skaičius
1000 2000 5000 10000 20000 # probleminiai dydžiai
1000 2000 5008 10000 20000 # pirmaujantys matmenys
4 2 2 2 1 # kartų, kad atliktumėte testą
4 4 4 4 4 # lygiavimo reikšmės (KB)

Na, iš tikrųjų paleidžiame „Linpack“ su sukurtu failu:

./xlinpack_xeon64 -i ./my_test

./xlinpack_xeon64 ./my_test

Taip pat galite naudoti stresą-ng arba stresą, bet tai vis tiek neišsprendžia mano nustatytos problemos. Šios komunalinės paslaugos man nerodo temperatūros, dažnių ir laiko išvesties nuo pat pradžių.

Temperatūrą gali rodyti jutikliai – daugiau apie šios priemonės įdiegimą. Ir ši priemonė bus reikalinga tolesniam mano klausimo svarstymui. Linux yra puikus ir galingas: tą pačią užduotį galima išspręsti įvairiais būdais. Tingėjau imtis C, o trūkstamą dalį man parašiau BASH, nes nebuvo tiek daug eilučių. Be įdiegtų jutiklių mano scenarijus neveiks. Natūralu, kad droselio fiksavimo nerašiau - vis tiek bus matoma atstačius dažnį ir temperatūrą. Štai pats scenarijus:

#!/bin/bash
out=0 # testavimo proceso valdymo kintamasis
pid_test="tty" # Bandymo proceso PID (esamas katalogas buvo paleistas be argumentų)
cpus_num=$(cat /proc/cpuinfo | grep -ci "procesorius") # procesorių / branduolių / gijų skaičius
echo -lt "\033[?25l" 1>&2 # paslėpti žymeklį
echo -lt "\033[^:]*: //g" | rūšiuoti -u # išvesties procesoriaus modelis
echo -lt "\033=$(jutikliai | sed "/Pagrindinis ""$i""/!d;s/.*crit = +\(.*\)[.]°C).*/\1/ “)
if [ -n "$(cpu_crit_temp[i])" ]
tada
tegul cpu_red_temp[i]=cpu_crit_temp[i]-10
tegul cpu_yel_temp[i]=cpu_crit_temp[i]-30
cpu_min_temp[$i]=1000
cpu_max_temp[$i]=0
fi
padaryta
start_time=$(cat /proc/uptime | sed "s/[.] .*$//") # pradžios laikas
jei [ -n "$1" ]
tada
script_pid="$$"
(jei ! $@ > "$0_out" 2>&1 # paleiskite bandomąjį failą
tada
kill -s SIGABRT $script_pid # signalizuoja, kad pagrindinis scenarijus nepavyksta paleisti
fi 2>/dev/null)&
pid_test="$!" # Bandymo proceso PID
fi
o (tiesa) # temperatūros valdymas
daryti
už ((i=0; i<$cpus_num; i++))
daryti
cpu_freq[$i]=$(cat /sys/devices/system/cpu/cpu$(i)/cpufreq/scaling_cur_freq | sed "s/...$//")
cpu_temp[$i]=$(jutikliai | sed "/Core ""$i""/!d;s/.*+\(.*\)[.]°C[ \t]*(.*/\ 1/")
if [ -n "$(cpu_temp[i])" ]
tada
(($(cpu_temp[i])< ${cpu_min_temp[i]})) && cpu_min_temp[$i]=${cpu_temp[i]}
if (($(cpu_temp[i]) > $(cpu_max_temp[i])))
tada
cpu_max_temp[$i]=$(cpu_temp[i])
laikas_max[$i]=$(katė /proc/darbo laikas | sed "s/[.] .*$//")
tegul time_max[i]=time_max[i]-pradžios_laikas
fi
if (($(cpu_temp[i]) > $(cpu_red_temp[i])))
tada
echo -en "cpu$(i):\t"
echo -lt "\033)"
echo -lt "\033)"
echo -lt "\033)"
echo -en "\033) > $(cpu_yel_temp[i])))
tada
echo -en "cpu$(i):\t"
echo -lt "\033)"
echo -lt "\033)"
echo -lt "\033)°C; maks.: "
echo -lt "\033)"
echo -lt "\033)sec)"
Kitas
echo -en "cpu$(i):\t"
echo -lt "\033)"
echo -lt "\033)"
echo -lt "\033)°C; maks.: "
echo -lt "\033)"
echo -lt "\033)sec)"
fi
Kitas
echo -en "cpu$(i):\t"
echo -lt "\033)"
echo -lt "\033 .*$//")
tegul laikas=laikas-pradžios_laikas
echo -lt "Laikas:\t$time sek."
[ ! -d "/proc/$(pid_test)" ] && nutraukti # išeiti, kai bandymas baigtas ( Geriausias būdas valdymas per comm ir cmdline, bet... per tingus)
[ "$out" != "0" ] && nutraukti # išėjimą, kai bandymas nepavyko
echo -lt "\033[$(i)A\r" 1>&2 # perkelti žymeklį į $i eilutes aukštyn ir į eilutės pradžią
miegas 0,1 # pauzė, kad dažnio išvestis nelabai šoktų
padaryta
aidas ""
echo -lt "\033[?25h" 1>&2 # įjungti žymeklį
if [[ "$out" == "0" && -n "$1" ]]
tada

rm -fR "$0_out"
išėjimas 0
elif [[ "$out" == "1" && -n "$1" ]]
tada
kill -9 "$pid_test" 1>/dev/null 2>/dev/null
katė "$0_out" | sed "/^$/d;/Sample data/d;/CPU dažnis/d;/Parametrai nustatyti/,/Duomenų derinimo vertė/d"
rm -fR "$0_out"
išėjimas 1
elif[ "$out" == "1" ]
tada išeikite 1
elif[ "$out" == "2" ]
tada
echo -lt "\033)

mob_info