Zachycení využití hardwaru během zátěžového testu Apache JMeteru
Měřený průchod transakcí a doby odezvy jsou kritická data každého zátěžového testu ArcGIS Enterprise, ale zachycené využití hardwaru nasazených strojů poskytuje také zásadní informace. Společně tyto testovací artefakty umožňují správnou analýzu schopností a efektivity lokality.
Zjištění, že aplikace nebo služba funkcí dosáhla určité úrovně průtoku, je dobré, ale potvrzení škálovacích charakteristik při současném zkoumání zachyceného využití procesoru testovaného zatížení je ještě lepší.
Tento článek bude diskutovat několik způsobů, jak zachytit využití hardwaru stroje. Toto využití zdrojů je skvělým doplňkem výsledků zátěžového testu Apache JMeteru ArcGIS Enterprise a může pomoci dále analýzu. Článek se zaměří na nejběžnější scénáře s použitím bezplatných nástrojů a utilit pro Windows a Linux.
Strategie zachycení
Bohužel neexistuje univerzální řešení pro zachycení využití hardwaru v zátěžovém testu. Vzhledem k potenciálu mnoha různých prostředí (Windows, Linux, Cloud, Kubernetes, Docker atd.) nebo nedostatku potřebného přístupu a oprávnění mohou nastat případy, kdy budete muset upravit svou strategii a metodiku, abyste mohli zachytit a monitorovat informace o využití vašeho hardwaru během běhu testů Apache JMeter.
Například perfmon (např. Performance Monitor) je zdarma a je součástí každé instance Microsoft Windows a může skvěle fungovat, když jsou všechny stroje v prostředí na Windows. Je to frontend pro několik technologií Windows (např. WMI, DCOM) a všechny dohromady nabízejí všestranný rámec pro monitorování využití hardwaru v "reálném čase" s grafy nebo skriptováním zachycení zdrojů do datového souboru.
Perfmon však není dostupný pro Linux, takže by byl potřeba jiný nástroj (např. dstat) k zachycení ekvivalentních informací. Samozřejmě i při kompletním nastavení Windows mohou s přístupem perfmon vzniknout výzvy, například v restriktivních cloudových prostředích. Ale existují i jiné způsoby, jak zaznamenat tato cenná data stroje? Odpověď na tuto otázku prozkoumáme později v tomto článku.
Jaké informace by měl zátěžový test zachytit?
Když je GIS práce jako generování mapového obrázku nebo výpočet požadavku služby Geoprocessing odeslána do nasazení ArcGIS Enterprise, serverové stroje pracující na odpovědi využívají různé hardwarové zdroje k dokončení úkolu. Ideálně většina práce probíhá v centrální procesorové jednotce (CPU), ale to není vždy případ.
Bez ohledu na technologii použité k monitorování a zachycení využití pro váš zátěžový test existují čtyři hlavní kategorie hardwarových čítačů, které mají všechny serverové stroje:
Každá kategorie má různé metriky, které lze použít k zobrazení využití tohoto zdroje. Není nutné (ani doporučeno) zachytávat všechny dostupné metriky procesoru během testu... jen ty zásadní. Jinými slovy ty, které jsou potřeba k odpovědi na typické otázky zátěžového testu nebo konkrétní příběh, který sledujete.
Obvykle některé důležité metriky zahrnují následující:
- Procesor
- Paměť
- Dostupná (MB nebo bajty)
- Použitá (MB nebo bajty)
- Procento použití
- Síť
- Odeslané (MB nebo bajty)
- Přijaté (MB nebo bajty)
- Disk
- Procento nečinnosti
- Délka fronty
- Čtení (MB nebo bajty)
- Zápis (MB nebo bajty)
Poznámka: Pokud mají vaše servery více disků, velmi se doporučuje sbírat data ze všech zvlášť. Jinými slovy považujte disk C, disk D a disk E za různé zdroje při zachycování dat. Technicky je možné mít více aktivních síťových zařízení, ale není to příliš běžné.
- Rozhraní Performance Monitor sbírající různé hardwarové metriky ručně přidané (do perfmon):

