CIT 668: System Architecture. Performance Testing



Similar documents
CIT 470: Advanced Network and System Administration. Topics. Performance Monitoring. Performance Monitoring

Topics. CIT 470: Advanced Network and System Administration. Why Monitoring? Why Monitoring? Historical Monitoring Processes. Historical Monitoring

CIT 470: Advanced Network and System Administration. Topics. Why Monitoring? System Monitoring

Facultat d'informàtica de Barcelona Univ. Politècnica de Catalunya. Administració de Sistemes Operatius. System monitoring

20 Command Line Tools to Monitor Linux Performance

These sub-systems are all highly dependent on each other. Any one of them with high utilization can easily cause problems in the other.

Extreme Linux Performance Monitoring Part II

Removing Performance Bottlenecks in Databases with Red Hat Enterprise Linux and Violin Memory Flash Storage Arrays. Red Hat Performance Engineering

Windows Server Performance Monitoring

Performance monitoring. in the GNU/Linux environment. Linux is like a wigwam - no Windows, no Gates, Apache inside!

Linux Tools for Monitoring and Performance. Khalid Baheyeldin November 2009 KWLUG

Optimizing Linux Performance

Web Application s Performance Testing

Release February 2005

Best Practices for Deploying & Tuning Oracle Database 12c on RHEL6

PERFORMANCE TUNING ORACLE RAC ON LINUX

Storage benchmarking cookbook

Performance Testing Percy Pari Salas

MEASURING WORKLOAD PERFORMANCE IS THE INFRASTRUCTURE A PROBLEM?

Application Performance Testing Basics

About Forum Howtos & FAQs Low graphics Shell Scripts RSS/Feed. nixcraft - insight into linux admin work Home > CentOS. by Vivek Gite 134 comments

Performance Testing of a Large Wealth Management Product

Performance Tuning and Optimization for high traffic Drupal sites. Khalid Baheyeldin Drupal Camp, Toronto May 11 12, 2007

Audit & Tune Deliverables

Agenda. Enterprise Application Performance Factors. Current form of Enterprise Applications. Factors to Application Performance.

Why Nagios and Server Monitoring Are Failing Modern Apps

Deploying F5 BIG-IP Virtual Editions in a Hyper-Converged Infrastructure

OS Thread Monitoring for DB2 Server

Deploying and Optimizing SQL Server for Virtual Machines

IBM Tivoli Monitoring Version 6.3 Fix Pack 2. Infrastructure Management Dashboards for Servers Reference

How to analyse your system to optimise performance and throughput in IIBv9

PARALLELS CLOUD SERVER

System performance monitoring in RTMT

SAS Application Performance Monitoring for UNIX

Davor Guttierrez 3 Gen d.o.o. Optimizing Linux Servers

Drupal Performance Tuning

System Resources. To keep your system in optimum shape, you need to be CHAPTER 16. System-Monitoring Tools IN THIS CHAPTER. Console-Based Monitoring

Performance Testing. Slow data transfer rate may be inherent in hardware but can also result from software-related problems, such as:

Stingray Traffic Manager Sizing Guide

Monitoring MySQL. Presented by, MySQL & O Reilly Media, Inc. A quick overview of available tools

Performance Evaluation of VMXNET3 Virtual Network Device VMware vsphere 4 build

White Paper. Recording Server Virtualization

Benchmark Performance Test Results for Magento Enterprise Edition

Dell Reference Configuration for Hortonworks Data Platform

Storage Performance Testing

Benchmarking FreeBSD. Ivan Voras

Running a Workflow on a PowerCenter Grid

Perforce with Network Appliance Storage

Vendor and Hardware Platform: Fujitsu BX924 S2 Virtualization Platform: VMware ESX 4.0 Update 2 (build )

Advanced Linux System Administration on Red Hat

A Deduplication File System & Course Review

Chapter 7: Distributed Systems: Warehouse-Scale Computing. Fall 2011 Jussi Kangasharju

