SAP HANA SPS09 - SAP HANA Workload Management
-
Author
sap-technology -
Category
Technology
-
view
653 -
download
9
Embed Size (px)
description
Transcript of SAP HANA SPS09 - SAP HANA Workload Management

1 © 2014 SAP AG or an SAP affiliate company. All rights reserved.
SAP HANA SPS 09 - What’s New? SAP HANA Workload Management
SAP HANA Product Management November, 2014
(Delta from SPS 08 to SPS 09)

© 2014 SAP SE or an SAP affiliate company. All rights reserved. 2 Public
Disclaimer
This presentation outlines our general product direction and should not be relied on in making
a purchase decision. This presentation is not subject to your license agreement or any other
agreement with SAP.
SAP has no obligation to pursue any course of business outlined in this presentation or to
develop or release any functionality mentioned in this presentation. This presentation and
SAP’s strategy and possible future developments are subject to change and may be changed
by SAP at any time for any reason without notice.
This document is provided without a warranty of any kind, either express or implied, including
but not limited to, the implied warranties of merchantability, fitness for a particular purpose, or
non-infringement. SAP assumes no responsibility for errors or omissions in this document,
except if such damages were caused by SAP intentionally or grossly negligent.

© 2014 SAP SE or an SAP affiliate company. All rights reserved. 3 Public
HANA Workload Management – What’s New in SPS09?
Initial Scope (single-server)
• Avoid over-commitments of CPUs
• Avoid uncontrolled memory consumption
• Avoid db-restart, when HANA is not responsive at all
Extended Scope (single-server)
• Resource budgeting (CPU, Memory)
• Execution priority for SQL Statements

© 2014 SAP SE or an SAP affiliate company. All rights reserved. 4 Public
Understanding HANA resource pooling (CPU)
HANA Indexserver
Session-Layer Job Executor
“delegate” Job
Worker
Threads
Minor other threads
DSO Activation
…
simple
statement
Complex statement
(OLAP)
Simple statement
(OLTP)
SQL
Executor
Thread
Pool
Thread
Pool
complex
statement
see also: Session “DMM112 – HANA scalability”
Major Thread-Pools
SqlExecutor
Handle incoming client requests
Execute simple (OLTP-like) statements
JobExecutor
Executes complex statements as
parallelized jobs
Assigns Jobs to available threads
Other threads
In progress: Integration into JobExecutor

© 2014 SAP SE or an SAP affiliate company. All rights reserved. 5 Public
Controlling HANA parallelism
indexserver.ini
• SqlExecutor: sql_executors = <min #threads that can be used> (default: # of available threads)
• SqlExecutor: max_sql_executors = <max #threads that can be used> (default: 0 <unlimited>)
• JobExecutor: max_concurrency = <max #threads that can be used> (default: # of available threads)
Important remarks
• JobExecutor settings do not solely affect OLAP workload, but also other HANA subsystems (e.g. memory garbage collection, savepoint writes)
• JobExecutor executes also DBMS operations (e.g. table updates, backups), which were delegated by the SqlExecutor
• JobExecutor settings are soft-limits, i.e. the JobExecutor can “loan” threads, if available, and falls back to the max# when done

© 2014 SAP SE or an SAP affiliate company. All rights reserved. 6 Public
Controlling HANA memory consumption
global.ini
• global_allocation_limit =
• <max amount of physical memory that can be used by the db (default: 90% of physical memory)
• statement_memory_limit =
• <max amount of memory that can be used by a single statement> (default: 0 <unlimited>)
• statement_memory_limit_threshold =
• <apply the statement_memory_limit, if the current HANA memory consumption exceeds “statement_memory_limit_threshold %” of the global_allocation_limit>
(default: 0%, i.e. statement_memory_limit is always applied)
Assign statement_memory_limit to a db-user
• ALTER USER <username> SET PARAMETER STATEMENT MEMORY LIMIT = <gb>

© 2014 SAP SE or an SAP affiliate company. All rights reserved. 7 Public
Avoid db-restart, when HANA is not responsive
Emergency Support Mode
• Used by the administrator when the HANA db cannot be
reached by SQL due to high load or blocking situations
• HANA studio provides a separate connection to the SAP
start service (sapstartsrv)
• Collect information about connections, blocked
transactions, and threads in the system
• Administrator can cancel individual connections and
transactions, or even cancel all transactions
HANA
sapstartsrv
python
Indexserver
hdbcons

