8th Sakai Conference4-7 December 2007 Newport Beach Collaborative Performance Testing Healthy Medicine for Robust Sakai Code.

Slides:



Advertisements
Similar presentations
Cultural Heritage in REGional NETworks REGNET Project Meeting Content Group
Advertisements

XIr2 Recommended Performance Tuning Andy Erthal BI Practice Manager.
Presentation Date Top Down Performance Management with OEM Grid Control Or how I learned to stop worrying and love OEM Grid Control 10/1/2010 John Darrah.
Chapter 9. Performance Management Enterprise wide endeavor Research and ascertain all performance problems – not just DBMS Five factors influence DB performance.
Module 13: Performance Tuning. Overview Performance tuning methodologies Instance level Database level Application level Overview of tools and techniques.
Advanced Tuning: Unconventional Solutions to Everyday Problems Robert L Davis.
Performance Testing - Kanwalpreet Singh.
Web Performance Tuning Lin Wang, Ph.D. US Department of Education Copyright [Lin Wang] [2004]. This work is the intellectual property of the author. Permission.
Copyright © 2011 by the Commonwealth of Pennsylvania. All Rights Reserved. Load Test Report.
Test Automation An Approach to Automated Software Regression Testing Presented by Adnet, Inc Feb 2015.
Software Delivery. Software Delivery Management  Managing Requirements and Changes  Managing Resources  Managing Configuration  Managing Defects 
Memory Leak WEBLOGIC SERVER.  Overview of Java Heap  What is a Memory Leak  Symptoms of Memory Leaks  How to troubleshoot  Tools  Best Practices.
ManageEngine® Applications Manager
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment Chapter 11: Monitoring Server Performance.
©Company confidential 1 Performance Testing for TM & D – An Overview.
Sakai Community Performance Testing Working Proof of Concept Sakai Performance Working Group Linda Place, Chris Kretler, Alan Berg Universities of Michigan.
Chapter 9 Overview  Reasons to monitor SQL Server  Performance Monitoring and Tuning  Tools for Monitoring SQL Server  Common Monitoring and Tuning.
Module 8: Monitoring SQL Server for Performance. Overview Why to Monitor SQL Server Performance Monitoring and Tuning Tools for Monitoring SQL Server.
Microsoft ® Official Course Monitoring and Troubleshooting Custom SharePoint Solutions SharePoint Practice Microsoft SharePoint 2013.
Memory Leak Overview and Tools. AGENDA  Overview of Java Heap  What is a Memory Leak  Symptoms of Memory Leaks  How to troubleshoot  Tools  Best.
Load Test Planning Especially with HP LoadRunner >>>>>>>>>>>>>>>>>>>>>>
Copyright © 2010 by the Commonwealth of Pennsylvania. All Rights Reserved. Load Test Results Bureau of Information Systems.
Module 15: Monitoring. Overview Formulate requirements and identify resources to monitor in a database environment Types of monitoring that can be carried.
Module 18 Monitoring SQL Server 2008 R2. Module Overview Monitoring Activity Capturing and Managing Performance Data Analyzing Collected Performance Data.
Performance Testing Process SASQAG March 2007 Emily Ren T-Mobile.
Maintaining a Microsoft SQL Server 2008 Database SQLServer-Training.com.
Database Advisors Automatic Database Diagnostic Monitor ( ADDM )
Introduction and simple using of Oracle Logistics Information System Yaxian Yao
2 Copyright © 2006, Oracle. All rights reserved. Performance Tuning: Overview.
OFC 200 Microsoft Solution Accelerator for Intranets Scott Fynn Microsoft Consulting Services National Practices.
How to Design and Implement Load Testing for Sakai The Michigan Experience.
Informix IDS Administration with the New Server Studio 4.0 By Lester Knutsen My experience with the beta of Server Studio and the new Informix database.
Oracle9i Performance Tuning Chapter 1 Performance Tuning Overview.
The Self-Managing Database: Guided Application and SQL Tuning Mohamed Ziauddin Consulting Member of Technical Staff Oracle Corporation Session id:
LoadRunner SE Guide 김범수 한국비지네스써비스 ( 주 )
Oracle Tuning Considerations. Agenda Why Tune ? Why Tune ? Ways to Improve Performance Ways to Improve Performance Hardware Hardware Software Software.
Designing and Deploying a Scalable EPM Solution Ken Toole Platform Test Manager MS Project Microsoft.
LoadComplete Testing Tool. LoadComplete Testing Tool.
Installing, Configuring And Troubleshooting Coldfusion Mark A Kruger CFG Ryan Stille CF Webtools.
Learningcomputer.com SQL Server 2008 – Profiling and Monitoring Tools.
Deploy With Confidence Minimize risks Improve business output Optimize resources.
Module 14 Monitoring and Optimizing SharePoint Performance.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment, Enhanced Chapter 11: Monitoring Server Performance.
T E S T I N G O P T I M I Z E D 1 Optimus Confidential Performance Testing with LoadRunner Case Study.
Software Architecture in Practice Practical Exercise in Performance Engineering.
1 Oracle Enterprise Manager Slides from Dominic Gélinas CIS
Copyright 2007, Information Builders. Slide 1 Machine Sizing and Scalability Mark Nesson, Vashti Ragoonath June 2008.
Performance Testing Test Complete. Performance testing and its sub categories Performance testing is performed, to determine how fast some aspect of a.
Understanding Performance Testing Basics by Adnan Khan.
Software Architecture in Practice Mandatory project in performance engineering.
Metric Studio Cognos 8 BI. Objectives  In this module, we will examine:  Concepts and Overview  An Introduction to Metric Studio  Cognos 8 BI Integration.
Copyright Sammamish Software Services All rights reserved. 1 Prog 140  SQL Server Performance Monitoring and Tuning.
If you have a transaction processing system, John Meisenbacher
HPHC - PERFORMANCE TESTING Dec 15, 2015 Natarajan Mahalingam.
1 Presented by: Val Pennell, Test Tool Manager Date: March 9, 2004 Software Testing Tools – Load Testing.
Improve query performance with the new SQL Server 2016 query store!! Michelle Gutzait Principal Consultant at
Introduction to Performance Tuning Chia-heng Tu PAS Lab Summer Workshop 2009 June 30,
SQL Database Management
Software Architecture in Practice
SQL Server Monitoring Overview
Load Testing January 2018 René Ernst.
Introduction of Week 3 Assignment Discussion
Migration Strategies – Business Desktop Deployment (BDD) Overview
Continuous Performance Engineering
11/12/2018 6:58 PM © 2004 Microsoft Corporation. All rights reserved.
ColdFusion Performance Troubleshooting and Tuning
Course: Module: Lesson # & Name Instructional Material 1 of 32 Lesson Delivery Mode: Lesson Duration: Document Name: 1. Professional Diploma in ERP Systems.
Performance And Scalability In Oracle9i And SQL Server 2000
Performance And Scalability In Oracle9i And SQL Server 2000
Presentation transcript:

