Download presentation
Presentation is loading. Please wait.
Published byJennifer Sutton Modified over 11 years ago
1
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 Monitoring of resource consumption in Java-based application servers 10th HP-OVUA workshop, Geneva, Switzerland July 7, 2003
2
7/7/2003 10th HP-OVUA workshop, Geneva, Switzerland 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
3
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
4
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
5
7/7/2003 10th HP-OVUA workshop, Geneva, Switzerland 5 What about Java ? Problem: Java offers no support for resource management ! Our solution: portable resource management through byte-code rewriting schemes The Java Resource Accounting Framework, 2nd edition www..org
6
7/7/2003 10th HP-OVUA workshop, Geneva, Switzerland 6 Rewrite bytecode General Approach Execute Original Java Application (compiled) Transformed, resource-aware version of Application Per-thread accounting objects Net CPUMem Meta-level Execution hooks
7
7/7/2003 10th HP-OVUA workshop, Geneva, Switzerland 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
8
7/7/2003 10th HP-OVUA workshop, Geneva, Switzerland 8 Class Analysis for CPU monitoring 2 3 4 6 8 7 5 1 0 bipush 10 2 istore_1 3 iconst_1 6 istore_3 7 goto 25 10 invokestatic #2 13 pop 14 ldc2_w #3 17 bipush 100 19 invokestatic #5 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 1 (size=2) 2 (size=3) 3 (size=6) 4 (size=3) 5 (size=3) 6 (size=2)7 (size=3) 8 (size=1)
9
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; }
10
7/7/2003 10th HP-OVUA workshop, Geneva, Switzerland 10 Generic Application Structure Bytecode Rewriting Low-level Resource Acc&Control (Memory, CPU) High-level Resource Accounting & Control Resource-aware Application JVM Native Code Resource-aware JDK
11
7/7/2003 10th HP-OVUA workshop, Geneva, Switzerland 11 J-RAF in Action CPU monitoring for some multi- threaded applet
12
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
13
7/7/2003 10th HP-OVUA workshop, Geneva, Switzerland 13 Benchmarks for CPU accounting SPEC JVM98
14
7/7/2003 10th HP-OVUA workshop, Geneva, Switzerland 14 Resource Mgmt for Servlet Engines Reporting Requests HTML, streams Access rights Servlet Engines Providers Database End-user Resource Mgmt for Servlet Engines
15
7/7/2003 10th HP-OVUA workshop, Geneva, Switzerland 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
16
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
17
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 Tomcats thread pooling Register and account for created sub- threads Add a RequestAccount class for aggregating usage of all these threads
18
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
19
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
20
7/7/2003 10th HP-OVUA workshop, Geneva, Switzerland 20 Resource-aware Servlet Engine Resulting Servlet Structure Bytecode Rewriting Low-level Resource Acc&Control (Memory, CPU) High-level Resource Accounting & Control Resource-aware Servlet JVM Native Code Resource-aware JDK
21
7/7/2003 10th HP-OVUA workshop, Geneva, Switzerland 21 Sample Log for a Given Client Servlet nameTimestampJVM ops/sIn+Out Bandwidth [Bytes/s]
22
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: 1. Output of an empty page 2. Streaming of factorials 3. Download, ZIP-compress, and output a web page
23
7/7/2003 10th HP-OVUA workshop, Geneva, Switzerland 23 Preliminary Performance Results Simultaneous requests Empty page Streaming factorials ZIP page 1700 %84.9 %10.5 % 2028.8 %23.9 %20.7 % 5048.3 %22.8 %30.8 % Overhead due to CPU monitoring Average overhead: same order of magnitude as for standard Java applications (~ 30 %)
24
7/7/2003 10th HP-OVUA workshop, Geneva, Switzerland 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
25
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
26
7/7/2003 10th HP-OVUA workshop, Geneva, Switzerland 26 Thank you for your attention !
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.