logging in or signing up HPOVUA2003 slides Freedom Download Post to : URL : Related Presentations : Share Add to Flag Embed Email Send to Blogs and Networks Add to Channel Uploaded from authorPOINTLite Insert YouTube videos in PowerPont slides with aS Desktop Copy embed code: (To copy code, click on the text box) Embed: URL: Thumbnail: WordPress Embed Customize Embed The presentation is successfully added In Your Favorites. Views: 42 Category: Entertainment License: All Rights Reserved Like it (0) Dislike it (0) Added: October 17, 2007 This Presentation is Public Favorites: 0 Presentation Description No description available. Comments Posting comment... Premium member Presentation Transcript Monitoring of resource consumptionin 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 Monitoring of resource consumption in Java-based application servers 10th HP-OVUA workshop, Geneva, Switzerland July 7, 2003Overview: 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 AssessmentWhat is Resource Management ?: What is Resource Management ? Physical resources: CPU (Virtual) Memory Network bandwidth Management of resources: Monitoring of consumption Controlling (i.e. limiting) itBenefits of Resource Management: 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 balancingWhat about Java ?: What about Java ? Problem: Java offers no support for resource management ! Our solution: portable resource management through byte-code rewriting schemes General Approach: General Approach Execute Our Solution: 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 Class Analysis for CPU monitoring: 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> Method Rewriting by J-RAF: 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; } }Generic Application Structure: Generic Application Structure Bytecode RewritingJ-RAF in Action: J-RAF in Action CPU monitoring for some multi-threaded appletValidation of the J-RAF approach: 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 SystemsBenchmarks for CPU accounting: Benchmarks for CPU accounting SPEC JVM98Resource Mgmt for Servlet Engines: Resource Mgmt for Servlet Engines Reporting Requests HTML, streams Access rights Servlet Engines Provider’s Database End-user Resource Mgmt for Servlet Engines Objectives: 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 Required J-RAF extensions: 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 Servlets as sets of threads: 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 threadsUser-level accounting : 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 User context: 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 IDsResulting Servlet Structure: Resulting Servlet StructureSample Log for a Given Client: Sample Log for a Given Client Servlet name Timestamp JVM ops/s In+Out Bandwidth [Bytes/s]Performance Testing: 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 pagePreliminary Performance Results: Preliminary Performance Results Overhead due to CPU monitoring Average overhead: same order of magnitude as for standard Java applications (~ 30 %)Cons: 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 Conclusions: 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.orgSlide26: Thank you for your attention ! You do not have the permission to view this presentation. In order to view it, please contact the author of the presentation.
HPOVUA2003 slides Freedom Download Post to : URL : Related Presentations : Share Add to Flag Embed Email Send to Blogs and Networks Add to Channel Uploaded from authorPOINTLite Insert YouTube videos in PowerPont slides with aS Desktop Copy embed code: (To copy code, click on the text box) Embed: URL: Thumbnail: WordPress Embed Customize Embed The presentation is successfully added In Your Favorites. Views: 42 Category: Entertainment License: All Rights Reserved Like it (0) Dislike it (0) Added: October 17, 2007 This Presentation is Public Favorites: 0 Presentation Description No description available. Comments Posting comment... Premium member Presentation Transcript Monitoring of resource consumptionin 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 Monitoring of resource consumption in Java-based application servers 10th HP-OVUA workshop, Geneva, Switzerland July 7, 2003Overview: 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 AssessmentWhat is Resource Management ?: What is Resource Management ? Physical resources: CPU (Virtual) Memory Network bandwidth Management of resources: Monitoring of consumption Controlling (i.e. limiting) itBenefits of Resource Management: 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 balancingWhat about Java ?: What about Java ? Problem: Java offers no support for resource management ! Our solution: portable resource management through byte-code rewriting schemes General Approach: General Approach Execute Our Solution: 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 Class Analysis for CPU monitoring: 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> Method Rewriting by J-RAF: 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; } }Generic Application Structure: Generic Application Structure Bytecode RewritingJ-RAF in Action: J-RAF in Action CPU monitoring for some multi-threaded appletValidation of the J-RAF approach: 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 SystemsBenchmarks for CPU accounting: Benchmarks for CPU accounting SPEC JVM98Resource Mgmt for Servlet Engines: Resource Mgmt for Servlet Engines Reporting Requests HTML, streams Access rights Servlet Engines Provider’s Database End-user Resource Mgmt for Servlet Engines Objectives: 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 Required J-RAF extensions: 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 Servlets as sets of threads: 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 threadsUser-level accounting : 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 User context: 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 IDsResulting Servlet Structure: Resulting Servlet StructureSample Log for a Given Client: Sample Log for a Given Client Servlet name Timestamp JVM ops/s In+Out Bandwidth [Bytes/s]Performance Testing: 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 pagePreliminary Performance Results: Preliminary Performance Results Overhead due to CPU monitoring Average overhead: same order of magnitude as for standard Java applications (~ 30 %)Cons: 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 Conclusions: 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.orgSlide26: Thank you for your attention !