Introduction 1 Performance on Hosted Server 1. Benchmarks 2. System Requirements 7 Load Balancing 7

Pump Up Your Network Server Performance with HP- UX

Capacity planning for IBM Power Systems using LPAR2RRD.

Managing your Domino Clusters

Microsoft Exchange Server 2003 Deployment Considerations

Determining the Correct Usage of Swap in Linux * 2.6 Kernels

Increasing XenServer s VM density

Web Application Testing. Web Performance Testing

Delivering Quality in Software Performance and Scalability Testing

CS 377: Operating Systems. Outline. A review of what you ve learned, and how it applies to a real operating system. Lecture 25 - Linux Case Study

Lecture 36: Chapter 6

Recommendations for Performance Benchmarking

Monitoring MySQL. Kristian Köhntopp

DSS. Diskpool and cloud storage benchmarks used in IT-DSS. Data & Storage Services. Geoffray ADDE

GraySort on Apache Spark by Databricks

CIT 470: Advanced Network and System Administration. Topics. Change Management. Change and Configuration Management

VIRTUALIZATION AND CPU WAIT TIMES IN A LINUX GUEST ENVIRONMENT

Performance Testing. Why is important? An introduction. Why is important? Delivering Excellence in Software Engineering

Perfmon counters for Enterprise MOSS

Performance Testing Process

Operating System and Process Monitoring Tools

VMware vsphere 5.1 Advanced Administration

An On-line Backup Function for a Clustered NAS System (X-NAS)

Performance Tuning best pracitces and performance monitoring with Zabbix

DB2 Database Layout and Configuration for SAP NetWeaver based Systems

Optimizing Shared Resource Contention in HPC Clusters

Network Attached Storage. Jinfeng Yang Oct/19/2015

How To Test For Elulla

WEB SERVER MONITORING SORIN POPA

An Oracle White Paper July Oracle Primavera Contract Management, Business Intelligence Publisher Edition-Sizing Guide

Choosing Storage Systems

Agenda. Capacity Planning practical view CPU Capacity Planning LPAR2RRD LPAR2RRD. Discussion. Premium features Future

Network monitoring systems & tools

Accelerating Server Storage Performance on Lenovo ThinkServer

The Self-Tuning Memory Manager (STMM): A Technical White Paper. Authors: Christian Garcia-Arellano Adam Storm Colin Taylor

VMware vsphere 5.0 Boot Camp

How To Model A System

Virtuoso and Database Scalability

Hardware Performance Optimization and Tuning. Presenter: Tom Arakelian Assistant: Guy Ingalls

General Pipeline System Setup Information

INUVIKA TECHNICAL GUIDE

Release February 2005

Basic Tuning Tools Monitoring tools overview Enterprise Manager V$ Views, Statistics and Metrics Wait Events

The IntelliMagic White Paper: Storage Performance Analysis for an IBM Storwize V7000

Transcription:

CIT 668: System Architecture Performance Testing

Topics 1. What is performance testing? 2. Performance-testing activities 3. UNIX monitoring tools

What is performance testing? Performance testing is a type of testing intended to determine the responsiveness, throughput, reliability, and/or scalability of a system under a given workload. - http://perftestingguide.codeplex.com/ Performance testing goals: Assess production readiness Evaluate against performance criteria Compare performance characteristics of multiple systems or system configurations Find the source of performance problems Support system tuning Find throughput levels

Performance Testing Activities http://perftestingguide.codeplex.com/

Testing Types Performance testing: determining performance, scalability, or stability characteristics of system; a superset of the other testing types. Load testing: determining performance characteristics of system when subjected to work load expected during production. Stress testing: determining performance characteristics of system when subjected to work loads beyond those expected during production to determine under what conditions system will fail.

Baselines A baseline is a set of data used for comparison. In performance testing, baselines are used to evaluate the effectiveness of subsequent performance-improving changes to the system. Once the system has been changed, a new baseline must be measured.

