Test obciążenia procesora w systemie Linux. Praca z Phoronix Test Suite, czyli jak testować wydajność maszyn wirtualnych w Linuksie? Atrybuty uprawnień do plików obejmują

Monitorowanie odbywa się za pomocą zestawu programów czujniki lm.


aptitude instaluje czujniki lm

Możesz wykonać odczyty czujnika za pomocą polecenia:


czujniki

Monitorowanie temperatury w czasie rzeczywistym odbywa się za pomocą następującego polecenia:


czujniki zegarka

Wyjście polecenia zawiera informacje o napięciu, prędkości wentylatora, temperaturze procesora (każdy rdzeń osobno), temperaturze dyski twarde. Ważnym wskaźnikiem jest maksymalna zarejestrowana wartość temperatury (pol wysoki w odczytach temperatury rdzenia). Możesz monitorować tylko temperaturę procesora za pomocą polecenia:


podczas gdy (prawda) wykonaj datę; czujniki | rdzeń grepa; echo "======"; sen 1s; zrobione

Istnieją również różne narzędzia graficzne do wyświetlania odczytów. czujniki lm. Dla GNOMłatwy w użyciu aplet Aplet czujników GNOME.

Testy obciążeniowe procesora

Plastikowa torba procesor

Sprawdzanie działania sterowników karty graficznej

Sprawdź akcelerację 3D:


informacje glx | grep OpenGL

Dane wyjściowe powinny wyglądać następująco:


Ciąg dostawcy OpenGL: Tungsten Graphics, Inc Ciąg renderowania OpenGL: Mesa DRI Intel(R) G33 GEM 20100330 DEVELOPMENT Ciąg znaków wersji OpenGL: 1.4 Mesa 7.10-devel Rozszerzenia OpenGL:

Sprawdźmy obsługę akceleracji 3D za pomocą karty graficznej:


informacje glx | grep direct

Jeśli zostanie zaimplementowana obsługa 3D, wynikiem będzie:


bezpośrednie renderowanie: tak

Sprawdźmy szybkość 3D:


glxgears

Pojawi się okno z prostą animacją 3D. W takim przypadku informacja o szybkości renderowania będzie wyświetlana w konsoli co 5 sekund. Normalne wartości FPS dla skonfigurowanego sterownika powinny średnio przekraczać 1000 (jeśli włączona jest synchronizacja pionowa, wartość FPS będzie ograniczona przez częstotliwość synchronizacji).

Kolejny test OpenGL:


/usr/lib/xscreensaver/glblur-fps

Pojawi się wygaszacz ekranu pokazujący wartość FPS.

W przypadku jakichkolwiek problemów można ponownie zainstalować sterownik wideo (w przypadku zintegrowanej grafiki Intel należy ponownie zainstalować pakiet xserver-xorg-video-intel). Ustawienia sterownika są przeprowadzane przez program drikonf. Ponadto, aby kontrolować działanie karty graficznej Intel, możesz zainstalować pakiet intel-gpu-tools(pakiet zawiera narzędzie intel_gpu_top, które pozwala monitorować obciążenie procesora wideo w czasie rzeczywistym).

Testowanie wydajności systemu

phoronix-test-pakiet

Testy wydajności są przeprowadzane przez program phoronix-test-suite. Jest to powłoka oprogramowania, która umożliwia automatyczne pobieranie i uruchamianie różnych programów testujących, gromadzenie i przechowywanie danych o wynikach testów.

Zainstalujmy program:


aptitude zainstaluj phoronix-test-suite

Zobacz listę wszystkich dostępnych testów z ich krótki opis można to zrobić za pomocą następującego polecenia:


phoronix-test-lista-testów

Testy uruchamiamy poleceniem:


