290 likes | 394 Views
Managing Processes and Workloads. Version B.02 H4262S Module 7 Slides. Module Objectives: Process Resource Manager. At the end of this module you will be able to: Describe the Process Resource Manager solution. List the key features and benefits of PRM. List the resources managed by PRM.
E N D
Managing Processes and Workloads Version B.02 H4262S Module 7 Slides
Module Objectives: Process Resource Manager At the end of this module you will be able to: • Describe the Process Resource Manager solution. • List the key features and benefits of PRM. • List the resources managed by PRM. • Explain what an application group is. • List the PRM operations which can be controlled under the gpm graphical user interface. • Describe the algorithm under which PRM manages CPU resources. • Tell how PRM memory management differs in HP-UX 11i from earlier implementations. • Describe how PRM manages I/O bandwidth.
Module Objectives: Workload Manager At the end of this module you will be able to: • Describe HP-UX Workload Manager. • Define what is meant by “service level objective.” • Describe how WLM works. • Explain how data collectors work. • Describe the operation of WLM’s Event Monitoring Service.
And They’re off ! The HP Process Resource Manager Group 1 Group 1 Other Resource usage doesn’t have to be a “horse race” ! PRM allows the system administrator to group processes and specify the level of importance (and resource allocation limits) of each group. Process Resource Manager is an optional HP-UX performance management product.
CPU Memory Disk I/O Resources Managed Process/Thread scheduler Memory paging Disk read/write requests
Others (31%) Others (31%) Others (31%) Oracle App 1 (31%) Oracle App 1 (31%) Oracle App 1 (31%) System (7%) System (7%) System (7%) Oracle App 2 (31%) Oracle App 2 (31%) Oracle App 2 (31%) (% Desired) Oracle App 1 Oracle App 2 CPU Util: 70% Mem Util: 56% Disk Util: 50% CPU Util: 80% Mem Util: 74% Disk Util: 70% Resource Allocations without PRM CPU Allocation Memory Allocation Disk I/O Allocation
(% Desired) Oracle App 1 Oracle App 2 CPU Util: 70% Mem Util: 56% Disk Util: 50% CPU Util: 80% Mem Util: 74% Disk Util: 70% Resource Allocations with PRM CPU Allocation Memory Allocation Oracle App 1 (50%) Oracle App 1 (50%) System (5%) Others (20%) System (10%) Others (20%) Oracle App 2 (25%) Oracle App 2 (20%) Oracle App 1 (45%) System (5%) Others (20%) Oracle App 2 (30%) Disk I/O Allocation
Viewing PRM CPU Allocations with gpm CPU Allocationwith PRM Disabled CPU Allocationwith PRM Enabled
PRM — Application Groups • All PRM actions are based on processes belonging to an application group. • Processes are initially assigned to the PRM group of the user that invoked them. • A process may be moved to another group by the “Application Manager” if it matches the application definition criteria (executable name, executable pathname).
The “Carousel” Paradigm PRM groups are represented by different color horses on a resource carousel.The number of horses of each color depends on that groups entitlement. The kernel references the carousel when making scheduling decisions.
PRM — Commands • xprm • prmanalyze • prmavail • prmconfig • prmlist • prmloadconf • prmmonitor • prmmove • prmrecover • prmrun
# PRM Group/CPU records PRM_SYS:0:20:: ORACLE1:1:50:: ORACLE2:2:20:: OTHERS:3:10:: # Application records /ora1/bin/oracle::::ORACLE1,ora*oracle1 /ora2/bin/oracle::::ORACLE2,ora*oracle2 Starting the Process Resource Manager Create your prmconf file As root enter # prmconfig -ek Monitor your system behavior using prmmonitor and glance/gpm (if available)
Setting Up PRM Groups /etc/prmconf ... OTHERS:1:20:: ORACLE1:2:60:: ORACLE2:3:20:: ... xprm GUI Interface
Setting Up PRM Applications /etc/prmconf ... # Application records # /ora1/bin/oracle::::ORACLE1,ora*oracle1 /ora2/bin/oracle::::ORACLE2,ora*oracle2 ... xprm GUI Interface
How Application Processes Are Assigned to PRM Groups at Start-Up • By the user • By at • By cron • Upon login • By prmrun • By prmmove • By another process
Identifying Processes to Manage oracle 4129 1 0 04:19:19 ? 0:00 ora_pmon_oracle1 oracle 4131 1 0 04:19:19 ? 0:00 ora_dbw0_oracle1 oracle 4138 1 0 04:19:20 ? 0:00 ora_lgwr_oracle1 oracle 4140 1 0 04:19:20 ? 0:01 ora_ckpt_oracle1 oracle 4142 1 0 04:19:20 ? 0:00 ora_smon_oracle1 oracle 4144 1 0 04:19:20 ? 0:00 ora_reco_oracle1 oracle 4047 1 0 04:17:34 ? 0:00 ora_pmon_oracle2 oracle 4049 1 0 04:17:34 ? 0:00 ora_dbw0_oracle2 oracle 4056 1 0 04:17:34 ? 0:00 ora_lgwr_oracle2 oracle 4058 1 0 04:17:34 ? 0:01 ora_ckpt_oracle2 oracle 4060 1 0 04:17:35 ? 0:00 ora_smon_oracle2 oracle 4062 1 0 04:17:35 ? 0:00 ora_reco_oracle2 user4 6247 6244 0 04:41:52 ? 0:00 oracleoracle1 user2 6158 6155 0 04:38:16 ? 0:00 oracleoracle2 user3 6260 6257 0 04:42:44 ? 0:00 oracleoracle2 user1 6279 6276 0 04:43:25 ? 0:00 oracleoracle1 oracle 4078 1 0 04:41:52 ? 0:00 tnslsnr LISTENER_oracle1 oracle 4159 1 0 04:38:16 ? 0:00 tnslsnr LISTENER_oracle2
Moving Processes to Different PRM Groups # ps -efP UID PRMID PID PPID C STIME TTY TIME COMMAND oracle OTHERS 4078 1 0 04:41:52 ? 0:00 tnslsnr LISTENER_oracle1 oracle OTHERS 4159 1 0 04:38:16 ? 0:00 tnslsnr LISTENER_oracle2 # prmmove ORACLE1 -p 4078 # prmmove ORACLE2 -p 4159 # ps -efP UID PRMID PID PPID C STIME TTY TIME COMMAND oracle ORACLE1 4078 1 0 04:41:52 ? 0:00 tnslsnr LISTENER_oracle1 oracle ORACLE2 4159 1 0 04:38:16 ? 0:00 tnslsnr LISTENER_oracle2
Ponderables • Are all of a user’s processes of equal importance? • Are a process’ resource needs sporadic or fairly constant throughout the course of the day? • Could PRM be used to monitor resource usage? • What happens when a parent process spawns children? • Does a process always run under the same process name? • How does PRM interact with real-time schedulers? • What about multiple-processor environments? • How do processes that request memory locking affect PRM actions?
What Is HP-UX Workload Manager? • System management: availability of the system. • Is good system availability enough? • Workload management: availability of applications at a specified level of performance. – IT service management – service-level agreements – service-level objectives
What WLM Does • Extends the ability of PRM • CAUTION: WLM controls PRM to deliver the required service levels. Do not modify PRM directly on a system that uses WLM! • Defines workload groups • Users and Applications are registered as with PRM • Defines Service Level Objectives (SLOs) • Entitlement based vs Goal based SLOs • Collects data on system operation • Metrics are defined in SLO • Redistributes resources
How Workload EntitlementsAre Determined • CPU - Initial controller requests are between min and max CPU - Subsequent dynamic controller requests are based on performance needs measured against actual metrics. - Data collection interface is required for goal based SLOs • Real memory is set in configuration file. Not dynamic. • Not recommended for groups with goal based SLOs • Disk bandwidth is set in the configuration file. Not dynamic. • Needs LVM. Not possible on discs with swap partitions.
How WLM Works wlmd 1. Sets initial PRM resource entitlements 2. Accepts metric data from data collectors 3. Compares metric data to user-specified goals for each SLO 4. Sets new entitlement requests for each SLO so that performance is closer to goal 5. Arbitrates between SLO entitlement requests when resources are insufficient to satisfy all 6. Implements new CPU entitlements 7. Repeats 2 through 6
WLM configuration file WLM EMS monitor Data collector 3 Data collector 1 Data collector 2 EMS EMS monitor WLM daemon (wlmd) App1 App2 App3 Arbiter Controller Controller Controller PRM control WLM Components SLOs defined here SLO stats
Migrating from PRM to WLM • The wlmprmconf utility • Takes a valid PRM configuration file and translates it to the equivalent WLM configuration. • Warning PRM warnings become WLM errors! • “distribute_excess” may be required to remove CPU cap. • The resulting text file can be edited to: • add SLO goals • change priorities • add time-based conditions and exceptions • modify WLM tuning parameters
Supplying Data to WLM • Data-centric approach • ARM-instrumented applications • Glance Plus resources • source code modification • Transport-centric approach • command line • shell script • perl programs • stdout • WLM API
WLM Data Collectors • Data collectors report workload performance to WLM • Directly using the WLM API • Indirectly using wlmrcvdc and a “rendezvous point” • The source of performance information depends on the application. – Application Response Measurement (ARM) library. – Monitor Processes • Use C or Perl to utilize the WLM APIs directly. • Use Shell scripts to send data via the wlmsend command. • Reported metrics are compared to goals.
Monitoring wlmd • Turn on WLM Logging • wlmd –a configfile –l slo,metric • Provides logging of SLO compliance and all all metric values • Logfile is /var/opt/wlm/wlmdstats
WLM EMS Monitor • WLM has an EMS monitor to track performance. • EMS monitor available for WLM System • EMS monitors available for each SLO • This data is available to standard EMS clients including SAM and IT/O.
Review of the Module In this module you looked at: • Process Resource Manager • Resource allocation • Application groups • Carousel algorithm • gpm GUI • Workload Manager • Workload entitlements • WLM components and operation • Migrating from PRM to WLM • Supplying data • Monitoring SLO compliance