Benchmarking Benchmarking is the process of measuring system performance using standard tests and comparing it against a well known system. SPEC CPU2006 (SPECint, SPECfp) SPEC power2008 (power usage) SPEC sfs2008 (NFS, CIFS) SPEC virt2010 (virtualization) SPEC web2005 (PHP or JSP) BogoMips Dhrystone Whetstone Weighted TeraFLOPS NAS Parallel Benchmarks

Experimenter Effect Monitoring the system affects performance. Monitoring tools use system resources. If you ve consistently monitored system, then monitoring won t alter system performance.

Identify Bottlenecks Identify which aspect of performance Latency: delay until initial access. Throughput: rate of transfer/processing. Identify which system component CPU Memory Disk Network

Performance Problem Solutions 1. Get more of needed resource. Ex: Upgrade processor, use striped disk array. 2. Reduce system requirements. Ex: Kill processes, move services to other hosts. 3. Eliminate inefficiency and waste. Ex: Produce a static home page every 15 minutes instead of regenerating each access. 4. Ration resource usage. Ex: Set process priorities with renice. Ex: Limit process resource usage with limit.

Performance Testing Services Gomez Keynote Pingdom SiteUptime Alertra

Performance Testing Activities

Activities Activity Input Output Identify test environment Production system architecture Test system architecture Available tools Comparison of test and production environments Environment concerns Are other tools needed? ID acceptance criteria Client expectations Success criteria Plan and design tests Risks to be mitigated Available system features and components Use cases Configure test environment Tools Success criteria Tests Performance goals and requirements Test data to implement tests Use models to be simulated Resources required Configured load generation and resource monitoring tools Environment ready for tests

Activities Activity Input Output Implement test design Configured tools Validated, executable tests Prepared environment Available tools Validated resource monitoring Execute tests Test execution plan Test results Analyze Results, Report, and Retest Configured tools Executable tests Test results Acceptance criteria Risks, concerns, and issues Validated data collection Results analysis Recommendations Reports

Web Load Tools ab (Apache Bench) httperf autobench (httperf multihost wrapper) JMeter openload SIEGE

Metric Collection and Notification Tools Ganglia Cacti Nagios Zabbix Hyperic HQ Munin ZenOSS OpenNMS GroundWork Monit

UNIX Monitoring Tools

uptime Monitoring Processes Provides aggregate data about system load. ps Shows running processes with CPU, mem usage. top Updated list of running processes + summaries. vmstat Summary data about processes and CPU usage.

Uptime Uptime provides the following data How long system has been running. Number of users logged in. Average number of runnable processes. In last 1, 5, 15 minutes. Want a load average under 3. Uptime example > uptime 17:40 up 126 days, 8:03, 6 users, load average: 1.40, 1.03, 0.55

vmstat Number of Runnable and Blocked processes. Memory (virtual, free, buffered, cached) Blocks/second transferred in (bi) and out (bo) Interrupts/sec (in) and context switches/sec (cs) CPU usage by user, system, idle, and waiting. > vmstat 5 4 procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 0 0 395716 45176 211284 88480 0 0 1 2 1 2 9 3 88 0 0 0 395716 45168 211300 88480 0 0 0 50 1035 1677 0 0 100 0 0 0 395716 45168 211300 88480 0 0 0 0 1040 1670 0 0 99 0 0 0 395716 45168 211300 88480 0 0 0 0 1033 1660 0 0 100 0

Identifying CPU Shortages 1. Short-term CPU spikes are normal. 2. Consistently high number of runnable processes (r) in vmstat. 3. Consistent high total CPU usage (sy+us). 4. High system time compared to user time and high context switches indicates system is thrashing between processes instead of doing user work.

Nice values Changing Process Priorities Positive values lower priorities. Negative values increase priorities. If you know a process will be a CPU hog, nice +5 command_name If you detect a CPU hog after it s started, renice 5 PID