8th Sakai Conference4-7 December 2007 Newport Beach Collaborative Performance Testing Healthy Medicine for Robust Sakai Code

Collaborative Performance Testing Using the example of Samigo, how performance testing can help developers find and fix performance defects before production.

Overview Introductions Some terms Michigan performance test setup Perspectives: –Tester –DBA –Systems Administrator –Developer Questions and Comments

Who are we? Lydia Li – Sakai Developer, Stanford University Chris Franz – Senior System Administrator, Unicon Drew Zhu – Oracle DBA, University of Michigan Chris Kretler – Performance Tester, University of Michigan

What does performance testing mean to me? Replication of middleware calls Tests have different goals: –“Load” –“Stress” –“Benchmark” –“Capacity Planning”

What does it mean, part II High data requirements –500 x 60 x 5 = 150,000 rows Response times Infrastructure metrics –CPU –Memory Concurrent “virtual” users

What it does not mean: A Simulation –Actual traffic is generated –System cannot tell the difference. GUI test High-volume functional test –Scope is narrower

When do we test? All major releases –New tools –“Significant” builds Hardware Evaluations Configuration Changes Sakai performance testing –Expand our scope

Michigan Test Environment Dedicated testing environment: –Load Balancers (Netscaler RS9000s) –8 application servers (Dell 2650s running RedHat) –1 Database server (Sun T2000 running 10g) System Administrators (Jeff, Adi, Rick, Ken, Jenny) Database Administrator (Drew) LoadRunner software

Samigo Setup Process Working Sakai build w/Samigo Determined requirements and focus Courses and students were created Sample tests imported Script creation –Lydia’s help was invaluable here.

Sample Script Portion Understanding expected result is crucial to script creation.

Load Test Results

