Flexible Solutions on Oracle Middleware
  • Teljeskörű üzleti megoldások
  • Intelligens távközlési szolgáltatások
  • Területi megoldáscsomagok
Számítástechnika   |   2008-11-11
Alkalmazásdiagnosztika új szerepkörben

Az elmúlt években jelentős fejlődésen átesett, korábban valamelyest mostohagyermekként kezelt alkalmazásdiagnosztikai vagy profile eszközök egyre nagyobb figyelmet kapnak, köszönhetően többek közt a virtualizációs technikák megjelenésének. Bár sokáig úgy tűnt, a hardverek dinamikus fejlődése feleslegessé teszi az alkalmazáshangolást, most mégis tömegesen jelennek meg a monitoring eszközök. Mi okozza újjáéledésüket? Talán érdekesebb kérdés, hogy mi okozta korábbi hanyatlásukat? A válasz mindkét esetben ugyanaz – mondta Répcevölgyi Balázs, az Alerant Informatikai Zrt. szakértője.

Régebben minden Java profileing alkalmazás, illetve monitorozó eszköz az úgynevezett JavaTM Virtual Machine Profiler Interface (JVMPI) API-ra épült. Ez azonban nagymértékben a JNI APIra támaszkodott, s olyan technikákat használt, amelyek jelentős terhelést adtak az alkalmazásnak. Ha pedig a saját problémánkra fókuszáló profi leing agentet szerettünk volna készíteni, akkor annak fejlesztése jelentett plusznehézséget és befektetést, s így a beszállítók hajlandók voltak a könnyebb utat választani, és a hardverek fejlődése mögé bújni. A fejlesztési ciklus alatt elvégzett alkalmazásdiagnosztika azonban nemcsak a teljesítményproblémákat oldja meg, hanem rávilágíthat az alkalmazások esetleges architekturális problémáira is. Milyen gyakran hallottuk – leginkább az alkalmazásüzemeltetőktől –, hogy a Java túlzott memóriaigényű és esetenként lassú. Ezt a problémát ismerte fel a Sun, és a Java 5 megjelenésével elhozta a monitoring eszközök Kánaánját. Specifikálták a JVMTM Tool Interface-t (JVMTI), mellyel a JVM teljes funckionalitással tud működni monitorozás alatt is. Kedvezővé vált a heap kezelése is. Amíg korábban a memóriahasználat feltérképezéséhez egy teljes heap dumpot kért a JVMPI, majd ezt a nagy adathalmazt dolgozta fel, addig a JVMTI közvetlenül éri el a vizsgált osztályokat. A JVMPI-vel ellentétben, amely olyan jelentősen megváltoztatta a vizsgált alkalmazás viselkedését, hogy már-már torzította a mérések eredményét, a JVMTI jóval vékonyabb komponens, fi nomabban hangolható, s így lehetővé teszi akár az éles üzemben történő használatot is.

– Az 5-ös Java tehát jelentős áttörést hozott teljesítményoldalon – fűzte hozzá Répcevölgyi Balázs. – A fenti megoldásokra támaszkodva jobb és könnyebben használható eszközök jelentek/jelennek meg. Ma már minden magára adó JVM-szállító kötelezően ad valamilyen diagnosztikai eszközt virtuális gépéhez, így az Oracle a JRockithoz a JRockit Mission Control nevű monitorozó eszközt. A független gyártók professzionális termékei is megtalálhatók a palettán, mint a Mercury Diagnostics Profi ler vagy a YourKit Java Profi ler, s vannak ingyenesen elérhetők is, mint például a JProfi ler. Előbbiek mindegyike erősen támaszkodik a virtuális gép által nyújtott új lehetőségekre.

- Napjainkban a profileing eszközök felhasználási területe eltolódik az üzemeltetés irányába – tette hozzá az Alerant szakértője. – Míg korábban az agent hívások overheadje miatt elképzelhetetlen volt egy ilyen eszköz éles üzemben történő használata, addig az instrumentációs technika kifi nomultsága lehetővé teszi ezt. Ezáltal az üzemeltető futási időben, éles üzemben, a probléma jelentkezésekor tud mintát venni a virtuális gépből, és adott esetben rögzítheti, illetve elküldheti azt a fejlesztőknek további elemzésre, egyszerűsítve a fejlesztői környezetekben reprodukálhatatlan jelenségek megoldását. A virtualizációs technikák megjelenésével különösen fontossá vált az alkalmazás viselkedésének alapos ismerete. Hiszen ahhoz, hogy virtuális környezeteinket optimálisan tudjuk hangolni, ismernünk kell a bennük található alkalmazások terhelési mutatóit. A profi leing technológiák jelentős fejlődésen estek át napjainkra, s talán a legjelentősebb eredmény, hogy ezt a feladatot ma már könnyen, egyszerűen végezhetjük el.