Managing Processes with kill TERM (default) Terminates process execution (Ctrl-c). Processes can catch or ignore signal. KILL (9) STOP Terminates process execution. Processes cannot catch or ignore. Processes waiting on I/O will not die. Suspends process execution until SIGCONT (Ctrl-z). Useful for moving CPU hog out of way temporarily.

Imposing Limits on Processes CPU time Maximum file size Maximum data segment Maximum stack size Maximum physical mem Maximum core size Maximum number procs Maximum virtual mem ulimit t secs ulimit f KB ulimit d KB ulimit s KB ulimit m KB ulimit c KB ulimit u n ulimit v KB

Monitoring Memory Use free to see how memory is used. System will use most free memory for caching. System will swap out inactive processes. Don t worry until free < 5% of total memory. Use vmstat to detect paging activity. Page out (so) rate greater than 0 consistently. High page in (si) rate, as system uses the paging facility to load programs into memory.

Managing Memory 1. Improving paging capacity. Add new swapfiles with swapon. Add new swap partitions. 2. Improving paging performance. Use swap partitions instead of swap files. Distribute swap resources across disks. 3. Migrate memory hogs to another host. 4. Add more memory.

Monitoring Disk I/O Use iostat to get per disk statistics. Transactions per second (tps). Blocks read/written per second. Managing disk performance problems. Distribute heavily used data across disks/ctrlers. Get more or faster disks. Use RAID or LVM striping.

iostat > iostat 2 Linux 2.6.15-23-386 (zim) 03/26/2007 avg-cpu: %user %nice %system %iowait %steal %idle 8.55 0.18 3.22 0.09 0.00 87.96 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn hde 0.69 8.18 9.43 89783416 103565744 hdh 0.15 1.33 3.37 14590831 36969599 hdc 0.00 0.00 0.00 9548 0 avg-cpu: %user %nice %system %iowait %steal %idle 0.17 0.00 0.17 0.00 0.00 99.67 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn hde 0.33 0.00 21.33 0 128 hdh 0.00 0.00 0.00 0 0 hdc 0.00 0.00 0.00 0 0

Managing Disk Capacity Detecting disk resource usage. List all partition usage with df h Identify high usage directories with du Summary data: du s Highest usage directories: du -k / sort rn Use find to detect disk hogs. Use find size to search for big files. Use atime +X to identify files that haven t been used in X days.

Managing Disk Shortages 1. Add more disks. 2. Move files to remote fileservers. 3. Eliminate unnecessary files. 4. Compress large infrequently used files. 5. Impose disk quotas on users. Soft limit: can be violated temporarily. Hard limit: cannot be violated.

Monitoring Network Connections List listening network ports lsof -i List firewall rules (which ports are accessible) iptables -L List network connections and listening ports netstat -anp

IPTraf CIT 470: Advanced Network and System Administration Slide #32

Managing Network Capacity 1. Move applications onto separate servers. 2. Add more NICs and bond them. 3. Upgrade from 1Gbps to 10Gbps Ethernet if supported by server hardware.

Key Points Performance testing terms Load testing and stress testing Latency and throughput Baselines and benchmarks Performance testing activities 1. Identify test environment 2. Identify performance criteria 3. Plan and design tests 4. Configure test environment 5. Implement test design 6. Execute tests 7. Analyze results, report, and retest

References 1. Mark Burgess, Principles of System and Network Administration, Wiley, 2000. 2. Aeleen Frisch, Essential System Administration, 3 rd edition, O Reilly, 2002. 3. Mike Loukides and Gian-Paolo D. Musumeci, System Performance Tuning, 2 nd edition, O Reilly, 2003. 4. Evi Nemeth et al, UNIX System Administration Handbook, 3 rd edition, Prentice Hall, 2001. 5. patterns & practices, Performance Testing Guidance for Web Applications, http://perftestingguide.codeplex.com/