DBA Tasks in Load Tests Monitoring Database and DB Server Produce AWR reports Analyze AWR Reports and Identify Issues Communicate with Developers, Testers, and Sysadmins Query Details and Analyzing Execution Plans Provide suggestions

Oracle OEM Screenshot -1

Oracle OEM Screenshot -2

Oracle OEM Screenshot -3

Samigo Load Test AWR CPU Elapsed CPU per % Total Time (s) Time (s) Executions Exec (s) DB Time SQL Id ,184 3,296 68, xh90r4gx5cz select itemgradin0_.ITEMGRADINGID as ITEMGRAD1_139_, itemgradin0_.ASSESSMENTGRAD INGID as ASSESSME2_139_, itemgradin0_.PUBLISHEDITEMID as PUBLISHE3_139_, itemgra din0_.PUBLISHEDITEMTEXTID as PUBLISHE4_139_, itemgradin0_.AGENTID as AGENTID139_, itemgradin0_.SUBMITTEDDATE as SUBMITTE6_139_, itemgradin0_.PUBLISHEDANSWERID a , byxm85k79suc select answerfeed0_.ANSWERID as ANSWERID1_, answerfeed0_.ANSWERFEEDBACKID as ANS WERFE1_1_, answerfeed0_.ANSWERFEEDBACKID as ANSWERFE1_137_0_, answerfeed0_.ANSWE RID as ANSWERID137_0_, answerfeed0_.TYPEID as TYPEID137_0_, answerfeed0_.TEXT as TEXT137_0_ from SAM_PUBLISHEDANSWERFEEDBACK_T answerfeed0_ where answerfeed0_.A , px7qs284b3xk select answerset0_.ITEMTEXTID as ITEMTEXTID7_, answerset0_.ANSWERID as ANSWERID7 _, answerset0_.ANSWERID as ANSWERID136_6_, answerset0_.ITEMTEXTID as ITEMTEXTID1 36_6_, answerset0_.ITEMID as ITEMID136_6_, answerset0_.TEXT as TEXT136_6_, answe rset0_.SEQUENCE as SEQUENCE136_6_, answerset0_.LABEL as LABEL136_6_, answerset0_ , xmw3p1px195k select count(1) from SAKAI_REALM_RL_FN where REALM_KEY in (select REALM_KEY from SAKAI_REALM where SAKAI_REALM.REALM_ID IN (:1,:2,:3,:4,:5)) and FUNCTION_KEY i n (select FUNCTION_KEY from SAKAI_REALM_FUNCTION where FUNCTION_NAME = :6) and ( ROLE_KEY in (select ROLE_KEY from SAKAI_REALM_RL_GR where ACTIVE = '1' and USER_ , n3rvywwp9y7u select itemmetada0_.ITEMID as ITEMID1_, itemmetada0_.ITEMMETADATAID as ITEMMETA1 _1_, itemmetada0_.ITEMMETADATAID as ITEMMETA1_134_0_, itemmetada0_.ITEMID as ITE MID134_0_, itemmetada0_.LABEL as LABEL134_0_, itemmetada0_.ENTRY as ENTRY134_0_ from SAM_PUBLISHEDITEMMETADATA_T itemmetada0_ where itemmetada0_.ITEMID=:1

Samigo Load Test AWR CPU Elapsed CPU per % Total Time (s) Time (s) Executions Exec (s) DB Time SQL Id ,105 10,659 2,125, byxm85k79suc select answerfeed0_.ANSWERID as ANSWERID1_, answerfeed0_.ANSWERFEEDBACKID as ANS WERFE1_1_, answerfeed0_.ANSWERFEEDBACKID as ANSWERFE1_137_0_, answerfeed0_.ANSWE RID as ANSWERID137_0_, answerfeed0_.TYPEID as TYPEID137_0_, answerfeed0_.TEXT as TEXT137_0_ from SAM_PUBLISHEDANSWERFEEDBACK_T answerfeed0_ where answerfeed0_.A 8,184 8,459 99, wcadnu8rwd5b select count(assessment0_.ASSESSMENTGRADINGID) as col_0_0_ from SAM_ASSESSMENTGR ADING_T assessment0_ where assessment0_.FORGRADE=1 and assessment0_.AGENTID=:1 a nd assessment0_.PUBLISHEDASSESSMENTID=:2 7,290 8, , px7qs284b3xk select answerset0_.ITEMTEXTID as ITEMTEXTID7_, answerset0_.ANSWERID as ANSWERID7 _, answerset0_.ANSWERID as ANSWERID136_6_, answerset0_.ITEMTEXTID as ITEMTEXTID1 36_6_, answerset0_.ITEMID as ITEMID136_6_, answerset0_.TEXT as TEXT136_6_, answe rset0_.SEQUENCE as SEQUENCE136_6_, answerset0_.LABEL as LABEL136_6_, answerset0_ 5,979 6,189 77, cswn2dndzcm0 select assessment0_.ASSESSMENTGRADINGID as ASSESSME1_140_, assessment0_.PUBLISHE DASSESSMENTID as PUBLISHE2_140_, assessment0_.AGENTID as AGENTID140_, assessment 0_.SUBMITTEDDATE as SUBMITTE4_140_, assessment0_.ISLATE as ISLATE140_, assessmen t0_.FORGRADE as FORGRADE140_, assessment0_.TOTALAUTOSCORE as TOTALAUT7_140_, ass 2,174 2, , xmw3p1px195k select count(1) from SAKAI_REALM_RL_FN where REALM_KEY in (select REALM_KEY from SAKAI_REALM where SAKAI_REALM.REALM_ID IN (:1,:2,:3,:4,:5)) and FUNCTION_KEY i n (select FUNCTION_KEY from SAKAI_REALM_FUNCTION where FUNCTION_NAME = :6) and ( ROLE_KEY in (select ROLE_KEY from SAKAI_REALM_RL_GR where ACTIVE = '1' and USER_ 1,950 2,026 22, su2pcsy7fbq5 select assessment0_.ASSESSMENTGRADINGID as col_0_0_, publisheda1_.ID as col_1_0_, publisheda1_.TITLE as col_2_0_, assessment0_.AGENTID as col_3_0_, assessment0_.SUBMITTEDDATE as col_4_0_, assessment0_.ISLATE as col_5_0_, assessment0_.FORGRA DE as col_6_0_, assessment0_.TOTALAUTOSCORE as col_7_0_, assessment0_.TOTALOVERR

New Indexes for Samigo create index idx_ASSGRAD_AID_PUBASSEID on SAM_ASSESSMENTGRADING_T(AGENTID,PUBLISHED ASSESSMENTID) tablespace ctools_indexes; create index IDX_ITEMGRADING_A_GRADINGID on SAM_ITEMGRADING_T(ASSESSMENTGRADINGID) tablespace ctools_indexes; create index IDX_PUBANS_ITEMTEXTID on SAM_PUBLISHEDANSWER_T(ITEMTEXTID) tablespace ctools_indexes; create index IDX_PUBMETDATA_ASSESSMENTID on SAM_PUBLISHEDMETADATA_T(ASSESSMENTID) tablespace ctools_indexes;

Samigo Load Test AWR CPU Elapsed CPU per % Total Time (s) Time (s) Executions Exec (s) DB Time SQL Id ,840 5,046 1,007, byxm85k79suc select answerfeed0_.ANSWERID as ANSWERID1_, answerfeed0_.ANSWERFEEDBACKID as ANS WERFE1_1_, answerfeed0_.ANSWERFEEDBACKID as ANSWERFE1_137_0_, answerfeed0_.ANSWE RID as ANSWERID137_0_, answerfeed0_.TYPEID as TYPEID137_0_, answerfeed0_.TEXT as TEXT137_0_ from SAM_PUBLISHEDANSWERFEEDBACK_T answerfeed0_ where answerfeed0_.A 3,489 4, , px7qs284b3xk select answerset0_.ITEMTEXTID as ITEMTEXTID7_, answerset0_.ANSWERID as ANSWERID7 _, answerset0_.ANSWERID as ANSWERID136_6_, answerset0_.ITEMTEXTID as ITEMTEXTID1 36_6_, answerset0_.ITEMID as ITEMID136_6_, answerset0_.TEXT as TEXT136_6_, answe rset0_.SEQUENCE as SEQUENCE136_6_, answerset0_.LABEL as LABEL136_6_, answerset0_ 1,072 1, , xmw3p1px195k select count(1) from SAKAI_REALM_RL_FN where REALM_KEY in (select REALM_KEY from SAKAI_REALM where SAKAI_REALM.REALM_ID IN (:1,:2,:3,:4,:5)) and FUNCTION_KEY i n (select FUNCTION_KEY from SAKAI_REALM_FUNCTION where FUNCTION_NAME = :6) and ( ROLE_KEY in (select ROLE_KEY from SAKAI_REALM_RL_GR where ACTIVE = '1' and USER_ , n3rvywwp9y7u select itemmetada0_.ITEMID as ITEMID1_, itemmetada0_.ITEMMETADATAID as ITEMMETA1 _1_, itemmetada0_.ITEMMETADATAID as ITEMMETA1_134_0_, itemmetada0_.ITEMID as ITE MID134_0_, itemmetada0_.LABEL as LABEL134_0_, itemmetada0_.ENTRY as ENTRY134_0_ from SAM_PUBLISHEDITEMMETADATA_T itemmetada0_ where itemmetada0_.ITEMID=: , c55kf9dj75jy4 select count(1) from SAKAI_REALM_RL_FN MAINTABLE LEFT JOIN SAKAI_REALM_RL _GR GRANTED_ROLES ON (MAINTABLE.REALM_KEY = GRANTED_ROLES.REALM_KEY AND MAINTABLE.ROLE_KEY = GRANTED_ROLES.ROLE_KEY), SAKAI_REALM REALMS, SAKAI_REAL M_ROLE ROLES, SAKAI_REALM_FUNCTION FUNCTIONS where ( ROLES.ROLE_NAME in(

Server Side Monitoring Ran Perl script to capture CPU utilization on one of eight app servers as well as the DB server The amount of free space in the JVM on one of the application servers was also captured Ran ‘tail –f *.log’ on the app servers looking for stack traces, 404 errors, etc. When necessary, send a ‘kill –QUIT ’ to get a thread dump of what’s going on inside

JAVA_OPTS JAVA_OPTS="-server -Xms1500m -Xmx1500m" JAVA_OPTS="$JAVA_OPTS -XX:NewSize=400m XX:MaxNewSize=400m" JAVA_OPTS="$JAVA_OPTS -XX:PermSize=192m - XX:MaxPermSize=192m" JAVA_OPTS="$JAVA_OPTS -verbose:gc -XX:+PrintGCTimeStamps - XX:+PrintGCDetails" JAVA_OPTS="$JAVA_OPTS -Dsakai.home=/usr/local/sakai/home - Dsakai.components.root=/usr/local/sakai/components" JAVA_OPTS="$JAVA_OPTS -Dsakai.security=/usr/local/sakai/home" JAVA_OPTS="$JAVA_OPTS -Dnetworkaddress.cache.ttl=0 - Dnetworkaddress.cache.negative.ttl=0" JAVA_OPTS="$JAVA_OPTS -Dsun.net.inetaddr.ttl=0 - Dsun.net.inetaddr.negative.ttl=0" JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true"

CPU Utilization Both application server and database server utilization was spiky Application server was in the 20-60% range Database server was in the % range

CPU Utilization Graphs

App Server Heap Usage

Application Profiling If bottleneck was determined to be on application server side, we were prepared to use JProfiler to capture internal JVM statistics Due to its overhead, a profiler can generally only capture statistics under lighter loads

Purpose for the trip Identify bottlenecks under load. –no local performance test environment and expertise Establish a baseline for future regression testing. Gain confidence in our local deployment. –Samigo is an important tool for our users. Publish performance test report to the Sakai community.

Prepare for Performance Test What test case scenarios are we testing? –Focus on Samigo’s delivery feature. What is the expected usage pattern –Our user support team provided the expected # of concurrent users at Stanford – ed and collected other schools’ usage information Prepare for the test –Created sample assessments with question types. –Send Chris XMLs to be pre-loaded to the test environment. –Assisted Chris with load test scripts.

During the test Monitored Oracle DB Monitored Application Servers, Monitored LoadRunner’s test results/graphs. Iterative performance tuning based on test results.

What we learned Database: –Added indexes upon Drew’s recommendation. Application: –Optimized application code to reduce excessive DB calls (SAK-10153) No memory leaks found.

Things we didn’t test in delivery Focused on Samigo’s Delivery only –Did not test Audio and File Upload questions due to limited time –Audio/File upload questions are heavily used at Stanford. Please let us know if you have questions.

Summary Performance test helps to identify bottlenecks under load. Establishes a baseline for future testing. –Identify performance improvement/degradation in future releases. Load test should be an integral part of release. Performance test report can be found at