UPortal Performance & Memory Issues Scott Battaglia Rutgers, the State University of New Jersey.

Slides:



Advertisements
Similar presentations
Refeng Wu CQ5 WCM System Administrator
Advertisements

SSRS 2008 Architecture Improvements Scale-out SSRS 2008 Report Engine Scalability Improvements.
Customizing the MOSS 2007 Search Results November 2007 Rafael Perez.
Module 17 Tracing Access to SQL Server 2008 R2. Module Overview Capturing Activity using SQL Server Profiler Improving Performance with the Database Engine.
Information Technology Update Aaron Smallwood Manager, IT Business & Customer Services.
Lock-Based Concurrency Control
MIS 2000 Class 20 System Development Process Updated 2014.
® IBM Software Group © 2010 IBM Corporation What’s New in Profiling & Code Coverage RAD V8 April 21, 2011 Kathy Chan
Feature requests for Case Manager By Spar Nord Bank A/S IBM Insight 2014 Spar Nord Bank A/S1.
MCTS GUIDE TO MICROSOFT WINDOWS 7 Chapter 10 Performance Tuning.
JProbe. 1. JProbe Use JProbe Profile –identify method and line level performance bottlenecks Use JProbe Memory Debugger –investigating memory leaks and.
Module 20 Troubleshooting Common SQL Server 2008 R2 Administrative Issues.
1 Maximize Java Performance by using YOURKIT with uPortal development Faizan Ahmed – Sr. Application Developer.
Chapter 14 Chapter 14: Server Monitoring and Optimization.
1 - Oracle Server Architecture Overview
Chapter 11 - Monitoring Server Performance1 Ch. 11 – Monitoring Server Performance MIS 431 – created Spring 2006.
Transaction Processing IS698 Min Song. 2 What is a Transaction?  When an event in the real world changes the state of the enterprise, a transaction is.
UPortal Roadmap Patches, evolution, and revolution Andrew Petro, Yale University Eric Dalquist, Unicon.
Lab Manager Maintenance July, 2008 VMware Confidential Lab Manager 3 Training Series Module 9.
Maintaining and Updating Windows Server 2008
MCTS Guide to Microsoft Windows Server 2008 Network Infrastructure Configuration Chapter 11 Managing and Monitoring a Windows Server 2008 Network.
11 MAINTAINING THE OPERATING SYSTEM Chapter 5. Chapter 5: MAINTAINING THE OPERATING SYSTEM2 CHAPTER OVERVIEW Understand the difference between service.
11 SYSTEMS ADMINISTRATION AND TERMINAL SERVICES Chapter 12.
NovaBACKUP 10 xSP Technical Training By: Nathan Fouarge
MCTS Guide to Microsoft Windows 7
1. There are different assistant software tools and methods that help in managing the network in different things such as: 1. Special management programs.
POSITIONING STATEMENT For people who operate shared computers with Genuine Windows XP, the Shared Computer Toolkit is an affordable, integrated, and easy-to-use.
Claudio Grandi INFN Bologna CMS Operations Update Ian Fisk, Claudio Grandi 1.
Computer Measurement Group, India Optimal Design Principles for better Performance of Next generation Systems Balachandar Gurusamy,
Module 7: Fundamentals of Administering Windows Server 2008.
JA-SIG 12/4/20051 JMX For Monitoring and Maintenance JA-SIG - December 4, 2005 – Atlanta, GA Eric Dalquist Division of Information Technology University.
EGEE is a project funded by the European Union under contract IST Build Infrastructure & Release Procedures Integration.
Copyright © 2014 EMC Corporation. All Rights Reserved. SnapView Snapshot Upon completion of this module, you should be able to: Describe SnapView Snapshot.
1099 Why Use InterBase? Bill Todd The Database Group, Inc.
UPortal 2 Status – 9/19/05 Dan Mindler Enterprise Systems & Services
Luminance.  Major group refactoring.  Development Lead: Stephen Damm.  Project Manager: Martina Nagy.  Test team member: Chet Collins.  A lot of.
1 Performance Optimization In QTP Execution Over Video Automation Testing Speaker : Krishnesh Sasiyuthaman Nair Date : 10/05/2012.
Learningcomputer.com SQL Server 2008 – Profiling and Monitoring Tools.
Monitoring SAT Participation and Performance. SAT/ACT Performance Targets Combined Critical Reading, Mathematics, and Writing SAT Score Targets
How to Run a Scenario In HP LoadRunner >>>>>>>>>>>>>>>>>>>>>>
UPortal Roadmap Patches, evolution, and revolution Andrew Petro, Yale University Eric Dalquist, Unicon.
June 10, 2009 RMS PR90006, Commercial Systems Information Lifecycle Management (ILM) Hope Parrish, ERCOT.
Apache JMeter By Lamiya Qasim. Apache JMeter Tool for load test functional behavior and measure performance. Questions: Does JMeter offers support for.
Analysis trains – Status & experience from operation Mihaela Gheata.
Process Architecture Process Architecture - A portion of a program that can run independently of and concurrently with other portions of the program. Some.
Multithreading Chapter Introduction Consider ability of _____________ to multitask –Breathing, heartbeat, chew gum, walk … In many situations we.
CH 13 Server and Network Monitoring. Hands-On Microsoft Windows Server Objectives Understand the importance of server monitoring Monitor server.
© 2006, National Research Council Canada © 2006, IBM Corporation Solving performance issues in OTS-based systems Erik Putrycz Software Engineering Group.
UPortal Roadmap Patches, evolution, and revolution Andrew Petro, Yale University Eric Dalquist, Unicon.
UpgradinguPortal to What’s new that matters Better use of third party frameworks Faster! Improved caching Drag and Drop New Skin & Theme Accessibility.
Maintaining and Updating Windows Server 2008 Lesson 8.
SQL Advanced Monitoring Using DMV, Extended Events and Service Broker Javier Villegas – DBA | MCP | MCTS.
HPHC - PERFORMANCE TESTING Dec 15, 2015 Natarajan Mahalingam.
Improve query performance with the new SQL Server 2016 query store!! Michelle Gutzait Principal Consultant at
Bishnu Priya Nanda , Tata Consultancy Services Ltd.
Machine Learning Library for Apache Ignite
SEDA: An Architecture for Scalable, Well-Conditioned Internet Services
Archiving and Document Transfer Utilities
Java 9: The Quest for Very Large Heaps
MCTS Guide to Microsoft Windows 7
Software Architecture in Practice
1Y0-203 Dumps PDF Are You Worried About Citrix XenApp and XenDesktop 7.15 Administration 1y0-203 dumps1y0-203 braindumps1y0-203 study material1y0-203 dumps.
5 Tips for Upgrading Reports to v 6.3
PerfView Measure and Improve Your App’s Performance for Free
JULIE McLAIN-HARPER LINKEDIN: JM HARPER
Operating Systems.
ColdFusion Performance Troubleshooting and Tuning
Adaptive Code Unloading for Resource-Constrained JVMs
SharePoint 2013 Best Practices
Presentation transcript:

uPortal Performance & Memory Issues Scott Battaglia Rutgers, the State University of New Jersey

Description of Problem Amount of memory consumed by uPortal grows consistently Continues to consume memory until there is no memory left Application stops working properly and hangs Consistent with definition of a memory leak

Background Launched myRutgers on uPortal 2.3 Issue was not seen in our QA Seeing issue in production since November 2004

Background Also seen in production by: Yale University University of Louisiana at Lafayette University of California at Irvine Cornell University

Temporary Workaround Monitor memory usage of uPortal When memory drops below 5% bounce JVM.

Issues with Workaround May be too aggressive In some cases, JVM may be able to garbage collect Causes users on that JVM to lose their session If miss window of opportunity to restart, can take down Apache also

Issues with Workaround Ultimately, does nothing to resolve memory issue. Just makes it barely livable

History of Fixes Removed caching of IPersons from PersonDirectory CError and CSecureInfo now pass events to wrapped channels. Restrict access to ChannelFactory’s channel cache, synchronized instantiateChannel method. Guest sessions created on time out AbstractMultithreadedChannels were not cleaning out their channel state maps (2 of them).

But…. 3 Months later, issue still exists. Previous steps solved memory leaks but still more exist. The search continues…

What’s Happening Today Renewed effort to search for memory leaks Initial Steps taken: Retooling of Load Tests Production Snapshots Incremental Updates Re-affirming that loadtest system matches production system

