Benchmarks voor servers op Linux: een selectie van open-source tools

We blijven praten over tools voor het evalueren van CPU-prestaties op Linux-machines. Het materiaal van vandaag: temci, uarch-bench, likwid, perf-tools en llvm-mca.

Meer benchmarks:

Benchmarks voor servers op Linux: een selectie van open-source tools
Фото - Lucas Blazek - ontspatten

temci

Dit is een tool om de uitvoeringstijd van twee programma's te evalueren. In essentie kun je hiermee de uitvoeringstijd van twee applicaties vergelijken. De auteur van het hulpprogramma was een student uit Duitsland, Johannes Bechberger, die het ontwikkelde als onderdeel van zijn bachelorscriptie in 2016. Vandaag de dag is de tool beschikbaar. gedistribueerd door onder de GNU General Public License.

Johannes wilde een tool creëren waarmee de prestaties van een computersysteem in een gecontroleerde omgeving konden worden gemeten. Een van de belangrijkste kenmerken van temci is daarom de mogelijkheid om een ​​testomgeving op te zetten. Bijvoorbeeld: men kan: instellingen van de CPU-frequentiebeheer wijzigen, uitschakelen hyperthreading en L1- en L2-caches, schakel de turbomodus uit op Intel-processors, enz. Voor benchmarking gebruikt temci tools Time to, prestatiestatistieken и verloving.

Dit is hoe het nut in het eerste geval werkt:

# 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

Op basis van de benchmarkresultaten genereert het systeem handig rapport met diagrammen, tabellen en grafieken, waardoor temci zich onderscheidt van vergelijkbare oplossingen.

Een van de nadelen van temci is de "jeugd". Hierdoor is het ondersteunt niet alles hardware- en softwareconfiguraties. Het is bijvoorbeeld moeilijk om het te draaien onder macOSEn sommige functies zijn niet beschikbaar op systemen met een ARM-processor. Dit kan in de toekomst veranderen, aangezien de auteur actief aan het project werkt en het aantal sterren op GitHub geleidelijk toeneemt – nog niet zo lang geleden had temci zelfs besproken in de reacties op Hacker News.

uarch-bank

Een hulpprogramma voor het evalueren van de prestaties van CPU-functies op laag niveau, ontwikkeld door ingenieur Travis Downes (Travis Downs). Hij is onlangs zijn eigen blog begonnen. Prestaties zijn belangrijk op GitHub Pages, waar hij praat over benchmarkingtools en andere gerelateerde zaken. Over het algemeen begint uarch-bench pas net aan populariteit te winnen, maar het wordt al vrij vaak gebruikt. genoemd door bewoners van Hacker News in thematische threads als een go-to-tool voor benchmarking.

Met Uarch-bench kunt u de geheugenprestaties, de snelheid van parallel laden van gegevens en opschoningswerkzaamheden evalueren YMM-registersHoe de benchmarkresultaten eruit zien die door het programma worden gegenereerd, kunt u vinden in de officiële repository onderaan de pagina.

Het is de moeite waard om op te merken dat uarch-bench, net als temci, schakelt uit Intel Turbo Boost-functie (verhoogt automatisch de kloksnelheid van de processor onder belasting) om consistente testresultaten te garanderen.

Het project bevindt zich nog in een vroeg stadium van ontwikkeling, dus uarch-bench heeft geen gedetailleerde documentatie en de werking ervan kan bugs bevatten, bijvoorbeeld: de moeilijkheden zijn bekend met lancering op Ryzen. Ook worden alleen benchmarks voor x86-architecturen ondersteund. De auteur belooft in de toekomst meer functionaliteit toe te voegen en nodigt u uit om mee te werken aan de ontwikkeling.

likwid

Dit is een set hulpmiddelen voor prestatie-evaluatie. Linux-machines met Intel-, AMD- en ARMv8-processors. Het werd in 2017 ontwikkeld onder auspiciën van het Duitse federale ministerie van Onderwijs en Onderzoek en als open source uitgebracht.