test porównawczy foronix-test-suite TEST_NAME

  • procesor:

    • promieniowanie rentgenowskie- wielowątkowy test matematyczny. Duże obciążenie procesora. Wynik na C2D 2.0: 387,55 sekund.

    • build-linux-kernel- montaż jądra Linuksa. Długi test. Równomiernie ładuje procesor i pamięć (używa gcc).

    • scimark2- potężny test jednowątkowy (intensywne obliczenia naukowe). Pokazuje wydajność pojedynczego rdzenia w gigaflopach.

    • ffmpeg- kodowanie wideo (pliki testowe zajmują 130MB). W C2D 2.0: 25,99 sekundy.


  • Pamięć:

    • prędkość ramowa- test pamięci. Średnie obciążenie procesora. Wyniki DDR2-800 2 Gb (kopia, int): 2280,10 MB/s.

    • strumień- pokazuje prędkość pamięci w różnych operacjach.


  • Dysk twardy:

    • jozon- próba twardy dysk. Pokazuje prędkość odczytu i zapisu dla bloków o różnych długościach. Wynik WD 80Gb (W,4K,512M): 52,42 MB/s.


  • Grafika:

    • gtkperf- testowanie różnych elementów GUI GNOME.

    • unigine-tropics- piękny test porównawczy 3D, potrzebujesz dostosowanych sterowników z obsługą akceleracji 3D.