Retooling of Load Tests Attempt to mimic more closely what a user does in production. More custom layouts Less people logging out Hitting more popular channels more aggressively

Retooling of Load Tests Attempt to accomplish same throughput Determine average user session length Determine rate at which users access system

Retooling of Load Tests Bought test system with same specs/setup as production systems Ensure database optimizations are the same Ensure uPortal configuration is the same (i.e. StatsRecorder)

Production Snapshots Only seeing issue in production Need to capture production snapshots JVM Heap Size initially set at 2 GB

Production Snapshots Lowered JVM Heap Size to 128 MB on machine Allows us to compare snapshots When memory reaches 10% take it out of load balancing rotation Garbage Collect

Production Snapshots Capture snapshot Wait past session timeout Currently set at 15 minutes Garbage Collect again Take new snapshot Analyze Snapshot

Production Snapshots What do they tell us? They help us determine what objects are still in memory Tells us how much memory they are using Tells us how much memory items they reference are using

Understanding the Snapshots Use YourKit Java Profiler to capture memory snapshots YourKit consists of two parts: Component that runs on server Local application to open memory snapshots

Understanding the Snapshots YourKit tells us: Reports incoming and outgoing references Totals for objects of each type How much memory they consume Allows us to compare snapshots, showing the deltas of each object type. uPortal community has about 20 licenses for YourKit

Understanding the Snapshots Name Objects Shallow Size Retained Size

Understanding the Snapshots Trace the path to the root of the Garbage Collector Option of seeing first path or multiple paths In screenshot, we see first five

Understanding the Snapshots Example of object from “Retained Size” Only reason this object still exists is because XRTreeFrag has not been GCed.

Understanding the Snapshots Comparison of two snapshots (users vs. no users) See that XRTreeFrag retains number of objects

Understanding the Snapshots Also comparison of (users vs. no users) See that UserInstance gets garbage collected, as does ChannelStaticData, etc.

Incremental Updates In order to determine the impact of changes to the uPortal framework, we’ve adopted an incremental update approach. We apply one “fix” at a time, and monitor its impact.

Incremental Updates Currently in production… Threadpool switch from homegrown to Backport Concurrent Finalizer in UBC_Webmail In the queue… Update to AuthorizationImpl

What’s Happening Today Recently, flurry of activity on JASIG- DEV list about memory issues. Backport Concurrent Threadpool AuthorizationImpl Finalizers in UBC_Webmail

What’s Happening Today Backport Concurrent Thread Library Issues with current threadpool Potential for deadlock or infinite loop Potential for cleanup to fail in thread workers UnboundedThreadpool that extends BoundedThreadpool

What’s Happening Today Backport Concurrent Thread Library (cont) Action Item Aaron wrote patch against HEAD to replace thread library Rutgers manually applied patch to and placed into production. Result: Undetermined: Most students were on Spring Break Preliminary results indicate may offer performance benefit rather than memory leak fix

What’s Happening Today AuthorizationImpl Current Issues Retaining references to principals No explicit removal of principal from cache Copying of map on each newPrincipal call that results in a new principal

What’s Happening Today AuthorizationImpl Action Item Rutgers volunteered to provide fix for HEAD Fix consists of replacing current newPrincipal method and replacing HashMap with a cache Patch is scheduled to be loadtested and placed into production Patch is scheduled to be committed to uPortal HEAD on successful test and deployment

What’s Happening Today AuthorizationImpl Consequences of Changes Introduced a CacheFactory Not specific to any one part of uPortal CacheFactory is interface (plug your own in!) Default CacheFactory using WhirlyCache Allows for declaring cache settings and policy in XML Allows for fine-grained caching strategies for each part of uPortal

What’s Happening Today UBC_Webmail Issue Finalizers are not properly cleaning up Action Item Rutgers has volunteered to refactor Finalizers

Continuing the Search… Rutgers, and other members of the uPortal community continue to search for the answer to the memory leaks

What can we do to help? Finalizer should be a last resort If a viable open source project exists that fills the requirements, consider using that Be aware of proper caching (where its needed vs. where its not needed, weak & soft references, etc.) Avoid circular references wherever possible

The End (finally!) Any questions, comments, concerns?