Poznámka: Některé metodiky zachycování využití uloží hodnoty v bajtech, zatímco jiné používají megabyty. Oba způsoby jsou v pořádku, ale je důležité pochopit, která jednotka je zachycena pro analýzu a prezentaci dat ve zprávě.
Poznámka: Spolu s průtokem transakcí (např. transakce/sekundu) a dobami odezvy transakcí (např. sekundy) tvoří výše uvedené metriky většinu Klíčových ukazatelů výkonu (KPIs) zátěžového testu. KPI pomáhají vyhodnotit a porovnat úspěšnost konkrétního testu nebo snahy vůči definovaným cílům testu (např. Test Plan).
Vzorkovací interval
Obvykle zátěžový test (s primárním zaměřením na škálovatelnost) neběží déle než hodinu či dvě. Protože se jedná o relativně krátkou dobu trvání, dává smysl zachytávat využití hardwaru s rychlým intervalem (např. krátkou frekvencí) 5 až 10 sekund. To pomáhá zajistit dostatek dat pro provedení důkladné analýzy. Pokud je interval zachycení 1 minuta nebo delší, mohou být některé významné dopady na hardwarové zdroje (z testu) přehlédnuty.
Poznámka: Na vaší síti může již běžet monitorovací software pravidelně sbírající využití hardwaru z vašich serverů ArcGIS Enterprise. Pokud jsou k dispozici nějaké generované zprávy, mohou být použity pro analýzu zátěžového testu za předpokladu, že interval zachycení je krátký (např. 5 až 10 sekund). Pro analýzu zátěžového testu vás zajímá dobrá detailnost metrik po dobu několika hodin spíše než široké pokrytí metrik za celý den.
Rozdíl mezi zachycováním a monitorováním
Termíny "zachycování" a "monitorování" využití hardwaru se často používají zaměnitelně. Nicméně pro účely testování Apache JMeter se tento článek zaměřuje na zachycování využití spíše než jeho monitorování. Klíčový rozdíl zde je v tom, že zachycování znamená zaznamenávání nebo ukládání informací pro snadnější analýzu po testu.
Testovací klienti (stroje generující zátěž)
Při zachycování využití hardwaru ze zátěžového testu proti ArcGIS Enterprise je nejlepší praxí také měřit využití ze strojů Test Client.
Je pochopitelné, že většina pozornosti je věnována sledování serverových zdrojů, ale hardware ze strojů klientů může být také úzkým hrdlem. Pokud tyto stroje nemají dostatečnou kapacitu (např. procesor, paměť, síť nebo disk), schopnost generovat zátěž vůči vašemu nasazení bude negativně ovlivněna!
Poznejte své základní hodnoty serveru
Pokud nejste příliš obeznámeni s hardwarem vašeho nasazení ArcGIS Enterprise, doporučuje se sledovat využití zdrojů při nečinnosti systému. Toto "využití" pomůže vytvořit mentální obraz nejlepšího možného scénáře. Jinými slovy jak stroj vypadá, když software a služby běží, ale nikdo jej nepoužívá. V takovém scénáři by aktivita zdrojů ze všech čtyř kategorií hardwaru měla být minimální.
Zátěžové testy nemusí tuto informaci o "nečinném stavu" zaznamenávat, ale je dobré vědět, jak to vypadá.
Poznámka: Použití nástrojů jako Správce úloh (pro Windows) nebo top (pro Linux) jsou skvělé nástroje pro manuální rychlý přehled o využití systémových zdrojů. Nicméně nejsou ideální pro ukládání využití ze všech kategorií do souboru.
- Zobrazení Správce úloh systémového využití zdrojů (Windows):

- Zobrazení top systémového využití zdrojů (Linux):