Zalecane jest długoterminowe, zróżnicowane testowanie build-linux-kernel. Do krótkich testów warunków skrajnych promieniowanie rentgenowskie(wraz z programem

pytanie diagnostyka komputerowa właściciele komputerów PC lub laptopów są zwykle zdziwieni regularnymi błędami w swojej pracy. Ale znaczna część entuzjastów lubi podkręcanie procesorów, kart graficznych, przecenianie częstotliwości pracy pamięci itp. Oczywiście nieprzerwana praca w takich sytuacjach awaryjnych nie jest gwarantowana, a overclockerzy w trakcie przetaktowywania muszą sprawdzić stabilność przetaktowanego urządzenia. Sprawdzenie procesora- obowiązkowy krok podczas podkręcania procesora. Proponowany artykuł jest właśnie poświęcony zagadnieniu sprawdzania działania procesora przy maksymalnym obciążeniu po przyspieszeniu. Pożytek LinX 0.6 z bardzo prosty interfejs pomóż nam w tym.

Niedawno na stronie pojawił się artykuł, w którym wspomniano tylko o potrzebie diagnostyki procesora, ale nie było wyjaśnienia. Dzisiaj postanowiłem wypełnić tę lukę i opisać procedurę sprawdzenia procesora. Dla diagnostyka komputerowa potrzebujesz tylko jednego narzędzia zaprojektowanego z myślą o maksymalnym obciążeniu procesora przy zadaniach obliczeniowych. Nazwa tego kompaktowego programu to LinX. W tej chwili obecny jest LinX 0.6.5". Oprócz testowania stabilności narzędzie może być również używane jako dobry punkt odniesienia.

Perspektywa użytkownika LinX 0.6 bardzo prosta i wygodna rzecz z prostym i intuicyjnym interfejsem (wersja rosyjska i angielska). Obsługuje zarówno procesory Intel, jak i AMD. W ustawieniach można wybrać tryb pracy 32/64-bitowy, liczbę wątków, włączyć lub wyłączyć technologię Intel HyperThreading, ustawić liczbę uruchomień, monitorować postępy testowania „na żywo”… Automatyczne zapisywanie zestawu parametry testowe procesora pozwoli na testowanie z tymi samymi ustawieniami przy kolejnych uruchomieniach, na przykład podczas stopniowego podkręcania procesora.


Interfejs głównego okna programu zawiera tylko kilka kontrolek. Przede wszystkim interesują nas parametry „Pamięć” / „Pamięć” oraz liczba przebiegów „Liczba razy” / „Run”. Dla diagnostyka komputerowa zaleca się zaznaczenie całej dostępnej pamięci w pierwszym parametrze (przycisk „Wszystkie” obok „Pamięć”) i ustawienie „Ilości razy” / „Uruchom” empirycznie: wykonaj jeden bieg i oblicz wymaganą liczbę przebiegów aby program działał przez co najmniej godzinę. W menu „Ustawienia” / „Ustawienia” wybierz tryb 32/64 bitowy w zależności od zainstalowanego procesora i wersji systemu operacyjnego. Aby rozpocząć/zatrzymać test, użyj przycisków „Test”/„Stop” („Start”/„Stop”). Podczas testu wskaźnik postępu testu będzie wyświetlał czas, jaki upłynął od rozpoczęcia, a po zakończeniu ostatniego przejazdu wyświetli się napis „Ukończono bez błędów w MM m SS s” (lub „Ukończono bez błędów w MM m SS s” s” w angielskiej wersji interfejsu).

Podczas testowania niestabilnego systemu przez długi czas mogą wystąpić błędy. Pozycja „Stop on Error” w ustawieniach Linx 0.6 zatrzyma dalsze sprawdzanie procesora. Może to być bardzo przydatne, gdy wystąpią błędy z powodu przegrzanie procesora. W niektórych przypadkach test może zostać zatrzymany w odpowiednim czasie uratować życie do testowanego procesora. Jeśli po uruchomieniu narzędzia odnotowałeś temperaturę bliską krytycznej lub ją przekraczającą, jest to wyraźny sygnał, że musisz wymienić chłodnicę lub zmniejszyć przyspieszenie.

Za pomocą LinX 0.6.5 Jak reper wyniki wydajności procesora zostaną wyświetlone w kolumnie „GFlops” / „GFlops” tabeli końcowej głównego okna programu. Tak dla Intel Core i7-3770k, który został przetaktowany do 4,5 GHz, wynikiem będzie liczba w regionie 110…115 GFlopów w zależności od ustawień. po kilku uruchomieniach określony procesor jest umieszczany wyżej: prędkość jest wskazywana w tabeli dla każdego przebiegu, a linia stanu zawiera informację o szczytowej (maksymalnej) wydajności w GFlops.

Swoją drogą, jeśli się zastanawiasz Podkręcanie procesora, to być zdziwionym celowością włączenia technologii Hyper Threading dla procesora Intela. Bynajmniej nie we wszystkich zadaniach z HT następuje wzrost prędkości, ale dołączony HT bardzo często nie docenia możliwości przetaktowywania „kamienia”. Sądząc po licznych recenzjach, w większości gier nie ma najmniejszego wzrostu FPS z HyperThreading - tutaj „grywalność” jest bardziej zależna od karty graficznej.

Benchmark to miara maksymalnej wydajności komputera, wyrażona w konwencjonalnych punktach. Dzięki temu możesz porównać wydajność różnych komputerów lub tego samego komputera po np. przetaktowaniu lub undervoltingu.

Benchmark i test warunków skrajnych to nie to samo. Zarówno podczas testu porównawczego, jak i podczas testu warunków skrajnych system otrzymuje pełne obciążenie. Ale głównym celem testów porównawczych jest ocena wydajności, a głównym celem testu warunków skrajnych jest sprawdzenie, czy system może działać na swoim limicie obciążenia, lub określenie tego limitu. Chociaż w rzeczywistości niektóre programy łączą obie funkcje.

Benchmark można przeprowadzić dla systemu jako całości lub dla poszczególnych jego elementów: dla procesora centralnego, karty graficznej, systemu I/O.

Linux ma kilka programów do oceny wydajności procesora, na przykład: Sysbench, stres-ng I phoronix-test-suite. Z nich stres-ng pełni przede wszystkim funkcje testu warunków skrajnych, ale wyświetla wynikowe metryki, więc jest całkiem odpowiedni do oceny i porównania wydajności systemu.

Benchmark w sysbench

sysbench to narzędzie wiersz poleceń. Został stworzony do oceny wydajności serwerów z mocno obciążonym DBMS, ale nadaje się również do testów porównawczych konwencjonalnych systemów.

Instalacja na Ubuntu, Linux Mint, Debian, Kali Linux:

Sudo trafna instalacja Sysbench

Wbudowane testy:

  • plikio- Testowanie we/wy plików
  • procesor- Testowanie wydajności procesora
  • pamięć- Testowanie szybkości funkcji pamięci
  • wątki- Testowanie wydajności podsystemu wątków
  • muteks- Test wydajności Mutex

Aby uruchomić test wydajności procesora:

Uruchomienie procesora Sysbench

Zwróć uwagę na to, jak uruchamia się program: na początku jest nazwa testu, potem opcje (w pierwszym przykładzie ich nie ma), a na końcu polecenie.

Program posiada dwie alejki wykonawcze:

  • 10000 operacji z liczbami
  • Wykonanie 10 sekund

W zależności od tego, co nastąpi wcześniej, program zakończy działanie po 10 000 zdarzeń lub po 10 sekundach.

Nowoczesne procesory są bardzo wydajne i jeśli program jest wykonywany bardzo szybko, dane mogą zostać zniekształcone. Na przykład przy ocenie wydajności procesora pewną rolę odgrywa dławienie (resetowanie częstotliwości). Throttling rozpoczyna się z powodu przegrzania lub przekroczenia TDP. Efekty te obserwuje się tylko przy dużych odległościach procesora. Jeśli, na przykład, test zakończył się w ciągu sekundy i masz N przetworzonych operacji, nie oznacza to, że procesor w ciągu 60 sekund wykona 60*n operacji, ponieważ spowoduje spadek częstotliwości z powodu przegrzania i przekroczenia limitów rozpraszania ciepła określonych w TDP.

W przypadku dłuższego testu użyj opcji --cpu-max-prime I -czas. Pierwsza określa maksymalną liczbę wykonanych operacji, a druga określa maksymalny czas testu porównawczego. Gdy opcje są używane w tym samym czasie, priorytet ma -czas.

Nowoczesne procesory są wielordzeniowe i wielowątkowe:

Domyślny Sysbench działa w jednym wątku. Dlatego jeśli chcesz wykorzystać wszystkie rdzenie swojego procesora, skorzystaj z tej opcji --nici. Mam 6 fizycznych i 12 logicznych rdzeni procesora, więc użyję 12, aby upewnić się, że wszystkie procesory działają.

Podczas korzystania z opcji --cpu-max-prime, im krótszy czas realizacji programu, tym wydajniejszy procesor centralny:

Sysbench cpu --threads=12 --cpu-max-prime=100000 uruchom

Program zakończył pracę zbyt szybko - w ciągu 10 sekund jest mało prawdopodobne, aby procesor miał czas na poważne dławienie. Dlatego przy tych wartościach test jest odpowiedni do oceny szczytowej wydajności na krótkim dystansie.

Otrzymane wyniki:

Szybkość procesora: zdarzenia na sekundę: 538,23 Statystyki ogólne: całkowity czas: 10,0188 s całkowita liczba zdarzeń: 5393 Opóźnienie (ms): min: 19,85 śr.: 22,27 maks.: 30,56 95. percentyl: 23,10 suma: 120125,61 Sprawiedliwość wątków: zdarzenia (śr./ stddev): 449,4167/4,11 czas wykonania (śr/stddev): 10,0105/0,01

Zdarzenia szybkości procesora na sekundę oznacza liczbę operacji wykonywanych w centralnym procesorze na sekundę – im wyższa wartość, tym wydajniejszy system.

Statystyki ogólne całkowity czas oznacza całkowity czas wykonania operacji.

Statystyki ogólne łączna liczba zdarzeń oznacza łączną liczbę zakończonych zdarzeń.

Jeśli system wyłącza się zbyt szybko, możesz zwiększyć wartość np. do dwustu tysięcy zdarzeń:

Procesor Sysbench --cpu-max-prime=200000 uruchom

Innym sposobem sprawdzenia dławienia i oceny wydajności procesora przy ciągłym obciążeniu jest ustawienie czasu wykonania, w poniższym przykładzie czas ten jest ustawiony na 300 sekund.

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

Mam podczas korzystania z opcji -czas I --cpu-max-prime Zdarzenia związane z szybkością procesora na sekundę różnią się dziesiątkami razy - najwyraźniej albo jakiś błąd w programie, albo program oblicza według innych zasad.

Benchmark w pakiecie testowym phoronix

Zainstaluj program:

Sudo apt install phoronix-test-suite

Uruchom - po raz pierwszy musisz zaakceptować umowę licencyjną, dzięki czemu program poprosi o zgodę na wysyłanie anonimowych statystyk:

Phoronix-test-suite list-available-suites

Poprzednie polecenie wyświetli listę dostępnych testów porównawczych.

Dostępne zestawy testów w Phoronix Test Suite v8.0.1

Punkty/kodowanie audio - System kodowania dźwięku pkt/szachy - Zestaw testów szachowych Procesor pkt/kompilacja - Procesor kompilacji kodu czasowego pkt/kompilator - Procesor kompilatora pkt/kompresja - Procesor kompresji plików w czasie pkt/obliczeniowo - Zestaw testów obliczeniowych System pkt/obliczeniowy -biology - Computational Biology Test Suite Processor pts/cpu - CPU / Processor Suite Processor pts/cryptography - Cryptography Processor pts/daily-kernel-tracker - Daily Kernel Tracker System pts/daily-system-tracker - Daily System Tracker System pts/database - Database Test Suite System pts/desktop-graphics - Desktop Graphics System pts/disk - Disk Test Suite Disk pts/encoding - System kodowania pts/favourites - Ulubione System * pts/gaming - Gaming System pts/gaming-closed - Closed-Source Gaming System * pts/gaming-free - Free Software Gaming System pts/gui-toolkits - GUI Toolkits Graphics pts/ioquake3-games - Gry korzystające z silnika ioquake3 System pts/iqc - Image Quality Comparison Suite Graphics pts/java - Java System pts /java-opengl - Java OpenGL System pts/kernel - Kernel System pts/linux-system - Linux System systemowy pts/machine-learning - Machine Learning System pts/memory - Memory Test Suite Memory pts/mesa - Mesa Test Suite Graphics pts/ płyta główna - Płyta główna System pts/multicore - Procesor wielordzeniowy pts/netbook - Netbook Test Suite System pts/network - Networking Test Suite Network pts/nevada - OpenSolaris Nevada Test Suite System pts/opencl - OpenCL System pts/opengl-demos - OpenGL Dema Test Suite System 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/server - Serwer Płyta główna System pts/ue4 - Unreal Engine 4 Tech Demos On Linux Graphics pts/universe - 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/ kodowanie wideo - Video Encoding System pts/workstation - Workstation System pts/workstation-graphics - Workstation Graphics Graphics pts/xrender - X Render Extension Testing System/kolekcja grafiki - Collection System

Częściowo obsługiwane zestawy są oznaczone gwiazdką.

Aby uruchomić ocenę wydajności procesora:

Phoronix-test-suite uruchom pts/cpu

Należy pamiętać, że pts/cpu i inne testy porównawcze zajmują kilka gigabajtów miejsca na dysku. Na przykład pts/cpu pobierze około 3 GB danych i zajmie około 7 GB miejsca na dysku (w katalogu domowym użytkownika).

Aby uzyskać informacje na temat monitorowania bieżącej częstotliwości i temperatury procesora w systemie Linux, zobacz.

Uruchomiłem test Linpacka i pomyślałem: czy to już czas na wymianę pasty termoprzewodzącej w moim laptopie?

Tak, zgodnie z wynikami kilku testów z rzędu (nie będę zaśmiecał artykułu zdjęciami), jasne jest, że procesor przechodzi w dławienie (pomijanie cykli i resetowanie częstotliwości po podgrzaniu), ale jak szybko się uruchamia robiąc to?

Test obciążeniowy procesora w terminalu Linux

Po zadaniu tego pytania i przeszukaniu Internetu w poszukiwaniu narzędzi zdałem sobie sprawę, że głównym problemem w rozwiązaniu postawionego przeze mnie zadania było jednoczesne uruchomienie co najmniej kilku narzędzi i szerokich oczu w dwóch oknach ... I doszedłem do wniosku, że wersja konsolowa jest dla mnie bardziej odpowiednia niż wielokolorowe okna otwartych programów.

Zacząłem od sysbencha:

sudo apt install sysbench

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

  • --liczba wątków=4- to ilość wątków, mam dwurdzeniowy czterowątkowy Intel® Core™ i7-640M, czyli 4;
  • --cpu-max-prime=100000- jest to maksymalna liczba wykonanych operacji, ustawiłem ją na 100000, ponieważ wartość domyślna to 10000, co oznacza zbyt wczesne zakończenie testu.

Potem przerzuciłem się na Linpacka. Ponieważ mam procesor od Intela i mam pewną dozę lenistwa (lenistwo jest motorem postępu), wziąłem, pobrałem i rozpakowałem gotowy Intel Linpack, po utworzeniu katalogu linpack w moim katalogu domowym:

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

W przypadku procesorów AMD nie próbowałbym tej opcji, skoro kompilator od Intela wstawia zakładki sprawdzające procesor, a jeśli to nie Intel… no to pomyśl o stu czy dwóch dodatkowych instrukcjach, procesor wykona i oczywiście przegra wydajność. W przypadku AMD lepiej jest budować Linpack z takich źródeł. W tym artykule nie będę rozważał budowania ze źródeł - przeczytaj README w kodzie źródłowym.

Wróćmy do Linpacka Intela. Jest dużo dodatkowych rzeczy i nie potrzebuję tego, ale co muszę wziąć pod uwagę w odniesieniu do wersji 2018.3.011. Natychmiast przejdę do żądanego katalogu, aby później nie wpisywać długich poleceń:

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

Ponieważ Linpack firmy Intel jest domyślnie przeznaczony do testowania serwerowych Xeonów, stwórzmy własny plik, który będzie służył jako opcje wejściowe - wystarczy zmniejszyć liczbę testów, inaczej znudzi nam się „kilka dni” czekania na test do ukończenia. Mam Linux Mint LMDE 3, więc używam stałego edytora tekstu i lubię go za większą funkcjonalność, zwłaszcza gdy uruchamiam go jako root - zmienia kolor na czerwony. I tak tworzymy w tym samym katalogu, do którego się przenieśliśmy, plik, na przykład my_test:

I skopiuj następującą zawartość do utworzonego pliku:

Wersja oprogramowania Intel(R) Distribution z pamięcią współdzieloną do testów porównawczych LINPACK*. *Inne nazwy i marki mogą być przedmiotem praw innych osób.
Przykładowy plik danych lininput_xeon64.
5 # liczba testów
1000 2000 5000 10000 20000 # rozmiary problemów
1000 2000 5008 10000 20000 # wymiary wiodące
4 2 2 2 1 # razy, aby uruchomić test
4 4 4 4 4 # wartości wyrównania (w KB)

Cóż, właściwie uruchomienie Linpacka z utworzonym plikiem:

./xlinpack_xeon64 -i ./mój_test

./xlinpack_xeon64 ./mój_test

Możesz także użyć stress-ng lub stress, ale to nadal nie rozwiązuje problemu, który postawiłem. Te narzędzia nie pokazują mi danych wyjściowych temperatury, częstotliwości i czasu od samego początku.

Temperaturę mogą pokazywać czujniki - więcej o instalacji tego narzędzia. I to narzędzie będzie potrzebne w dalszym rozważaniu mojego pytania. Linux jest świetny i potężny: to samo zadanie można rozwiązać na różne sposoby. Byłem zbyt leniwy, żeby wziąć się za C, a brakującą część napisałem dla siebie w BASH-u, bo nie było zbyt wielu linijek. Bez zainstalowanych czujników mój skrypt nie będzie działał. Oczywiście nie napisałem, że fiksacja dławienia - i tak będzie widoczna po zresetowaniu częstotliwości i temperatury. Oto sam skrypt:

#!/bin/bash
out=0 # zmienna kontrolna procesu testowego
pid_test="tty" # PID procesu testowego (sprawił, że istniejący katalog działa bez argumentów)
cpus_num=$(cat /proc/cpuinfo | grep -ci "procesor") # liczba procesorów/rdzeni/wątków
echo -pl "\033[?25l" 1>&2 # ukryj kursor
echo -pl "\033[^:]*: //g" | sort -u # model procesora wyjściowego
echo -en "\033=$(czujniki | sed "/Core ""$i""/!d;s/.*crit = +\(.*\)[.]°C).*/\1/ ")
if [ -n "$(cpu_crit_temp[i])" ]
Następnie
niech cpu_red_temp[i]=cpu_crit_temp[i]-10
niech cpu_yel_temp[i]=cpu_crit_temp[i]-30
cpu_min_temp[$i]=1000
cpu_max_temp[$i]=0
fi
zrobione
start_time=$(cat /proc/uptime | sed "s/[.] .*$//") # czas rozpoczęcia
if [ -n "1 $" ]
Następnie
script_pid="$$"
(if ! $@ > "$0_out" 2>&1 # uruchom plik testowy
Następnie
kill -s SIGABRT $script_pid # sygnalizuje, że główny skrypt nie może się uruchomić
fi 2>/dev/null)&
pid_test="$!" # PID procesu testowego
fi
while (true) # kontrola temperatury
Do
dla ((i=0; i<$cpus_num; i++))
Do
cpu_freq[$i]=$(cat /sys/devices/system/cpu/cpu$(i)/cpufreq/scaling_cur_freq | sed "s/...$//")
cpu_temp[$i]=$(czujniki | sed "/Core ""$i""/!d;s/.*+\(.*\)[.]°C[\t]*(.*/\ 1/")
if [ -n "$(temp_procesora[i])" ]
Następnie
(($(temp_procesora[i])< ${cpu_min_temp[i]})) && cpu_min_temp[$i]=${cpu_temp[i]}
jeśli (($(temp_procesora[i]) > $(maks.temp._procesora[i])))
Następnie
cpu_max_temp[$i]=$(cpu_temp[i])
time_max[$i]=$(cat /proc/uptime | sed "s/[.] .*$//")
niech czas_maks[i]=maks_czas[i]-czas_początkowy
fi
if (($(cpu_temp[i]) > $(cpu_red_temp[i])))
Następnie
echo -en "procesor$(i):\t"
echo -pl "\033)"
echo -pl "\033)"
echo -pl "\033)"
echo -en "\033) > $(cpu_yel_temp[i])))
Następnie
echo -en "procesor$(i):\t"
echo -pl "\033)"
echo -pl "\033)"
echo -pl "\033)°C; maks.: "
echo -pl "\033)"
echo -en "\033)sek)"
w przeciwnym razie
echo -en "procesor$(i):\t"
echo -pl "\033)"
echo -pl "\033)"
echo -pl "\033)°C; maks.: "
echo -pl "\033)"
echo -en "\033)sek)"
fi
w przeciwnym razie
echo -en "procesor$(i):\t"
echo -pl "\033)"
echo -en "\033 .*$//")
niech czas=czas-początek_czas
echo -en "Czas:\t$czas sek."
[! -d "/proc/$(pid_test)" ] && break # wyjście po zakończeniu testu ( Najlepszym sposobem sterowanie przez comm i cmdline, ale ... zbyt leniwy)
[ "$out" != "0" ] && break # wyjście w przypadku niepowodzenia testu
echo -en "\033[$(i)A\r" 1>&2 # przesuń kursor w górę $i wierszy i na początek wiersza
sleep 0.1 # pauza, aby częstotliwość wyjściowa nie skakała zbytnio
zrobione
Echo ""
echo -pl "\033[?25h" 1>&2 # włącz kursor
if [[ "$wyjście" == "0" && -n "$1" ]]
Następnie

rm -fR "$0_wyjście"
wyjście 0
elif [[ "$wyjście" == "1" && -n "$1" ]]
Następnie
kill -9 "$pid_test" 1>/dev/null 2>/dev/null
kot "$0_out" | sed "/^$/d;/Przykładowe dane/d;/Częstotliwość procesora/d;/Ustawiono parametry/,/Wartość wyrównania danych/d"
rm -fR "$0_wyjście"
wyjście 1
elif[ "$wyjście" == "1" ]
następnie wyjdź 1
elif[ "$wyjście" == "2" ]
Następnie
echo -pl "\033)

mob_info