1 / 26

Monitoring of resource consumption in Java-based application servers

Monitoring of resource consumption in Java-based application servers. Jarle Hulaas Jarle.Hulaas@epfl.ch Swiss Federal Institute of Technology in Lausanne (EPFL) Switzerland (Formerly at CUI, Uni Geneva) Dimitri Kalas kalas8@etu.unige.ch University of Geneva Switzerland.

talia
Download Presentation

Monitoring of resource consumption in Java-based application servers

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Monitoring of resource consumptionin Java-based application servers Jarle HulaasJarle.Hulaas@epfl.ch Swiss Federal Institute of Technology in Lausanne (EPFL) Switzerland (Formerly at CUI, Uni Geneva) Dimitri Kalaskalas8@etu.unige.ch University of Geneva Switzerland 10th HP-OVUA workshop, Geneva, Switzerland July 7, 2003

  2. Overview • What is Resource Management ? • Our General Approach • Some Details on our J-RAF Tool • Management of a Servlet Engine • Adapting J-RAF to Tomcat • Assessment 7/7/2003 10th HP-OVUA workshop, Geneva, Switzerland

  3. What is Resource Management ? • Physical resources: • CPU • (Virtual) Memory • Network bandwidth • Management of resources: • Monitoring of consumption • Controlling (i.e. limiting) it 7/7/2003 10th HP-OVUA workshop, Geneva, Switzerland

  4. Benefits of Resource Management • Software development • Monitoring and profiling of distributed applications • Security • Prevention against Denial-of-Service attacks • Reliability • More robust behaviours in presence of resource shortage • Accountability (liability) for resource consumption • E-commerce • Billing for resource consumption • Quality-of-Service guarantees, load balancing 7/7/2003 10th HP-OVUA workshop, Geneva, Switzerland

  5. www. .org The Java Resource Accounting Framework, 2nd edition What about Java ? • Problem: Java offers no support for resource management ! • Our solution: portable resource management through byte-code rewriting schemes 7/7/2003 10th HP-OVUA workshop, Geneva, Switzerland

  6. Per-thread accounting objects Meta-level Mem CPU Net Execution hooks Rewrite bytecode Transformed, resource-aware version of Application OriginalJava Application(compiled) General Approach 7/7/2003 10th HP-OVUA workshop, Geneva, Switzerland Execute

  7. Our Solution • Program transformations to expose resource consumption • Application classes and libraries, incl. JDK • Rewritten programs unknowingly update accounting objects • CPU: count the number of executed JVM instructions • Memory: redirection of memory allocations • Network bandwidth: wrapper libraries 7/7/2003 10th HP-OVUA workshop, Geneva, Switzerland

  8. 1 2 3 1 (size=2) 4 2 (size=3) 3 (size=6) 4 (size=3) 5 5 (size=3) 6 7 (size=3) 6 (size=2) 7 8 8 (size=1) Class Analysis for CPU monitoring 0 bipush 10 2 istore_1 3 iconst_1 6 istore_3 7 goto 25 10 invokestatic #2 <Method java.lang.Thread currentThread()> 13 pop 14 ldc2_w #3 <Long 100> 17 bipush 100 19 invokestatic #5 <Method void sleep(long, int)> 22 iinc 3 1 25 iload_3 26 iconst_1 27 if_icmple 10 30 iload_2 31 iconst_1 32 if_icmpl1 3 35 iinc 2 -1 38 goto 44 41 astore_2 42 iconst_0 43 istore 3 44 return Exception table: from to target type 3 38 41 <Class java.lang.Exception> 7/7/2003 10th HP-OVUA workshop, Geneva, Switzerland

  9. Method Rewriting by J-RAF Object f (int x, MemAccObj mem, CPUAccObj cpu) { cpu.usage += 8; if (x < 0) { cpu.usage += 8; return null; } else { cpu.usage += 26; int y = g(x, mem, cpu); mem.checkAllocation(SIZEOF_FOO); Object o = new Foo(y, mem, cpu); mem.register(o); return o; } } 7/7/2003 10th HP-OVUA workshop, Geneva, Switzerland

  10. Resource-aware Application High-level Resource Accounting & Control Low-level Resource Acc&Control (Memory, CPU) Resource-aware JDK JVM Native Code Generic Application Structure Bytecode Rewriting 7/7/2003 10th HP-OVUA workshop, Geneva, Switzerland

  11. J-RAF in Action • CPU monitoring for some multi-threaded applet 7/7/2003 10th HP-OVUA workshop, Geneva, Switzerland

  12. Validation of the J-RAF approach • Tested on J2SE … • arbitrary applications, as well as applet and mobile agent environments • Sun 1.4.1 HotSpot Virtual Machine,IBM JDK 1.3.1 • … and on J2ME (embedded devices) … • dedicated system with Java processor from aJile Systems 7/7/2003 10th HP-OVUA workshop, Geneva, Switzerland

  13. Benchmarks for CPU accounting SPEC JVM98 7/7/2003 10th HP-OVUA workshop, Geneva, Switzerland

  14. Resource Mgmt for Servlet Engines Resource Mgmt for Servlet Engines Servlet Engines Access rights HTML, streams Requests Reporting 7/7/2003 10th HP-OVUA workshop, Geneva, Switzerland End-user Provider’s Database

  15. Objectives • Fine-grained basis for: • Usage-based billing(pricing policies are out of our scope) • Identification of bottlenecks • Badly programmed or malicious apps • Load-balancing on clusters of servers 7/7/2003 10th HP-OVUA workshop, Geneva, Switzerland

  16. Required J-RAF extensions • Define a servlet as a coherent set of threads • Flexible concept of client (end-user) context • Enhanced detection of bandwidth consumption • Remote reporting 7/7/2003 10th HP-OVUA workshop, Geneva, Switzerland

  17. Servlets as sets of threads • How to detect the start and end of a request processing ? • Special rewriting of methods like doGet and doPost, to cope with Tomcat’s thread pooling • Register and account for created sub-threads • Add a RequestAccount class for aggregating usage of all these threads 7/7/2003 10th HP-OVUA workshop, Geneva, Switzerland

  18. User-level accounting • Periodically do: • Summarize usage of all individual threads inside a servlet • Summarize usage of all servlets run on behalf of a given user • Report this usage to a database • Problems that had to be solved: • Overflow of counters at all levels • Calibration of timeslices according to processing power 7/7/2003 10th HP-OVUA workshop, Geneva, Switzerland

  19. User context • Allow servlet programmers to define their own: • Authentication schemes, IP-based or password-based • Programmer must implement a ClientID interface • Read usage rights from database • User data reporting schemes • Allow extensible reporting of user data, e.g. session IDs 7/7/2003 10th HP-OVUA workshop, Geneva, Switzerland

  20. Bytecode Rewriting Resource-aware Servlet High-level Resource Accounting & Control Low-level Resource Acc&Control (Memory, CPU) Resource-aware Servlet Engine Resource-aware JDK JVM Native Code Resulting Servlet Structure 7/7/2003 10th HP-OVUA workshop, Geneva, Switzerland

  21. Sample Log for a Given Client Servlet name Timestamp JVM ops/s In+Out Bandwidth [Bytes/s] 7/7/2003 10th HP-OVUA workshop, Geneva, Switzerland

  22. Performance Testing • Setting: Pentium-class PCs in a 100Mb LAN, Tomcat 4.1, MySQL 4.0.13 • Generate many simultaneous connections with Jmeter 1.8.1 • Different test servlets: • Output of an empty page • Streaming of factorials • Download, ZIP-compress, and output a web page 7/7/2003 10th HP-OVUA workshop, Geneva, Switzerland

  23. Preliminary Performance Results 7/7/2003 10th HP-OVUA workshop, Geneva, Switzerland Overhead due to CPU monitoring • Average overhead: same order of magnitude as for standard Java applications (~ 30 %)

  24. Cons • Purely a Java-level framework: • Difficult to account for resources consumed by native code • No real-time / resource reservation capabilities • Increase of code size • Restrictions on what servlets may do • to play with thread priorities • to perform introspection to inspect or modify accounting objects 7/7/2003 10th HP-OVUA workshop, Geneva, Switzerland

  25. Conclusions • Initial work towards fine-grained management of Java servers • Reasonable overheads • Future work: • Finalize management of memory • Improve control vs monitoring • Support for clusters of servers www.jraf2.org 7/7/2003 10th HP-OVUA workshop, Geneva, Switzerland

  26. Thank you for your attention ! 7/7/2003 10th HP-OVUA workshop, Geneva, Switzerland

More Related