Běžné příklady zachycování využití
Použití Perfmon (k zachycení využití mimo zátěžový test)
Při předpokladu dostupnosti potřebných oprávnění pro váš uživatelský účet ve Windows je perfmon jedním z nejjednodušší způsoby, jak zaznamenat využití hardwaru pro analýzu zátěžového testování. Performance Monitor (a podpůrné technologie) může zachytit využití z lokálního počítače nebo z více vzdálených serverů současně.<\/P>
Poznámka: Připomínáme, že metriky dostupné v perfmon v rámci každé hardwarové skupiny jsou hojná.<\/STRONG><\/FONT>
Existuje také velké množství softwarových metrik, které lze zachytit. Ale v tomto případě platí, že méně znamená více. Pro většinu situací je potřeba jen malá hrstka čítačů.<\/STRONG><\/FONT><\/P>Jak bylo zmíněno dříve, kde můžete narazit na úvahy:<\/P>Nasazení ArcGIS Enterprise běží na Linuxuperfmon není dostupný pro LinuxNejjednodušší řešení je použít jinou metodologii pro sběr informací (dále diskutováno)<\/LI><\/UL><\/LI><\/UL><\/LI>Nasazení je v clouduSpuštění erfmon v cloudu pro sběr dat z ostatních nasazených strojů (v cloudu) je technicky možné, ale na pozadí používá síťové protokoly, které jsou obvykle v prostředí blokoványNejjednodušší řešení zde je spustit perfmon ručně na každém cloudovém stroji a shromáždit generované výstupy po dokončení testu<\/LI><\/UL><\/LI><\/UL><\/LI><\/UL>Spuštění perfmon ve Windows je tak jednoduché jako provedení:<\/P>Spustit --> perfmon<\/LI><\/UL>Odtud můžete přidat každý stroj i každou příslušnou hardwarovou metriku a čítač. I když je to velmi výkonné, může to být časově náročné a potenciálně náchylné k překlepům!<\/P>Místo toho je doporučenou strategií pro tuto metodologii použití PowerShell skriptu, kde jsou všechny tyto položky předdefinovány.<\/P>Následující skript shromáždí klíčové metriky perfmon (které jsou již definovány) ze čtyř hlavních hardwarových kategorií a provede to pro čtyři různé stroje (které můžete specifikovat):<\/LI><\/UL> <\/P># ===============================================================================
# Aktualizováno: 2022-08-02
# Název souboru: ps_get_all_continuous.ps1
# Verze: 0.1.0
# Popis: Neustále sbírat různé metriky a ukládat (binární) hodnoty do souboru
# Poznámky: Doporučuje se zahájit sběr metrik 20 sekund před začátkem testu
# protože inicializace čítače může chvíli trvat
# ===============================================================================
Write-Output -InputObject 'Sbírání všech metrik (nepřetržitě)...'
# Proměnné
# Windows Perfmon Counter(s)
$counters = "Processor(_Total)\% Processor Time","Memory\Available MBytes","Memory\Committed Bytes","Memory\% Committed Bytes In Use","Network Interface(*)\Bytes Received/sec","Network Interface(*)\Bytes Sent/sec","LogicalDisk(_Total)\% Idle Time","LogicalDisk(_Total)\Disk Read Bytes/sec","LogicalDisk(_Total)\Disk Write Bytes/sec"
# Stroje ke sběru dat
$computers = @('server1.domain.com','server2.domain.com','server3.domain.com','server4.domain.com')
# Čas v sekundách mezi jednotlivými vzorky
$sampleinterval = 10
$date = (Get-Date)
$dyndate = '{0:yyyyMMddTHHmmss}' -f $date # 20220303T140044
# Název souboru
$filename = "perfmon_all_continuous"
# Typ výstupního souboru (možnosti jsou blg, csv nebo tsv)
$outputfiletype = "blg"
# Výstupní soubor
$outputfile = '{0}_{1}.{2}' -f $filename, $dyndate, $outputfiletype
# Get-counter
Write-Output -InputObject ('Start DateTime: {0}' -f $date)
Get-counter -Computername $computers -Counter $counters -Continuous -Sampleinterval $sampleinterval | Export-counter -Force -FileFormat $outputfiletype -Path $outputfile <\/code><\/pre><P> <\/P><UL><LI>Metriky jsou sbírány každých 10 sekund <U>dokud nestisknete Ctrl-C v okně PowerShellu<\/U>. Informace jsou uloženy v binárním formátu souboru, který můžete otevřít ve Windows (pro další analýzu nebo transformaci):<\/LI><\/UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="capturehardware_powershell_start_output.png" style="width: 999px;"><img src="https://us.v-cdn.net/6038851/uploads/images/49356iC6B4C3B9199D2CF8/capturehardware_powershell_start_output.png" role="button" title="capturehardware_powershell_start_output.png" alt="capturehardware_powershell_start_output.png" \/></span><\/P><P><STRONG><FONT color="#FF0000">Poznámka: Doporučuje se spustit tento Powershell skript asi 20 nebo 30 sekund <U>před<\/U> zahájením zátěžového testu, protože inicializace čítače není okamžitá a trvá chvíli.<\/FONT><\/STRONG><\/P><UL><LI>Můžete kdykoli během sběru otevřít soubor *.blg, ale nejnovější informace nejsou vyprázdněny a uloženy do souboru, dokud nestisknete Ctrl-C v okně PowerShellu, kde skript běží.<\/LI><LI>Dvojklikem a otevřením souboru *.blg by měl výsledek vypadat podobně jako následující:<\/LI><\/UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="capturehardware_powershell_results.png" style="width: 965px;"><img src="https://us.v-cdn.net/6038851/uploads/images/49377i9D7D47D522AD17A4/capturehardware_powershell_results.png" role="button" title="capturehardware_powershell_results.png" alt="capturehardware_powershell_results.png" \/></span><\/P><P><SPAN>Konečný výsledek je výstup velmi podobný tomu, co jsme zachytili. Nicméně v tomto případě byl proces automatizován (což je dobrá věc).<\/SPAN><\/P><P><SPAN>Z tohoto rozhraní v Performance Monitor můžete vybrat/odznačit metriky pro specifickou izolaci, exportovat graf jako obrázek, uložit surová data do jiného formátu jako CSV nebo provést analýzu využití ze všech shromážděných strojů. Docela výkonné!<\/SPAN><\/P><P><SPAN><FONT color="#FF0000"><STRONG>Poznámka: Skripty Performance Monitor se přímo neintegrují do JMeter. <\/STRONG><\/FONT><\/SPAN><\/P><P><SPAN><FONT color="#FF0000"><STRONG>Poznámka: Pro cloudová nasazení možná budete muset spustit perfmon skript ručně na každém příslušném serveru.<\/STRONG><\/FONT><\/SPAN><\/P><H3 id="toc-hId--464400263">Použití dstat (pro zachycení využití mimo zátěžový test)<\/H3><P>dstat je bezplatný nástroj příkazového řádku (napsaný dag@wieers.com), dostupný pro (nebo s) většinou distribucí Linuxu, který zachytává (a monitoruje) využití hardwaru.<BR \/>Ačkoli nástroj nebyl několik let aktualizován, je poměrně robustní a snadno skriptovatelný.<\/P><UL><LI>dstat terminálový výstup při spuštění bez možností:<\/LI><\/UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="capturehardware_dstat_monitor.png" style="width: 797px;"><img src="https://us.v-cdn.net/6038851/uploads/images/49381i3426B23A73682927/capturehardware_dstat_monitor.png" role="button" title="capturehardware_dstat_monitor.png" alt="capturehardware_dstat_monitor.png" \/></span><\/P><P>Následující příkaz poběží na vašem Linux serveru a zachytí využití hardwaru do csv souboru každých 5 sekund <U>dokud jej ručně nezastavíte pomocí Ctrl-C<\/U>:<\/P><UL><LI>[gisadmin@pesrv04 ~]$ <STRONG>dstat -tTcmn --disk-util -d --nocolor --noheaders --output dstat_20220823.csv 5<\/STRONG></LI></UL ><P ><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="capturehardware_dstat_capture.png" style="width: 999px;"><img src="https://us.v-cdn.net/6038851/uploads/images/49383i12F99873FC093EA3/capturehardware_dstat_capture.png" role="button" title="capturehardware_dstat_capture.png" alt="capturehardware_dstat_capture.png" \/></span >< / P >< P >< FONT color="#FF0000">< STRONG > Poznámka : U dstat je zachycené využití procesoru „procento nečinnosti“, <EM>nikoli< / EM > procento využití. Pro získání procenta využití odečtěte hodnotu od 100 . Nicméně využití disku je uvedeno v procentech využití. Navíc výše uvedený výstup zahrnuje prezentační formát, takže surové hodnoty (nezobrazené) pro paměť, síť a disk jsou uloženy jako bajty . < / STRONG >< / FONT >< / P >< P >< FONT color="#FF0000">< STRONG > Poznámka : Skripty dstat by bylo třeba spustit ručně a samostatně na každém Linuxovém stroji v nasazení. Neintegrují se přímo do JMeter. Po dokončení zátěžového testu a zastavení skriptů lze CSV soubory shromáždit a analyzovat (např. vykreslit nebo graficky zobrazit v tabulkovém programu). < / STRONG >< / FONT >< / P >< H3 id = "toc-hId-2023112570"> Použití Apache JMeter (pro přímé zachycení využití ze zátěžového testu)< / H3 >< P > Ačkoli má o něco více kroků (a také své vlastní překážky) než perfmon a dstat skripty, použití Apache JMeter k zachycení využití hardwaru má jednu hlavní výhodu : < / P >< UL >< LI >< STRONG > Konzistence < / STRONG > . Stejný JMeter Test Plan lze použít k zachycení < EM > stejných < / EM > hardwarových metrik z Windows i Linuxu (a Mac)< UL >< LI > Toho je dosaženo několika bezplatnými softwarovými komponentami : < UL >< LI > Rozšíření <A href="https://jmeter-plugins.org/wiki/PerfMon/" target="_blank" rel="noopener nofollow noreferrer">jp@gc - PerfMon Metrics Collector</A> které se přidává do JMeter <BR \/ >< UL >< LI > Tato komponenta slouží k definování metrik ke sběru a ze kterých strojů < / LI >< / UL >< / LI >< LI > Nástroj <A href="https://github.com/undera/perfmon-agent/blob/master/README.md" target="_blank" rel="noopener nofollow noreferrer">PerfMon Server Agent</A> běžící v Java Runtime Environment (JRE) na každém serveru v nasazení < UL >< LI > Tato komponenta provádí skutečný sběr na každém serveru a odesílá data zpět do JMeter < / LI >< / UL >< / LI >< / UL >< / LI >< / UL >< / LI >< / UL >< P > Komponenta jp@gc - PerfMon Metrics Collector může být snadno přidána do Test Planu přes JMeter Plugins Manager (nalezený pod "PerfMon (Servers Performance Monitoring):< / P >< P >< span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="capturehardware_jmeter_pluginmanager.png" style="width: 999px;"><img src="https://us.v-cdn.net/6038851/uploads/images/49709i9536381D99067E93/capturehardware_jmeter_pluginmanager.png" role="button" title="capturehardware_jmeter_pluginmanager.png" alt="capturehardware_jmeter_pluginmanager.png" \/></span >< / P >< P >< SPAN > Komponenta PerfMon Server Agent je relativně snadná na přidání, ale je potřeba několik dalších kroků, aby správně fungovala.<\/SPAN><\/P><P><FONT color="#FF0000"><STRONG>Poznámka: Kvůli chybě v knihovně sigar-amd64-winnt ServerAgent <EM>spadne<\/EM>, pokud použijete knihovnu přímo z krabice s JDK nebo JRE vyšší než verze 8. Řešením je opravit knihovnu nebo použít aktuální verzi 8 JRE.<\/STRONG><\/FONT><\/P><P><FONT color="#000000"><A href="https:\/\/www.openlogic.com\/openjdk-downloads" target="_self" rel="nofollow noopener noreferrer">OpenLogic<\/A> poskytuje zdarma, pravidelně aktualizované vydání v8 OpenJDK (a JRE) ke stažení pro Windows, Linux a Mac. I když by fungovalo JDK, doporučuje se v tomto případě JRE, protože je to menší balíček ke stažení, ale stále poskytuje prostředí potřebné pro běh agenta.<\/FONT><\/P><P><FONT color="#FF0000"><STRONG>Poznámka: Pro ServerAgent bude fungovat jak 32bitové, tak 64bitové JRE.<\/STRONG><\/FONT><\/P><P><FONT color="#FF0000"><STRONG>Poznámka: OpenLogic JDK nebo JRE lze také použít k spuštění samotného Apache JMeter.<\/STRONG><\/FONT><\/P><P><FONT color="#000000"><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="capturehardware_openlogic_download.png" style="width: 943px;"><img src="https:\/\/us.v-cdn.net\/6038851\/uploads\/images\/49406iEBD98A1C9C85F57D\/capturehardware_openlogic_download.png" role="button" title="capturehardware_openlogic_download.png" alt="capturehardware_openlogic_download.png" \/><\/span><\/FONT><\/P><UL><LI><FONT color="#000000"><SPAN>ServerAgent a OpenLogic JRE rozbalené ve stejné složce:<\/SPAN><\/FONT><\/LI><\/UL><P><FONT color="#000000"><FONT color="#000000"><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="capturehardware_openlogic_serveragent_explorer.png" style="width: 942px;"><img src="https:\/\/us.v-cdn.net\/6038851\/uploads\/images\/49499i1001834053E61544\/capturehardware_openlogic_serveragent_explorer.png" role="button" title="capturehardware_openlogic_serveragent_explorer.png" alt="capturehardware_openlogic_serveragent_explorer.png" \/><\/span><\/FONT><\/FONT><\/P><UL><LI> OpenLogic JRE přesunuto do složky ServerAgent:<\/LI><\/UL><P><FONT color="#000000"><FONT color="#000000"><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="capturehardware_openlogic_serveragent_jre.png" style="width: 943px;"><img src="https:\/\/us.v-cdn.net\/6038851\/uploads\/images\/49500i9E7477A4EACB100A\/capturehardware_openlogic_serveragent_jre.png" role="button" title="capturehardware_openlogic_serveragent_jre.png" alt="capturehardware_openlogic_serveragent_jre.png" \/><\/span><\/FONT><\/FONT><\/P><UL><LI>Otevřete soubor startAgent.bat v editoru a aktualizujte jej názvem adresáře JRE, který byl zkopírován do složky ServerAgent:<\/LI><\/UL><P> <\/P><pre class="lia-code-sample language-csharp"><code> off\n\nset JAVAPATH=.\\openlogic-openjdk-jre-8u342-b07-windows-64\\bin\n%JAVAPATH%\\java -jar %0\\..\\CMDRunner.jar --tool PerfMonAgent %*<\/code><\/pre><P> <\/P><UL><LI>Uložte změny<\/LI><LI>Složka C:\\JMeterAgent\\ServerAgent-2.2.3 nyní obsahuje samostatný ServerAgent, který lze zkopírovat na příslušné stroje pro sběr jejich využití hardwaru<\/LI><LI>Pro spuštění agenta ve <STRONG>Windows<\/STRONG> poklepejte na startAgent.bat<UL><LI>Agent se spustí v okně příkazového řádku:<\/LI><\/UL><\/LI><\/UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="capturehardware_serveragent_listening.png" style="width: 976px;"><img src="https:\/\/us.v-cdn.net\/6038851\/uploads\/images\/49501iB7B6D67885E49A9C\\capturehardware_serveragent_listening.png" role="button" title="capturehardware_serveragent_listening.png" alt="capturehardware_serveragent_listening.png" \/></span></P><UL><LI>Agent nezačne "sbírat" metriky, dokud mu to Apache JMeter Test Plan nesdělí<BR \/><UL><LI>Ve výchozím nastavení spolu agent a JMeter komunikují přes TCP a UDP port 4444<\/LI></UL></LI></UL><P><FONT color="#FF0000"><STRONG>Poznámka: jp@gc - PerfMon Metrics Collector používá název "perfmon", ale <U>ve skutečnosti nepoužívá<\/> technologii Windows Performance Monitor.<\/> <\/> <\/> <\/> <\/> <\/> <\/> <\/> <\/> <\/> <\/> <\/> <\/> <\/> <\/> <\/> <\/> <\/> <\/> <\/> <\/> <\/> <\/> <\/> <\/> <\/> <\/> <\/> <\/><strong></font></p>
<h1 id="toc-hId--737670810">Testovací plán SampleWorldCities s podporou sběru metrik</h1>
<ul>
<li>Ke stažení Apache JMeter Test Plan použitý v tomto článku viz: <strong>
<a href="https://community.esri.com/ccqpr47374/attachments/ccqpr47374/implementing-arcgis-blog/355.14/1/sampleworldcities5.zip"
target="_self">sampleworldcities5.zip</a></strong> </li>
<li>Otevření Test Planu v Apache JMeter by mělo vypadat podobně jako následující:<ul class="lia-list-style-type-circle">
<li>Upravte uživatelsky definované proměnné tak, aby odpovídaly vašemu prostředí<ul>
<li>Tento test definuje čtyři různé stroje pro sběr využití hardwaru:<ul>
<li>Webový adaptér<ul>
<li>Požadavky jsou také odesílány na tento endpoint</li>
</ul>
</li>
<li>ArcGIS Server</li>
<li>Portal for ArcGIS</li>
<li>Testovací klient (stroj, na kterém běží JMeter)<ul>
<li>Název hostitele tohoto stroje je automaticky detekován JMeterem při spuštění testu</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>
<span class="lia-inline-image-display-wrapper lia-image-align-center"
image-alt="capturehardware_jmetertestplan_userdefinedvariables.png"
style="width: 999px;"><img
src="https://us.v-cdn.net/6038851/uploads/images/49509iFF0B49BC3452FB54/capturehardware_jmetertestplan_userdefinedvariables.png"
role="button"
title="capturehardware_jmetertestplan_userdefinedvariables.png"
alt="capturehardware_jmetertestplan_userdefinedvariables.png"
/></span></p>
<h2 id="toc-hId-1878924742">Komponenty Test Plánu</h2>
<p>Rozšíření jp@gc - PerfMon Metrics Collector je zde jediným prvkem zájmu, protože tento test je prakticky totožný s předchozími Test Plány článků pro SampleWorldCities.</p>
<h3 id="toc-hId-200552998">Rozšíření jp@gc - PerfMon Metrics Collector</h3>
<p>Jak bylo zmíněno dříve, toto rozšíření říká každému běžícímu agentovi, co má sbírat. Test Plan dostupný v tomto článku již přidal čítače pro každou ze čtyř hlavních kategorií hardwaru. </p>
<p>
<FONT color="#FF0000"><STRONG>Poznámka: Parametry metrik budou fungovat pro Linux a Mac. Nicméně metriky Disks IO v rozšíření jsou nakonfigurovány ke sběru na disku C (např. C:\:) což neexistuje v Linuxu. Toto by bylo potřeba změnit na \/.<br /></STRONG></FONT></p>
<p>
<span class="lia-inline-image-display-wrapper lia-image-align-center"
image-alt="capturehardware_jmetertestplan_perfmonmetricscollector.png"
style="width: 999px;"><img
src="https://us.v-cdn.net/6038851/uploads/images/49510iD61C8B558F5AFD10/capturehardware_jmetertestplan_perfmonmetricscollector.png"
role="button"
title="capturehardware_jmetertestplan_perfmonmetricscollector.png"
alt="capturehardware_jmetertestplan_perfmonmetricscollector.png"
/></span></p>
<h2 id="toc-hId--1735984184">Ověření konektivity mezi JMeter a ServerAgentem</h2>
<p>Spusťte test z GUI kliknutím na tlačítko přehrávání (zelený trojúhelník)</p>
<ul>
<li>Pokud všechny ServerAgenty běží a jsou dostupné na všech zamýšlených strojích v nasazení ArcGIS Enterprise, měly by být schopny sbírat využití a odeslat informace zpět do Test Plánu</li>
<li>Když JMeter obdrží tyto informace, zobrazí je na kartě Graf<ol type='a'>
<li>Nechte to sbírat několik sekund pro ověření konektivity a pak test zastavte</li></ol></li></ul>
<p>
<span class="lia-inline-image-display-wrapper lia-image-align-center"
image-alt="capturehardware_jmetertestplan_validateconnectivity.png"
style="width: 999px;"><img
src="https://us.v-cdn.net/6038851/uploads/images/49512iACE9249861C62895/capturehardware_jmetertestplan_validateconnectivity.png"
role="button"
title="capturehardware_jmetertestplan_validateconnectivity.png"
alt="capturehardware_jmetertestplan_validateconnectivity.png"
/></span></p>
<p>
<FONT color="#FF0000"><STRONG>Poznámka: Když je test spuštěný z příkazového řádku, název souboru obsahujícího data sesbíraných metrik bude založen na proměnných ve skriptu bat, které definují soubor "results_". Po dokončení testu můžete použít tento prvek "jp@gc - PerfMon Metrics Collector", abyste načetli surové hodnoty a buď izolovali konkrétní čítače nebo generovali obrázky grafů. Tento soubor začne řetězcem "perfmon_". Soubory results i perfmon končí příponou *.jtl, ale jsou to jen CSV soubory.<br /></STRONG></FONT></p>
<h1 id='toc-hId-622445930'>Spuštění testu</h1>
<p>Zátěžový test by měl být spuštěný stejným způsobem jako typický JMeter Test Plan.</p>
<p>Viz skript runMe_withP.bat zahrnutý v projektu sampleworldcities5.zip jako příklad toho, jak spustit test podle doporučení týmu Apache JMeter. </p>
<ul>
<li>Skript runMe_withP.bat obsahuje proměnnou <EM>jmeterbin<SPAN> </SPAN></EM>, kterou je třeba nastavit na odpovídající hodnotu pro vaše prostředí</li>
<li>Tento skript obsahuje o něco více logiky než runMe.bat nalezený v jiných článcích o Test Plánech<ul>
<li>Tato dodatečná logika byla přidána tak, aby výsledný soubor a soubor obsahující sesbíraný hardware končily stejným názvem běhu</li></ul></li>
<li>Obsah skriptu runMe_withP.bat:</li></ul>
<p> </p>
<pre class='lia-code-sample language-csharp'><code>echo off
rem Skriptované spuštění ApacheJMeter Test Plánu
rem Využití ApacheJMeter.jar k vyvolání
rem
rem 2022/08/25.1
rem
rem S proměnnou prostředí pro podporu JMeter (pro rozšíření PerfMon)
rem ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
rem *** Proměnné ***
rem Nastavení paměti JMeter na min/max 4GB (upravit podle zdrojů vašeho testovacího klienta)
zadejte heap=-Xms4g -Xmx4g -xyz:MaxMetaspaceSize=256m
rem Umístění %JAVA_HOME%\\bin
set javadir=%JAVA_HOME%\\bin
rem Umístění binárky Apache JMeter
set jmeterbin=C:\apache-jmeter-5.5\bin
rem Umístění kořenové složky JMeter Test Plan (např. složka, kde se nachází Test Plan)
set projectdir=%~dp0
rem Název JMeter Test Plan (bez přípony souboru JMX)
set testname=sampleworldcities5
rem Řetězec připojený k výslednému souboru každého spuštění testu
set runname=testrun1
rem Nastavení proxy
rem set proxyhost=http:\/\/localhost
rem set proxyport=8888
rem ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
rem *** Nastartujte své motory ***
color 20
rem Nastavte proměnnou prostředí pro odkaz v testu (např. ${__P(env.run)})
set jvm_args="-Denv.runname=%testname%_%runname%"
echo on
rem *** Test spuštěn ***
%javadir%\java.exe --illegal-access=warn %jvm_args% %heap% -jar %jmeterbin%\ApacheJMeter.jar -Jjmeter.save.saveservice.autoflush=false -n -f -t "%projectdir%\%testname%.jmx" ^
-l "%projectdir%\results\results_%testname%_%runname%.jtl" ^
-j "%projectdir%\logs\debug_%testname%_%runname%.log" ^
-e -o "%projectdir%\reports\%testname%_%runname%" ^
rem odkomentujte podle potřeby
rem -H %proxyhost% -P %proxyport% ^
rem *** Test dokončen ***
echo off
color 40
ping localhost -n 5
color 07
Poznámka: Vždy je doporučeno koordinovat čas a délku spuštění load testu s příslušnými pracovníky vaší organizace. To zajišťuje minimální dopad na uživatele a další kolegy, kteří mohou také potřebovat používat vaše on-premise ArcGIS Enterprise Site. Navíc to pomáhá zabránit šumu systému z jiné aktivity a používání, které by mohly "znečistit" výsledky testu.
Poznámka: Z několika důvodů je silně doporučeno nikdy netestovat služby poskytované ArcGIS Online.
Obecný metodologický průvodce
Tento průvodce není určen k úplnému pokrytí všech scénářů zachycení využití hardwaru.
- Scénář #1
- Servery
- Prostředí
- Sběrné zařízení (Testovací klient)
- Popis
- Zachycení využití Windows z Windows
- Obtížnost
- Doporučená metodologie
- Windows Perfmon (pomocí PowerShell skriptu)
- Scénář #2
- Servery
- Prostředí
- Sběrné zařízení (Testovací klient)
- Popis
- Zachycení využití Windows/Linux z Windows
- Obtížnost
- Doporučená metodologie
- JMeter Perfmon Extension a ServerAgent
- Scénář #3
- Servery
- Prostředí
- Sběrné zařízení (Testovací klient)
- Popis
- Zachycení využití Linux z Windows/Linux
- Obtížnost
- Doporučená metodologie
- Scénář #4
- Servery
- Prostředí
- Sběrné zařízení (Testovací klient)
- Popis
- Zachycení využití Windows/Linux z Windows
- Obtížnost
- Doporučená metodologie
- Cloud Watch/Azure Monitor (není pokryto v tomto článku)
- Scénář #5
- Servery
- ProstředíSběrné zařízení (Testovací klient)/;</;/;/;/;/;/;/;/;/;/;/;/;/;/;/;/;/;/;/;/;/;/;/;/;/;/;/;</;>/;</;>/;</;>/;</;>/;</;>/;</;>/;</;>/;</;>/;</;>/;</;>/;</;>/;</;>/;</;>/;</;>/;</;>/;</;>/;</;>/;</;>/;</;>/;</;}