Tsung

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt hozzászólók, és jelentősen eltérhet a 2015. augusztus 10-én felülvizsgált verziótól ; az ellenőrzések 3 szerkesztést igényelnek .
Tsung
Típusú Terhelésvizsgáló eszköz
Fejlesztő Nicolas Nicklausse
Beírva Erlang [1]
Felület parancs sor
Operációs rendszer Linux , UNIX
legújabb verzió
Engedély GNU GPL 2
Weboldal tsung.erlang-projects.org

A Tsung (az angol  Tsunami-Next Generation [3] szóból , korábban IDX-Tsunami néven) egy erlang nyelven írt elosztott terhelés- és stressz-tesztelő rendszer . A rendszer fejlesztését Nicolas Niclauss e kezdte 2001-ben. Kezdetben ez egy elosztott rendszer volt az IDEALX (ma OpenTrust ) belső szükségleteinek kielégítésére . Néhány hónappal később a projekt nyílt forráskódú , többprotokollú terhelési tesztelési eszközzé fejlődött. A HTTP támogatást 2003-ban adták hozzá.

A Tsung segítségével különféle HTTP-protokollok (köztük SOAP ), WebDAV , Jabber , LDAP , valamint PostgreSQL és MySQL tesztelhetők , és lehetővé teszi egy fürt emulálását is kliensgépekről [4] .

Jellemzők

A HTTP protokoll esetén a rendszer lehetővé teszi:

A Jabber/XMPP protokollon belül tesztelhetők a hitelesítési üzenetek , a jelenlét-regisztráció, a chat-üzenetek, a felhasználói listával való munka, a szobák és a felhasználói szinkronizálási beállítások .

Szerkezet

A Tsung konfigurációs fájl  egy XML - fájl. A fő címke az a címke <tsung>, amely a teljes konfigurációt tartalmazza. A címkének két tulajdonsága van: loglevel és dumptraffic . A loglevel a napló részletességét szabályozza, míg a dumtraffic a hibakeresésre szolgál. A dumptraffic=true beállítás létrehoz egy dump.log naplófájlt , amely részletezi a kiszolgáló minden egyes válaszát. A Tsung legújabb verziójában a dumptrafic=light  – a szerver válasz első 44 bájtja és a dumptrafic=protocol  – opciók állnak rendelkezésre – csak a következő adatdátum ;pid;id;http-metódus;host;URL;HTTP status;size;match ;hiba .

<?xml version="1.0"?> <tsung loglevel= "info" dumptraffic= "false" > ... </tsung>

Kliensek és szerverek

Teszteléskor több virtuális IP-címet is használhat, ami rendkívül hasznos, ha a szerver terheléselosztója az ügyfél hálózati címét használja a hálózati forgalom elosztására egy szerverfürtben.

<clients> <client host= "test1" weight= "1" maxusers= "500" > <ip value= "10.0.2.3" /> <ip value= "10.0.2.4" /> </client> <kliens gazdagép = "test2" weight= "3" maxusers= "250" cpu= "2" > <ip value= "10.1.2.5" /> </client> </clients> <server host= "10.2.2.10" port= "8081" type= "tcp" />

Az Erlang virtuális gép több magot is futtathat – a Tsung ügyfelek számára hatékonyabb, ha magonként egy virtuális gépet használnak. A cpu paraméternek meg kell egyeznie a csomópontokon lévő magok számával.

Ebben a példában a második gépet egy nagy "súllyal" és két maggal rendelkező Tsung-fürtben használják. Alapértelmezés szerint a terhelés egyenletesen oszlik el az összes mag között (alapértelmezés szerint kliensenként egy mag). A súly (egész) paraméter segítségével beállítható a kliens gép prioritása. Különösen, ha az egyik ügyfél súlya 1, a másik pedig 2, a második kétszer annyi felhasználót indít, mint az első (az arányok 1/3 és 2/3 lesznek). A fenti példában, ahol a második kliens cpu=2 és weight=3 értékkel rendelkezik, minden mag súlya 1,5.

Monitoring

A Tsung számos megfigyelési lehetőséget támogat: natív megfigyelési ügynök az Erlang -on , a Munin -on vagy az SNMP -n . Az ügynököt a szerver oldalon kell telepíteni [5] . Ha a terhelést egy kiszolgálófürthöz hozzák létre, különböző ügynököket használhat a különböző kiszolgálókhoz.

<monitoring> <monitor host= "10.1.1.94" type= "erlang" /> <monitor host= "10.1.1.94" type= "munin" > <munin port= "8081" /> </monitor> <monitor host = "10.1.1.94" type= "snmp" > <snmp version= "v2" Community= "rwCommunity" port= "11161" /> </monitor> </monitoring>

Betöltési fázisok

A terhelés több fázisra osztható. A beállításokban beállíthatja az egyes fázisok időtartamát és a fázisok sorrendjét. Mindegyik fázisban kétféleképpen állíthatja be az egyidejű felhasználók számát: állítsa be a felhasználók számát időszakonként, például 100 felhasználót másodpercenként, vagy állítsa be a felhasználó létrehozásának gyakoriságát, például egy felhasználót 0,01 másodpercenként. Stabil terhelés esetén beszúrhat egy adott munkamenetet egy bizonyos időpontban, hogy szimuláljon valamilyen ellenőrzést vagy elindítson valamilyen szolgáltatást.

<load> <arrivalphase phase= "1" duration= "10" unit= "minute" > <!-- Bemelegítési fázis --> <users interarrival= "0.1" unit= "second" > </users> < /arrivalphase > <arrivalphase phase= "2" duration= "60" unit= "minute" > <!-- Betöltési fázis --> <felhasználók érkezési sebessége= "1000" unit= "second" > </users> </arrivalphase > < !-- Special Sessions --> <user session= "addManyProducts" start_time = "20" unit= "minute" /> <user session= "checkOrders" start_time = "25" unit= "minute" /> </ terhelés>

Felhasználói ügynökök

A következő konfigurációs példa a felhasználói ügynökök százalékos arányát állítja be a különböző böngészők szimulálásához . Ez a százalék határozza meg annak valószínűségét, hogy egy felhasználói munkamenetet a megadott ügynökök egyikéhez rendeljenek (az alapértelmezett hozzárendelés - tsung ):

<option type= "ts_http" name= "user_agent" > <user_agent probability= "60" > Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:9.0) Gecko/20100101 Firefox/9.0 </user_agent> <user_agent probability= "20" > Mozilla/5.0 (kompatibilis; MSIE 8.0; Windows NT 5.0; Trident/4.0; InfoPath.1; SV1; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 3.0.04506.30) </user_agent> <user_agent probability= "20" > Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.21 (KHTML, mint a Gecko) Chrome/19.0.1042.0 Safari/535.21 </user_agent> </option>

Jegyzetek

  1. A tsung nyílt forráskódú projekt az Open Hubon: Nyelvek oldala – 2006.
  2. Kiadás 1.7.0 - 2017.
  3. Nicolas Niclausse. Elérhető a Tsung 1.2.0-s verziója (nem elérhető link) . Letöltve: 2016. május 30. Az eredetiből archiválva : 2016. március 4.. 
  4. 2011. Holt 12 .
  5. Holt, 2011 , p. 54.

Irodalom

  • Bradley Holt. 6. fejezet Elosztott terhelés tesztelése // CouchDB skálázása. - O'Reilly Media, Inc., 2011. - 72 p. — ISBN 978-1-4493-0343-3 .

Linkek