Onder de likwid-tools kunnen we likwid-powermeter noemen, die informatie uit RAPL-registers weergeeft over het stroomverbruik van het systeem, en likwid-setFrequencies, waarmee u de processorfrequentie kunt regelen. U kunt de volledige lijst bekijken. vinden in repository.

De tool wordt gebruikt door ingenieurs die zich bezighouden met HPC-onderzoek. Bijvoorbeeld met likwid werken een team van specialisten van het Regionaal Rekencentrum van de Universiteit Erlangen-Neurenberg (RRZE) in Duitsland, die ook actief betrokken zijn bij de ontwikkeling van deze toolkit.

Benchmarks voor servers op Linux: een selectie van open-source tools
Фото - Clem Onojeghuo - ontspatten

perf-tools

Dit is een tool voor prestatieanalyse. Linux-servers ingediend Brendan Gregg. Hij is een van de ontwikkelaars. DTrace — een dynamisch traceringsframework voor het in realtime debuggen van applicaties.

De perf-tools zijn gebaseerd op de kernelsubsystemen perf_events en ftrace. Met hun hulpprogramma's kunt u de input-/output-latentie analyseren (iosnoop), argumenten voor systeemaanroepen volgen (unccount, funcslower, funcgraph en functrace) en statistieken verzamelen over hits in de bestandscache (cachestat). In het laatste geval ziet de opdracht er als volgt uit:

# ./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

Er is een behoorlijk grote community ontstaan ​​rond de tool (bijna 6k sterren op GitHub). En er zijn bedrijven die actief perf-tools gebruiken, bijvoorbeeld NetflixMaar de tool wordt verbeterd en aangepast (hoewel er de laatste tijd vrij zelden updates zijn uitgebracht). Daardoor kunnen er fouten optreden tijdens de werking ervan - de auteur schrijft dat perf-tools soms kernel panics veroorzaken.

llvm-mca

Een hulpprogramma dat voorspelt hoeveel rekenkracht machinecode op verschillende CPU's nodig heeft. evalueert Instructies per cyclus (IPC) en de hardwarebelasting die door een specifieke toepassing wordt gegenereerd.

llvm-mca werd in 2018 geïntroduceerd als onderdeel van het project LLVM, die een universeel systeem ontwikkelt voor het analyseren, transformeren en optimaliseren van programma's. Het is bekend dat de auteurs van llvm-mca geïnspireerd werden door de oplossing voor het analyseren van softwareprestaties. IACA door Intel en probeerde er een alternatief voor te creëren. En volgens gebruikers lijkt de output van de tool (de markup en kwantiteit) echt op IACA – een voorbeeld is hier te vinden. llvm-mca accepteert echter alleen AT&T-syntaxis, dus om ermee te kunnen werken, zult u waarschijnlijk converters moeten gebruiken.

Waarover schrijven we op onze blogs en sociale netwerken:

Benchmarks voor servers op Linux: een selectie van open-source tools "Math. Model van Wall Street" of hoe cloudkosten te optimaliseren

Benchmarks voor servers op Linux: een selectie van open-source tools Hoe bescherm je jezelf? Linux-systeem: 10 tips
Benchmarks voor servers op Linux: een selectie van open-source tools Risicominimalisatie: hoe u uw gegevens niet verliest

Benchmarks voor servers op Linux: een selectie van open-source tools Boeken voor wie al met systeembeheer bezig is of net van plan is te beginnen
Benchmarks voor servers op Linux: een selectie van open-source tools Collectie: Vijf boeken en één cursus over netwerken

Benchmarks voor servers op Linux: een selectie van open-source toolsWij van 1cloud.ru bieden een gratis service "DNS-hostingU kunt DNS-records beheren in uw persoonlijke account.

Bron: www.habr.com

Koop betrouwbare hosting voor sites met DDoS-bescherming, VPS VDS-servers 🔥 Koop betrouwbare websitehosting met DDoS-bescherming, VPS- en VDS-servers | ProHoster