- Kombinacija DCGM, dcgm-exporter in Metricbeat omogoča podrobno spremljanje pomnilnika, temperature in zmogljivosti grafičnih procesorjev NVIDIA v Linuxu.
- Elastic Observability in Kibana olajšata analizo in vizualizacijo meritev GPU skupaj z meritvami CPE za odkrivanje ozkih grl in težav z infrastrukturo.
- Prilagajanje samodejnega povečanja, profilov porabe energije in takta grafične kartice je ključnega pomena za doseganje stabilne in maksimalne zmogljivosti tako v podatkovnih centrih kot pri igranju iger.
- V Linuxu vrhunski grafični procesorji NVIDIA ponujajo boljšo podporo in zmogljivost kot AMD, zlasti pri zahtevnih igrah in 4K delovnih obremenitvah.
Če delate z grafičnimi procesorji NVIDIA v Linuxu, boste prej ali slej morali razumeti, kaj se dogaja s pomnilnikom, zmogljivostjo in notranjo statistiko vašega sistema . Ne glede na to, ali gre za igranje iger, strojno učenje, znanstvene simulacije ali podatkovni center, spremljanje teh podatkov naredi razliko med strojem, ki zgolj "deluje", in resnično optimizirano platformo.
Hkrati mnogi uporabniki začnejo uporabljati Linux s pričakovanjem boljše zmogljivosti kot v sistemu Windows z grafično kartico NVIDIA , vendar nato naletijo na primerjalne teste, ki ne pokažejo vedno pričakovanih rezultatov. Ključno je vedeti, kako spremljati, interpretirati in natančno nastaviti tako operacijski sistem kot konfiguracijo grafičnega procesorja, pri čemer je treba uporabiti posebna orodja, kot so DCGM, dcgm-exporter, gpu-monitoring-tools in rešitve za opazovanje, kot je Elastic.
Zmogljivost grafičnih procesorjev NVIDIA v Linuxu: pričakovanja in realnost
Ko nekdo s sodobno grafično kartico, kot je RTX 4070 ali druga vrhunska grafična kartica , razmišlja o prehodu na Linux, je zelo običajno, da razišče forume, Reddit, videoposnetke na YouTubu in vse vrste vodnikov. Že leta se ponavlja ideja, da Linux vedno deluje bolje kot Windows, vendar je resničnost, ko pogledamo resne primerjalne teste in merila uspešnosti , veliko bolj niansirana.
Na področju iger se je Linux znatno izboljšal zahvaljujoč platformam Steam, Protonu in DXVK , ki omogočajo delovanje večine iger za Windows na tej platformi. Vendar pa pri pregledu rezultatov v zahtevnih igrah ni vedno dosežena enaka raven FPS kot v sistemu Windows, še posebej, če igra nima izvorne različice in se zanaša na plasti združljivosti.
Zunaj iger so grafični procesorji NVIDIA postali temelj visokozmogljive infrastrukture : učenje nevronskih mrež, kompleksne fizikalne simulacije, upodabljanje in ogromne delovne obremenitve podatkovnih centrov. V tem kontekstu je spremljanje porabe pomnilnika v Linuxu in maksimiranje zmogljivosti grafičnih procesorjev NVIDIA ključnega pomena, in prav tukaj dober sistem spremljanja naredi vso razliko.
Pomembno je tudi upoštevati, da v Linuxu zmogljivost ni odvisna samo od samega grafičnega procesorja, temveč od kombinacije lastniških gonilnikov NVIDIA, jedra, izbrane distribucije ter nastavitev napajanja in takta kartice. Če kateri koli od teh elementov ni usklajen, lahko primerjalni testi pokažejo razočarajoče rezultate tudi z zelo zmogljivo strojno opremo.
Zakaj je spremljanje GPU-ja tako pomembno v Linuxu?
Grafični procesorji NVIDIA niso več le "igralne kartice"; postali so osrednja komponenta v podatkovnih centrih, javnih oblakih in računalniško intenzivnih okoljih . V mnogih uvedbah večina računalniške moči prihaja iz grafičnega procesorja in ne iz centralnega procesorja, zato je ignoriranje njegovih meritev zmogljivosti preprosto luksuz, ki si ga ne morejo privoščiti ne podjetja ne zahtevni uporabniki.
V teh primerih ni dovolj vedeti, koliko skupnega pomnilnika imate ali kateri model grafične kartice je nameščen. Bistveno je, da lahko vidite porabo pomnilnika v realnem času, obremenitev grafične kartice, temperaturo, porabo energije , taktne hitrosti in druge notranje števce, ki dajejo namige o ozkih grlih ali težavah s stabilnostjo.
Poleg tega je Linux prevladujoči operacijski sistem v računalniških gručah, visokozmogljivem računalništvu in platformah za umetno inteligenco v oblaku , zato se celotna infrastruktura za spremljanje običajno vrti okoli njega. NVIDIA ponuja lasten sklad za prikazovanje metrik, rešitve, kot je Elastic Observability, pa omogočajo centralizacijo teh podatkov, njihovo vizualizacijo in ustvarjanje inteligentnih opozoril na zelo prilagodljiv način.
Če uporabljate grafične procesorje NVIDIA s ponudniki, kot so Google Cloud, AWS ali Genesis Cloud , vam spremljanje ne pomaga le pri odkrivanju napak, temveč vam pomaga tudi pri preverjanju, ali se tisto, za kar plačujete v oblaku, uporablja učinkovito, s čimer se izognete nepotrebnim stroškom zaradi premalo izkoriščenih ali napačno konfiguriranih primerkov.
Druga ključna točka je, da za razliko od metrik CPU številne metrike GPU niso tako dobro integrirane v standardna orodja Linuxa. Zato so še posebej uporabne komponente, kot je NVIDIA Datacenter GPU Manager (DCGM) in namenski izvozniki metrik, ki se integrirajo s sodobnimi sistemi za opazovanje.
Osnovne odvisnosti: gonilniki NVIDIA, DCGM in orodja za spremljanje
Za pridobitev optimizirane statistike pomnilnika Linuxa na NVIDIA je prvi korak dobro konfigurirano okolje: pravilni gonilniki, orodja za grafične procesorje in rešitev za opazovanje za zbiranje in vizualizacijo podatkov. Nesmiselno je imeti lepe grafe, če sistem ne more dosledno prikazovati metrik.
V okoljih podatkovnih centrov NVIDIA ponuja Datacenter GPU Manager (DCGM) , ki služi kot osnova za zbiranje širokega nabora meritev, od porabe pomnilnika in temperature do podrobnih informacij o notranji zmogljivosti. Namestitev običajno temelji na paketih za priljubljene distribucije, kot je Ubuntu 18.04 in druge združljive različice.
Med postopkom nastavitve, ki ga opisuje NVIDIA, je pomembno biti pozoren na podrobnosti, kot je parameter v repozitorijih CUDAZa tipične 64-bitne sisteme je rezultat ukaza uname -a To kaže, da je arhitektura x86_64Zato morajo vrstice, ki so dodane sistemu paketov, to vrednost pravilno uporabljati.
Tipičen primer dodajanja repozitorija CUDA v distribucijo, ki temelji na Debianu/Ubuntuju, bi bil nekaj takega:
echo "deb http://developer.download.nvidia.com/compute/cuda/repos/$distribution/x86_64 /" | sudo tee /etc/apt/sources.list.d/cuda.list
Priporočljivo je tudi preveriti, ali dokumentacija vsebuje kakršne koli tipografske napake v uradnih ukazih, na primer uporaba dodatnega simbola > pri definiranju spremenljivke $distribution v vrstici, kjer so uvoženi ključi GPG, kar je treba pred zagonom popraviti:
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/$distribution/x86_64/7fa2af80.pub
Ko so gonilniki in DCGM nameščeni, lahko s standardnim orodjem nvidia-smi preverimo osnovno stanje grafičnega procesorja , ki prikaže model, skupni in porabljeni pomnilnik, temperaturo in procese, ki trenutno uporabljajo kartico.
Namestitev orodij za spremljanje grafične kartice (gpu-monitoring-tools) in dcgm-exporter
Za integracijo pomnilnika Linuxa in statistike grafičnih procesorjev NVIDIA z zunanjimi sistemi, kot sta Prometheus ali Elastic, NVIDIA ponuja orodja za spremljanje gpu , ki vključujejo komponento dcgm-exporter. Ta orodja so distribuirana kot izvorna koda Go, zato morate imeti Go nameščen in pravilno konfiguriran v sistemu.
V tipičnem scenariju se Go prenese in namesti na /usr/localRazpakirajte datoteko tar.gz in v svojo pot dodajte binarno datoteko Go. Nato klonirajte uradni repozitorij:
cd /tmp
git clone https://github.com/NVIDIA/gpu-monitoring-tools.git
cd gpu-monitoring-tools/
sudo env "PATH=$PATH:/usr/local/go/bin" make install
Ključna komponenta v tem paketu je dcgm-izvoznikTa komponenta razkrije metrike DCGM v obliki, ki jo Prometheus razume. Ob zagonu zažene strežnik HTTP, ki privzeto posluša na lokalnem naslovu, kot je localhost:9090 in ponuja vse razpoložljive meritve.
Konfiguracija prikaza statističnih podatkov je določena v datoteki /etc/dcgm-exporter/default-counters.csv , ki vsebuje na ducate vnaprej določenih števcev. Te vključujejo metrike, povezane s pomnilnikom GPU, temperaturo, porabo energije in različnimi notranjimi kazalniki delovanja . Za podrobnejši nadzor dokumentacija API-ja knjižnice DCGM podrobno opisuje celoten seznam metrik, ki jih je mogoče omogočiti.
Ko zaženete dcgm-exporter z ukazom, kot je ta:
dcgm-exporter --address localhost:9090
Videli boste inicializacijska sporočila, ki kažejo, da se je DCGM uspešno zagnal. Pogosto se prejmejo opozorila o tem, da se nekateri moduli ne nalagajo, na primer metrike DCP, kar lahko v tem kontekstu biti prezrt brez večjih težav če se ne uporabljajo.
Integracija z elastično opazovalnostjo z uporabo Metricbeata
Ko so metrike grafičnih procesorjev NVIDIA izpostavljene prek dcgm-exporterja, je naslednji logičen korak pošiljanje teh podatkov na platformo za opazovanje . Zmogljiva možnost je Elastic Observability, ki izkorišča komponente, kot je Metricbeat, za zbiranje metrik in njihovo centralizacijo v uvedbi Elastic Cloud ali samoupravljanem skladu.
Da bi to naredili, je najprej nameščen Metricbeat v sistemu Linux kjer se izvaja dcgm-exporter. Prenesite paket .deb, ki ustreza najnovejši različici, in ga namestite z dpkg -i in glavna datoteka je konfigurirana /etc/metricbeat/metricbeat.yml tako da kaže na namestitev Elastic Cloud z uporabo parametrov cloud.id y cloud.auth.
Vrednost cloud.id Običajno ima kodirano obliko, ki identificira regijo in elastično namestitev, medtem ko cloud.auth Združite uporabniško ime in geslo, na primer:
cloud.id: "staging:dXMtY2VudHJhbDEuZ2NwLmNsb3VkLmVzLmlvJDM4ODZkYmUwMWNjODQ2NDM4YjRlNzg5OWEyZDAwNGM5JDBiMTc0YzYyMTVlYTQwYWQ5M2NmMGY4MjVhNzJmOGRk"
cloud.auth: "elastic:J7KYiDku2wP7DFr62zV4zL4y"
(očitno bodo v resničnem okolju uporabljene uporabnikove lastne varne poverilnice).
Vhodi Metricbeata so modularni in v tem primeru moramo omogočiti Prometejev modulker dcgm-exporter objavlja svoje metrike v tej obliki. Aktivacija se izvede z:
sudo metricbeat modules enable prometheus
Preden vse skupaj zaženete, je priporočljivo izvesti nekaj konfiguracijskih testov, da se prepričate, da je Metricbeat pravilno konfiguriran in se lahko poveže z Elastic Cloud in končno točko Prometheus. To storite z ukazi, kot so:
sudo metricbeat test config
sudo metricbeat test output
sudo metricbeat modules list
Če ti testi ne uspejo, je priporočljivo pregledati dokumentacijo Odpravljanje težav z Metricbeatomsaj so napake običajno povezane z napačnimi poverilnicami, nedostopnimi končnimi točkami ali nepravilno omogočenimi moduli. Ko je vse preverjeno, lahko zaženete:
sudo metricbeat setup
za nalaganje privzetih nadzornih plošč in definiranje potrebnih preslikav indeksov.
Končno se Metricbeat zažene v načinu izhoda konzole ali kot storitev z:
sudo metricbeat -e
Zaradi tega se bodo metrike GPU-ja, ki jih razkrije dcgm-exporter, začele neprekinjeno pošiljati v Elastic, kjer bodo shranjene in pripravljene za analizo.
Vizualizacija metrik pomnilnika in GPU-ja v Kibani
Ko se podatki vnesejo v Elastic Observability, se začne zanimiv del: raziskovanje, filtriranje in navzkrižno primerjanje meritev GPU in CPU, da bi resnično razumeli, kaj se dogaja v vaši infrastrukturi. To se v prvi vrsti izvaja z uporabo Kibane, spletnega vmesnika za analitiko in vizualizacijo Elastic.
Prvi korak je zagotoviti vzorec indeksa metricbeat-* je pravilno konfiguriran v razdelku Upravljanje skladov > Kibana > Vzorci indeksovOd tam izberite vzorec in kliknite na »Osveži seznam polj«, da lahko Kibana zazna nova polja, povezana z metrikami GPU.
Metrike iz dcgm-exporterja, ki jih zbira modul Prometheus, se običajno prikažejo s predpono, kot je prometheus.metrics.DCGM_ . Ta polja vključujejo statistiko o porabi pomnilnika, prostem pomnilniku, odstotku uporabe grafičnega procesorja, temperaturah, porabi energije in drugih pomembnih kazalnikih.
Ker so ta polja zdaj na voljo, se lahko Kibanin pogled Discover uporabi za izvajanje ad hoc iskanj , filtriranje po gostitelju, imenu grafične kartice ali časovnem obdobju. V razdelku nadzornih plošč je mogoče ustvariti tudi vizualizacije, ki na primer prikazujejo razvoj porabe pomnilnika grafične kartice čez dan ali primerjajo različne primerke v istem grafu.
Eden najbolj praktičnih pogledov je Raziskovalec metrik, ki omogoča primerjavo zmogljivosti procesorja in grafičnega procesorja na istem zaslonu . To pomaga zaznati vzorce, kjer je na primer grafični procesor maksimalno izkoriščen, medtem ko je procesor premalo izkoriščen, ali obratno, kar kaže na morebitne težave z uravnoteženjem delovne obremenitve.
Poleg tega vam pogled Inventar omogoča natančno določitev kritičnih točk uporabe GPU-ja v velikih uvedbah , pri čemer prepoznate, katera vozlišča so na meji, katera so nedejavna in kje so skoncentrirana ozka grla. Na tej točki lahko določite opozorila, ki se sprožijo, ko na primer pomnilnik GPU-ja preseže določen prag za določeno časovno obdobje.
Ključni parametri spremljanja po podatkih NVIDIA
Pri optimizaciji okolja grafičnih procesorjev NVIDIA v sistemu Linux niso vse metrike enako pomembne. Po priporočilih proizvajalca je treba nenehno spremljati nekatere bistvene parametre, da preprečite napake, zaznate poslabšanje zmogljivosti in natančno prilagodite porabo energije.
Temperatura grafične kartice je eden najbolj očitnih kazalnikov. Vztrajno zvišanje nad varnim območjem lahko kaže na težave s hlajenjem, umazane ventilatorje, slab pretok zraka v ohišju ali celo na toplotno zasnovo, ki ni ustrezna za obremenitev sistema.
Druga ključna metrika je poraba energije grafičnega procesorja . Če kartica začne pri enaki delovni obremenitvi porabljati več energije kot običajno, lahko to kaže na težave s strojno opremo ali preveč agresivno nastavitev porabe energije. V velikih okoljih so ti podatki ključni tudi za nadzor stroškov električne energije in načrtovanje zmogljivosti infrastrukture.
Trenutne taktne frekvence grafične kartice prav tako veliko razkrivajo o zdravju sistema. Če te taktne frekvence ostanejo pod pričakovanimi vrednostmi pri veliki obremenitvi, je to lahko posledica omejitev porabe energije, termičnega dušenja ali konzervativnih nastavitev porabe energije , ki zavirajo dejansko razpoložljivo zmogljivost.
Za stresno testiranje ali validacijo NVIDIA ponuja orodja, kot so dcgmproftester10Ti ukazi vam omogočajo simulacijo intenzivnih obremenitev grafične kartice in preverjanje odziva metrik. Tipičen ukaz bi bil:
dcgmproftester10 --no-dcgm-validation -t 1004 -d 30
ki 30 sekund izvaja specifičen test delovanja brez določenih validacij DCGM, kar je idealno za preverjanje, ali sistem ostane stabilen pod pritiskom.
Z združevanjem teh meritev z zmožnostmi opozarjanja Elastic je mogoče avtomatizirati priporočila, ki jih predlaga NVIDIA , in sprožiti obvestila, ko so preseženi temperaturni pragovi, ko se poraba pomnilnika nevarno približa 100 % ali ko poraba energije znatno uide izpod nadzora v primerjavi z običajnimi merili.
Optimizacija nastavitev grafične kartice NVIDIA v Linuxu
Poleg pasivnega spremljanja obstaja več prilagoditev, ki jih je mogoče v Linuxu uporabiti za doseganje stabilnejše in v mnogih primerih boljše zmogljivosti z grafičnimi procesorji NVIDIA. Eden najpomembnejših vidikov je upravljanje funkcij samodejnega povečanja in dinamičnega skaliranja takta, ki so vključene v sam gonilnik.
V nekaterih primerih grafičnih procesorjev gonilnik NVIDIA uporablja funkcijo samodejnega povečanja , ki prilagaja frekvence grafičnih procesorjev glede na obremenitev in toplotne pogoje. Čeprav je to uporabno za splošna okolja, je v scenarijih, ki zahtevajo maksimalno zmogljivost in ponovljive rezultate, morda bolje onemogočiti te funkcije in ročno nastaviti taktne frekvence na njihove varne najvišje vrednosti.
Z onemogočanjem samodejnega povečanja in nastavitvijo najvišjih frekvenc postane zmogljivost med zagoni veliko bolj dosledna in predvidljiva . To je še posebej pomembno pri primerjalnih analizah, validaciji strojne opreme, podatkovnih centrih in platformah umetne inteligence, kjer so minimalne razlike med zagoni ključnega pomena.
Druga točka, ki jo je treba spremljati, je način napajanja grafičnega procesorja. V Linuxu vam orodja NVIDIA omogočajo prilagajanje profilov napajanja, od energetsko učinkovitejših načinov do načinov, ki ponujajo trajno maksimalno zmogljivost. Izbira preveč konzervativnega profila lahko znatno omeji FPS v igrah ali zmogljivost pri zahtevnih računalniških opravilih , čeprav zmanjša porabo energije.
Na potrošniških osebnih računalnikih, zlasti tistih, ki so zasnovani za igranje iger v sistemu Linux s sodobnimi grafičnimi karticami, je dobro preveriti, ali so gonilniki posodobljeni in ali so nastavitve načina vztrajnosti, omejitve porabe energije in profila takta usklajene z želenimi cilji zmogljivosti. To je področje, kjer so številni negativni rezultati primerjalnih testov preprosto posledica slabo optimizirane tovarniške konfiguracije.
Linux in igre z grafičnimi procesorji NVIDIA: trenutno stanje
Čeprav Linux še vedno trpi zaradi slovesa, da ni "prava platforma" za igranje iger, je resničnost takšna, da je z dobro grafično kartico NVIDIA in ekosistemom Steam povsem mogoče uživati v številnih naslovih z izkušnjo, ki je precej blizu tisti v sistemu Windows, še posebej, če izkoristite sodobne grafične API-je.
Steam Play z uporabo Protona in DXVK (posebne razvejitve Wine) prevaja klice DirectX v Vulkan, kar omogoča zagon velikega števila iger, prvotno razvitih za Windows. Čeprav ni vedno dosežena natančna izvorna zmogljivost, je izguba FPS običajno minimalna in v mnogih primerih sprejemljiva za večino uporabnikov.
V primerjavah s karticami prejšnje generacije, od NVIDIA GeForce GTX 980 Ti do TITAN RTX , in modeli AMD, kot sta Radeon RX Vega 56 ali Radeon VII, se je pokazalo, da NVIDIA-jini vrhunski grafični procesorji s Turingovimi jedri izstopajo še posebej pri ločljivosti 4K na Linuxu , ko gre za zahtevne igre.
Ilustrativen primer lahko najdemo v igrah, kot je Total War: Three Kingdoms , kjer lahko številne od 18 testiranih grafičnih kartic dosežejo želenih 60 FPS pri ločljivosti 4K, če se ohrani nizka raven podrobnosti. Ko se podrobnosti povečajo na srednjo raven, lahko ta prag v Linuxu dosledno presežejo le zelo zmogljivi modeli, kot sta RTX 2080 Ti ali TITAN RTX .
Drugi naslovi, kot sta Counter-Strike: Global Offensive ali DOTA 2, kažejo veliko bolj prizanesljivo vedenje: z izkoriščanjem Vulkan API-ja, kadar je na voljo, lahko praktično vse testirane kartice gladko poganjajo igre v ločljivosti 4K, z visokimi FPS stopnjami tudi na manj napredni strojni opremi znotraj analiziranega območja.
V grafično zahtevnih igrah, kot sta Deus Ex: Mankind Divided ali Dawn of War III , je potreba po vrhunskih grafičnih karticah za igranje v ločljivosti 4K z visokimi nastavitvami znova jasna. V igrah, kot sta Rise of the Tomb Raider ali A Total War Saga: Thrones of Britannia , večina grafičnih procesorjev zmore ločljivost 4K, če je raven podrobnosti nastavljena na nizko ali srednjo, kar krepi idejo, da ima NVIDIA v teh scenarijih prednost pred AMD pri gonilnikih in optimizaciji za Linux .
Ena od ponavljajočih se tem v teh testih je, da ima AMD še vedno prostor za izboljšave pri svojih gonilnikih za igre na srečo za Linux , medtem ko NVIDIA ponuja bolj zrelo podporo in bolj dosledne posodobitve. Za tiste, ki iščejo najboljšo možno zmogljivost v igrah z visoko ločljivostjo v Linuxu, to ostaja ključni dejavnik pri izbiri grafičnega procesorja.
Razumevanje delovanja statistike pomnilnika v Linuxu in metrik grafične kartice NVIDIA, skupaj z dobro konfiguracijo gonilnikov in orodji za spremljanje, vam omogoča, da iz kartice izvlečete veliko več , bodisi v igralnem računalniku, strežniku umetne inteligence ali podatkovnem centru z več deset vozlišči, ki delujejo s polno zmogljivostjo.
Jasno je, da podroben nadzor nad pomnilnikom, zmogljivostjo in stanjem grafičnih procesorjev NVIDIA v Linuxu ni več neobvezen, temveč ključna komponenta tako za produkcijska okolja kot za zahtevne uporabnike: dober sklad gonilnikov in DCGM, plast za izvoz metrik z dcgm-exporterjem, zbiranje z Metricbeatom in vizualizacija v Kibani, skupaj s finim nastavljanjem moči in taktne hitrosti grafične kartice, so tisto, kar resnično naredi razliko med sistemom, ki preprosto deluje, in sistemom, ki v celoti iztisne vsak vat in vsak gigabajt razpoložljivega pomnilnika.