© 2014 SAP SE or an SAP affiliate company. All rights reserved. 8 Public
Extended Scope: Resource budgeting (CPU, Memory)
Memory budgeting
global.ini
• global_allocation_limit =
• <max amount of physical memory that can be used by the db> (default: 90% of physical memory)
CPU budgeting
daemon.ini
• section [indexserver], [nameserver], [xsengine], [preprocessor], [compileserver]
• affinity = <core-ids of logical cores in the server>

© 2014 SAP SE or an SAP affiliate company. All rights reserved. 9 Public
CPU budgeting and CPU binding – Details
Evaluate the topology of sockets and cores in the server
(use sysfs to collect linux kernel information)
set affinity parameter in daemon.ini per HANA process
(e.g. [indexserver] -> affinity = c0-c7)
(re-)start HANA db
Remarks
• Affinity parameter assigns logical cores (threads) to
HANA processes
• It allows to budget CPU resources to HANA
• It allows to bind HANA processes to cores on the same
socket (NUMA)
• The affinity parameter is not set per default, i.e. all HANA
processes use all logical cores
• Recommendation:
Minimal number of logical cores per process = number of
logical cores of one CPU
• Resource binding and NUMA-aware job execution are
continuous development efforts

© 2014 SAP SE or an SAP affiliate company. All rights reserved. 10 Public
Extended Scope: Execution priority for SQL statements
HANA-internal priority for mixed OLAP/OLTP workload
• HANA tries to detect “short-running” OLTP statements to give them a higher internal priority than long-running OLAP statements
• It allows HANA to execute OLTP statements “between” OLAP statements and thereby remain responsive in a mixed workload environment
User-level priority
• user-level priority for all statements in the current connection
• priority is between 0…9, default is 5
• Syntax:
• ALTER USER SYSTEM SET PARAMETER PRIORITY = '9'; -> set to highest priority
• SELECT PRIORITY FROM M_CONNECTIONS WHERE CONNECTION_ID = CURRENT_CONNECTION; -> get priority for current connection

© 2014 SAP SE or an SAP affiliate company. All rights reserved. 11 Public
How to find SAP HANA documentation on this topic?
• In addition to this learning material, you can find SAP HANA
platform documentation on SAP Help Portal knowledge center at
http://help.sap.com/hana_platform.
• The knowledge centers are structured according to the product
lifecycle: installation, security, administration, development:
SAP HANA Options
SAP HANA Advanced Data Processing
SAP HANA Dynamic Tiering
SAP HANA Enterprise Information Management
SAP HANA Predictive
SAP HANA Real-Time Replication
SAP HANA Smart Data Streaming
SAP HANA Spatial
• Documentation sets for SAP HANA options can be found at
http://help.sap.com/hana_options:
SAP HANA Platform SPS
What’s New – Release Notes
Installation
Administration
Development
References
•

© 2014 SAP SE or an SAP affiliate company. All rights reserved.
Thank you Contact information
Ruediger Karl
SAP HANA Product Management
Ron Silberstein
SAP HANA Product Management

© 2014 SAP SE or an SAP affiliate company. All rights reserved. 13 Public
© 2014 SAP SE or an SAP affiliate company. All rights reserved.
No part of this publication may be reproduced or transmitted in any form or for any purpose without the express permission of SAP SE or an SAP affiliate company.
SAP and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP SE (or an SAP affiliate
company) in Germany and other countries. Please see http://global12.sap.com/corporate-en/legal/copyright/index.epx for additional trademark information and notices.
Some software products marketed by SAP SE and its distributors contain proprietary software components of other software vendors.
National product specifications may vary.
These materials are provided by SAP SE or an SAP affiliate company for informational purposes only, without representation or warranty of any kind, and SAP SE or its
affiliated companies shall not be liable for errors or omissions with respect to the materials. The only warranties for SAP SE or SAP affiliate company products and services
are those that are set forth in the express warranty statements accompanying such products and services, if any. Nothing herein should be construed as constituting an
additional warranty.
In particular, SAP SE or its affiliated companies have no obligation to pursue any course of business outlined in this document or any related presentation, or to develop or
release any functionality mentioned therein. This document, or any related presentation, and SAP SE’s or its affiliated companies’ strategy and possible future
developments, products, and/or platform directions and functionality are all subject to change and may be changed by SAP SE or its affiliated companies at any time for
any reason without notice. The information in this document is not a commitment, promise, or legal obligation to deliver any material, code, or functionality. All forward-
looking statements are subject to various risks and uncertainties that could cause actual results to differ materially from expectations. Readers are cautioned not to place
undue reliance on these forward-looking statements, which speak only as of their dates, and they should not be relied upon in making purchasing decisions.