EnglezăFrancezăSpaniolă

Favicon OnWorks

pg_test_timing - Online în cloud

Rulați pg_test_timing în furnizorul de găzduire gratuit OnWorks prin Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

Aceasta este comanda pg_test_timing care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

PROGRAM:

NUME


pg_test_timing - măsoară timpul general

REZUMAT


pg_test_timing [opțiune...]

DESCRIERE


pg_test_timing este un instrument de măsurare a timpului general al sistemului dvs. și de a confirma acest lucru
ora sistemului nu se mișcă niciodată înapoi. Sistemele care sunt lente în colectarea datelor de sincronizare pot
da mai puțin precis EXPLICAȚI A ANALIZA rezultate.

OPŢIUNI


pg_test_timing acceptă următoarele opțiuni de linie de comandă:

-d durată
--durata=durată
Specifică durata testului, în secunde. Duratele mai lungi dau ceva mai bine
precizie și este mai probabil să descopere probleme cu ceasul sistemului în mișcare
înapoi. Durata implicită a testului este de 3 secunde.

-V
--versiune
Imprimați versiunea pg_test_timing și ieșiți.

-?
--Ajutor
Afișați ajutor despre argumentele din linia de comandă pg_test_timing și ieșiți.

UTILIZARE


Interpretarea rezultate obținute
Rezultatele bune vor arăta că majoritatea (>90%) apelurilor individuale de sincronizare durează mai puțin de o microsecundă.
Valoarea medie pe buclă va fi și mai mică, sub 100 de nanosecunde. Acest exemplu din an
Sistemul Intel i7-860 care utilizează o sursă de ceas TSC arată performanțe excelente:

Testarea cronometrajului timp de 3 secunde.
Timp per buclă, inclusiv overhead: 35.96 sec
Histograma duratelor de sincronizare:
< usec % din numărul total
1 96.40465 80435604
2 3.59518 2999652
4 0.00015 126
8 0.00002 13
16 0.00000 2

Rețineți că sunt utilizate unități diferite pentru timpul per buclă decât histograma. Bucla poate
au rezoluție în câteva nanosecunde (nsec), în timp ce apelurile individuale de sincronizare pot
rezolvați doar până la o microsecundă (usec).

Măsurare executor testamentar sincronizare deasupra
Când executorul de interogări rulează o instrucțiune folosind EXPLICAȚI A ANALIZA, individual
operațiunile sunt cronometrate, precum și afișarea unui rezumat. Suprafața sistemului dumneavoastră poate fi
verificat prin numărarea rândurilor cu programul psql:

CREATE TABLE t AS SELECT * FROM generate_series(1,100000);
\sincronizare
SELECTARE CONT(*) DIN t;
EXPLICAȚI ANALIZA SELECTARE NUMĂRĂ (*) DIN t;

Sistemul i7-860 măsurat rulează interogarea de numărare în 9.8 ms în timp ce EXPLICAȚI A ANALIZA
versiunea durează 16.6 ms, fiecare procesând puțin peste 100,000 de rânduri. Diferenta aceea de 6.8 ms
înseamnă că overhead de sincronizare pe rând este de 68 ns, aproximativ de două ori mai mult decât a estimat pg_test_timing
va fi. Chiar și acea cantitate relativ mică de supraîncălcare face să conteze complet cronometrat
declarația durează cu aproape 70% mai mult. În cazul interogărilor mai substanțiale, costul general de sincronizare ar fi
fi mai puțin problematică.

Schimbarea timp surse
Pe unele sisteme Linux mai noi, este posibil să schimbați sursa de ceas folosită pentru colectare
date de sincronizare în orice moment. Un al doilea exemplu arată încetinirea posibilă de la trecerea la
sursa de timp acpi_pm mai lentă, pe același sistem folosit pentru rezultatele rapide de mai sus:

# pisică /sys/devices/system/clocksource/clocksource0/available_clocksource
tsc hpet acpi_pm
# echo acpi_pm > /sys/devices/system/clocksource/clocksource0/current_clocksource
# pg_test_timing
Timp per buclă, inclusiv overhead: 722.92 sec
Histograma duratelor de sincronizare:
< usec % din numărul total
1 27.84870 1155682
2 72.05956 2990371
4 0.07810 3241
8 0.01357 563
16 0.00007 3

În această configurație, eșantionul EXPLICAȚI A ANALIZA de mai sus durează 115.9 ms. Adică 1061 sec
de cronometrare, din nou, un mic multiplu a ceea ce este măsurat direct de acest utilitar.
Atâta suprasarcină de timp înseamnă că interogarea reală în sine ia doar o mică parte din
în considerarea timpului, cea mai mare parte este consumată în schimb. In acest
configurație, orice EXPLICAȚI A ANALIZA totalurile care implică multe operațiuni cronometrate ar fi
umflat în mod semnificativ prin cronometrarea deasupra capului.

FreeBSD permite, de asemenea, schimbarea sursei de timp din mers și înregistrează informații despre
temporizator selectat în timpul pornirii:

# dmesg | grep "Timecounter"
Timecounter „ACPI-rapid” frecvență 3579545 Hz calitate 900
Timecounter „i8254” frecvență 1193182 Hz calitate 0
Contoarele de timp bifează la fiecare 10.000 msec
Frecvența cronometru „TSC” 2531787134 Hz ​​calitate 800
# sysctl kern.timecounter.hardware=TSC
kern.timecounter.hardware: ACPI-fast -> TSC

Alte sisteme pot permite doar setarea sursei de timp la pornire. Pe sistemele mai vechi Linux,
Setarea nucleului „ceas” este singura modalitate de a face acest tip de schimbare. Și chiar și pe altele
cele recente, singura opțiune pe care o veți vedea pentru o sursă de ceas este „jiffies”. Jiffies sunt
implementare mai veche a ceasului software Linux, care poate avea o rezoluție bună atunci când este susținută
prin hardware de sincronizare suficient de rapid, ca în acest exemplu:

$ pisica /sys/devices/system/clocksource/clocksource0/available_clocksource
fulgi
$ dmesg | grep time.c
time.c: se utilizează cronometrul WALL PM GTOD PIT/TSC de 3.579545 MHz.
time.c: Procesor detectat de 2400.153 MHz.
$ pg_test_timing
Testarea cronometrajului timp de 3 secunde.
Per durata de sincronizare, inclusiv supraîncărcarea buclei: 97.75 ns
Histograma duratelor de sincronizare:
< usec % din numărul total
1 90.23734 27694571
2 9.75277 2993204
4 0.00981 3010
8 0.00007 22
16 0.00000 1
32 0.00000 1

Ceas hardware si sincronizare precizie
Colectarea informațiilor precise de sincronizare se face în mod normal pe computere folosind ceasuri hardware
cu diferite niveluri de precizie. Cu unele hardware sistemele de operare pot trece
ora ceasului sistemului aproape direct la programe. Un ceas de sistem poate fi, de asemenea, derivat din a
cip care oferă pur și simplu întreruperi de sincronizare, bifături periodice la un interval de timp cunoscut.
În ambele cazuri, nucleele sistemului de operare oferă o sursă de ceas care ascunde aceste detalii.
Dar acuratețea acelei surse de ceas și cât de repede poate returna rezultate variază în funcție
pe hardware-ul de bază.

Păstrarea incorectă a timpului poate duce la instabilitate a sistemului. Testați orice modificare a ceasului
sursa foarte atent. Setările implicite ale sistemului de operare sunt uneori făcute pentru a favoriza fiabilitatea
peste cea mai bună precizie. Și dacă utilizați o mașină virtuală, uitați-vă la timpul recomandat
surse compatibile cu acesta. Hardware-ul virtual se confruntă cu dificultăți suplimentare la emulare
temporizatoare și există adesea setări pentru fiecare sistem de operare sugerate de furnizori.

Sursa de ceas Time Stamp Counter (TSC) este cea mai precisă disponibilă în prezent
CPU-uri de generație. Este modalitatea preferată de a urmări ora sistemului atunci când este acceptată de
sistemul de operare și ceasul TSC sunt fiabile. Există mai multe moduri prin care TSC poate
nu reușește să furnizeze o sursă de sincronizare precisă, ceea ce o face nesigură. Sistemele mai vechi pot avea un
Ceas TSC care variază în funcție de temperatura procesorului, făcându-l inutilizabil pentru sincronizare. Încercând
utilizarea TSC pe unele procesoare multicore mai vechi poate oferi un timp raportat care este inconsecvent între
nuclee multiple. Acest lucru poate duce la trecerea timpului înapoi, o problemă pe care acest program o verifică
pentru. Și chiar și cele mai noi sisteme pot să nu reușească să ofere sincronizare TSC precisă cu foarte
configurații agresive de economisire a energiei.

Sistemele de operare mai noi pot verifica problemele TSC cunoscute și pot trece la un sistem mai lent, mai mult
sursă de ceas stabilă atunci când sunt văzute. Dacă sistemul dumneavoastră acceptă ora TSC, dar nu
implicit, acesta poate fi dezactivat dintr-un motiv întemeiat. Și unele sisteme de operare s-ar putea să nu
detectează corect toate problemele posibile sau va permite utilizarea TSC chiar și în situații
unde se știe că este inexact.

Temporizatorul de evenimente de înaltă precizie (HPET) este cronometrul preferat pentru sistemele în care se află
disponibil și TSC nu este exact. Cipul cronometrului în sine este programabil pentru a permite până la
Rezoluție de 100 de nanosecunde, dar este posibil să nu vedeți atât de multă precizie în ceasul sistemului.

Configurație avansată și interfață de alimentare (ACPI) oferă un temporizator de gestionare a energiei (PM),
la care Linux se referă ca acpi_pm. Ceasul derivat din acpi_pm va oferi în cel mai bun caz
Rezoluție de 300 nanosecunde.

Temporizatoarele utilizate pe hardware-ul PC mai vechi includ temporizatorul cu intervale programabile (PIT) 8254
ceasul în timp real (RTC), temporizatorul Advanced Programmable Interrupt Controller (APIC) și
temporizatorul Cyclone. Aceste temporizatoare vizează rezoluția în milisecunde.

Utilizați pg_test_timing online folosind serviciile onworks.net


Servere și stații de lucru gratuite

Descărcați aplicații Windows și Linux

Comenzi Linux

Ad