0% found this document useful (0 votes)
187 views11 pages

Tuning SAP ASE On Linux

This document discusses Sybase Adaptive Server Enterprise (ASE) 12.5 running on Linux platforms. It highlights key features of ASE such as dynamic performance, security, and advanced data management. It also describes architectural enhancements in Linux like large file support, asynchronous I/O, and kernel improvements that optimize performance of ASE on Linux. The document concludes that the combination of ASE and Linux provides high-performance, low-cost solutions for mission critical databases and applications.

Uploaded by

petertej7
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
187 views11 pages

Tuning SAP ASE On Linux

This document discusses Sybase Adaptive Server Enterprise (ASE) 12.5 running on Linux platforms. It highlights key features of ASE such as dynamic performance, security, and advanced data management. It also describes architectural enhancements in Linux like large file support, asynchronous I/O, and kernel improvements that optimize performance of ASE on Linux. The document concludes that the combination of ASE and Linux provides high-performance, low-cost solutions for mission critical databases and applications.

Uploaded by

petertej7
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 11

Sybase Adaptive Server

Enterprise on Linux
A Technical White Paper

Information Anywhere
EXECUTIVE OVERVIEW

ARCHITECTURE OF ASE
Dynamic Performance
Security
Mission-Critical Computing
Advanced Data Management
Management Of External Non-Relational Content

ASE ON LINUX
Large File Support/64-bit File I/O
Asynchronous I/O

LINUX KERNEL PERFORMANCE ENHANCEMENTS


Kernel Asynchronous I/O
Eliminate Copy to Bounce Buffers
Reduce contention for io_request_lock
Improved Process Scheduler

PERFORMANCE TUNING OF ASE ON LINUX


Max Configurable Shared Memory
Max Chunking Size For Asynchronous I/O
Swap
Elvtune
TCP Tuning

CONCLUSION

Sybase Adaptive Server Enterprise 12.5 on Linux P- 2


EXECUTIVE OVERVIEW
The performance/technology enhancement coming about every 18 months on
Intel Processors and the commodity nature of the Intel platform coupled with the
maturity of Linux operating system has made available a very robust yet
inexpensive platform for business applications.

In the past 3 years, the Linux operating system has matured in availability,
reliability and manageability. It has evolved from merely hosting Web Servers,
File/Print Servers to running enterprise level business applications like database
engines, middleware and ISV applications. It continues to make strides in high
performance computing that is pioneering several cluster efforts on Linux. Major
distributors like Red Hat, SuSE, Red Flag, and United Linux are adding
enterprise-level features to their releases and support models by providing longer
release cycles, product roadmaps and enterprise-level testing.

In 1998, Sybase Adaptive Server Enterprise (ASE) 11.0.3.3 was the first
enterprise class database that was made available on Linux systems. Today,
Sybase has made Linux a core platform and is committed to continuing to support
Red Hat, United Linux and Red Flag into the future. In absolute alignment with
the Linux philosophy, Sybase ASE itself was designed from the ground up to be
easy to manage and to use hardware resources sparingly. Furthermore, ASE is
designed to support the demanding requirements of transaction-intensive,
mission-critical OLTP and decision support applications – the types of
applications that are rapidly moving to the Linux platform. ASE’s efficient query
optimization delivers unsurpassed levels of performance and scalability make
ASE the best enterprise-class database engine available on Linux.

The combination of Intel and Linux is driving down Total Cost of Ownership
(TCO) and is driving up Return On Investment (ROI). ASE is the best data
manager available to further lower the TCO and increase the ROI of business
applications on the Linux platform.

Sybase Adaptive Server Enterprise 12.5 on Linux P- 3


ARCHITECTURE OF ASE
ASE runs as an application on top of an operating system and depends solely on
the services exported by the operating system to function. ASE uses operating
system services for process creation and manipulation; device and file processing;
shared memory creation and manipulation; security requests such as interprocess
communication. The hardware upon which the operating system runs is com-
pletely transparent to ASE - ASE sees only the operating system’s user interfaces.
ASE uses its own thread package that provides the world-class performance.

Dynamic Performance
With its unique tuning capabilities, ASE can adjust its cache of index pages and
data, reduce I/O costs, provide user priorities, control resources at the CPU level,
or limit resources for a query or batch. Quick and easy adjustments allow DBAs
to reconfigure the system without rebooting.

Security
Row-level storage security, is an optional feature of ASE which allows the DBA
to specify which rows in a table can be accessed by each user. SSL protocol can
be used for integrity checking and encryption mechanisms to protect data from
unauthorized access. In conjunction with SSL, digital certificates can be used to
identify and authenticate servers, while clients can be authenticated using the
existing username/password mechanism.

Sybase Adaptive Server Enterprise 12.5 on Linux P- 4


Mission-Critical Computing
Sybase ASE continues to support mission-critical systems with many new
features including Expanded Row and Data Sizes, Compressed Backups,
Enhancements to the Component Integration Services (CIS), SQL Debugger,
Union in Views and Superior Management of Temporary Data.

Advanced Data Management


Sybase ASE is designed to optimize and extend the capabilities of the database
application developer by providing new tools for handling emerging e-Business
data types. For Advanced XML Information Management, ASE provides a
simple, flexible, and powerful XQL query engine to allow dynamic content
generation from XML document storage without requiring custom code to handle
XML documents. EJB components can optionally be deployed and run inside the
database engine, resulting in better performance because of reduced network
communication overhead.

Management Of External Non-Relational Content


Sybase ASE offers an option that provides an easy and cost-effective solution to
manage external content. Through proxy tables, all information in an Operating
System directory can be accessed. Using already familiar SQL commands,
information in Operating System files can be created, deleted, read or revised.

SYBASE ASE ON LINUX


AVAILABLE PLATFORMS
Linux Operating System provides a Unix-like Red Hat 6.2
programming interface. This allows for an Red Hat 7.2
easy port of Sybase ASE delivering • Large File Support
• Async I/O using Posix Real
performance, stability and reliability to the Time threads
Linux platform. Sybase ASE is designed to be Red Hat Enterprise Linux 2.1
compatible across platforms, so applications • Large File Support
developed for other operating systems can be • Async I/O using Kernel
moved to Linux with no conversion of the • Copy bounce buffer
code. enhancements
• Reduced contention on
io_request_lock
Red Hat has introduced several enhancements • Process Scheduler
to Enterprise Linux (formerly known as Enhancements
Advanced Server) 2.1. ASE 12.5.0.3 benefits • 2.7GB addressable memory
using mapped_base
from all of these features. All of the Red Hat
improvements are detailed in the “LINUX For more up-to-date platform
KERNEL PERFORMANCE ENHANCEMENTS” support and certification
section of this paper. information (including United
Linux, Red Flag and
Linux/Itanium), visit
www.sybase.com/linux/ase
Sybase Adaptive Server Enterprise 12.5 on Linux P- 5
Large File Support/64-bit File I/O

ASE 12.5.0.3 provides large file support (LFS) for both regular file system files
and raw devices. This removes the limitation of using only 2GB devices for data
or log. ASE 12.5.0.3 can support up to 8 Terabytes of data.

Asynchronous I/O

Asynchronous I/O allows a process to submit I/O request without waiting for the
completion. This allows Sybase ASE to submit asynchronous I/O request and
while the I/O request is processed Sybase ASE scheduler can pick up another
thread and schedule and run. By default, Sybase ASE 12.5.0.3 is shipped with
asynchronous I/O enabled. Sybase ASE 12.5.0.3 does transparent asynchronous
I/O depending on whether it is running on Red Hat 7.2 (Asynchronous I/O using
RT Posix threads) or Red Hat Advanced Server 2.1 (Kernel Asynchronous I/O).

To deliver higher performance, Sybase ASE uses buffer caches to cache database
pages instead of doing an actual physical I/O. ASE also tries to avoid
asynchronous I/O events outside of the critical path of a transaction. The general
optimization is to avoid I/O if possible; if it must be done, make the I/O
asynchronous and eliminate random I/O operations.

Sybase Adaptive Server Enterprise 12.5 on Linux P- 6


LINUX KERNEL PERFORMANCE ENHANCEMENTS
Red Hat has introduced several enhancements in their Advanced Server 2.1
release. ASE 12.5.0.3 benefit from all of these features. The following section
describes the enhancements features and how ASE takes advantage of this.

Kernel Asynchronous I/O


One of the main functions of a RDBMS kernel is to use local cached data instead
of doing an actual physical I/O. The goal is to also remove any possible
synchronous I/O events out of the critical path of a transaction. The general
optimization is to avoid I/O if possible; if it must be done, make the I/O
asynchronous and eliminate random I/O operations

Asynchronous I/O allows a process to submit I/O request without waiting for the
completion. This allows Sybase ASE to submit asynchronous I/O request and
while the I/O request is processed can pick up another thread and schedule and
run. Unlike Oracle Sybase ASE 12.5.0.3 is by default shipped with asynchronous
I/O enabled.

Eliminate Copy to Bounce Buffers

On IA32 systems, physical memory is classified as “low memory” (first 1GB of


physical memory) and “high memory” (remaining physical memory). While I/O
request from “low memory” was done directly (Direct Memory Access – DMA),
I/O requests from “high memory” uses a temporary buffer from the “low
memory” and copy data from/to the “high memory” buffer. This double copying
referred to as “bounce buffering” significantly degrade system performance. Red
Hat Advanced Server 2.1 greatly reduces and eliminates in some many cases the
use of “bounce buffers”.

Reduce Contention for io_request_lock

Each I/O device in the system has an associated request queue, which provides
ordering and memory resources for managing I/O re-quests to the device. In
earlier versions of the kernel, all I/O request queues are protected by a single
io_request_lock, which can be highly contended on SMP machines with
multiple disks and a heavy I/O load. This forced all processes performing I/O to
compete for this single resource even when performing I/O to unrelated devices,
creating an artificial bottleneck that resulted in reduced overall system I/O
throughput. Red Hat Linux Advanced Server 2.1 has implemented a new, fine-
grained locking scheme for the block device subsystem, which includes a separate

Sybase Adaptive Server Enterprise 12.5 on Linux P- 7


lock for each individual block device. The result is a much higher I/O throughput
for SMP systems with multiple I/O controllers under heavy database load.

Improved Process Scheduler


Red Hat Advanced Server 2.1 has multiple compute queues instead of single
compute queue that is available in the standard kernel. This eliminated spinlock
contention on the scheduler. Red Hat Advanced Server 2.1 also provides process
affinity to use the L1/L2 cache efficiently in the new generation processors.

The improved process scheduler as improved 400% over a 2-way system and
6000% over a 8-way system compared to standard Linux kernel.

PERFORMANCE TUNING OF ASE ON LINUX


Tuning is a natural extension to system software like Linux Operating System and
Sybase ASE. Tuning the Linux Operating System makes Sybase ASE run better
on Linux. The following section provides tuning info and tips.

Max Configurable Shared Memory

The default value for LINUX kernel parameter “kernel.shmmax” is too low for
Sybase ASE to start. Reconfigure this parameter to the size of “max memory” that
Sybase ASE will be configured with. Sybase ASE “max memory” can be
configured up to 2.7GB

Add the following command in /etc/rc.local

echo “<max shm in bytes>” > /proc/sys/kernel/shmmax

or

Add the following in /etc/sysctl.conf and run /sbin/sysctl –p


(as superuser)

kernel.shmmax = <max_memory in bytes>

Max Chunking Size For Asynchronous I/O

The “fs.aio-max-size” parameter specifies the maximum block size that one
single AIO write/read can do. Using the default value of 131072 (128K) will
chunk the AIO done by ASE for create, alter database command. Reconfigure this
value from 131072(128K) to 1048576(1MB). This can be done either of two
ways. Sybase recommendation is to use either one of them.

Sybase Adaptive Server Enterprise 12.5 on Linux P- 8


Add the following in /etc/rc.local

echo “1048576” > /proc/sys/fs/aio-max-size

or

Add the following in /etc/sysctl.conf and run /bin/sysctl –p


(as superuser)
fs.aio-max-size=1048576

2.7GB addressable memory (Red Hat AS 2.1 only)

Lowering the mapped base will allow ASE to address up to 2.7GB of memory (as
against 1.7GB of memory).

In RUN_SERVER file in $SYBASE/ASE-12_5/install directory insert the


following line before starting the server.

echo 268435456 > /proc/$$/mapped_base

Swap

We recommend that the minimum swap size be the size of physical memory
available in the box.

Elvtune

On systems that are consistently doing a large amount of disk I/O, tuning the disk
I/O elevators may be useful. This is a 2.4 kernel feature that allows some control
over latency vs throughput by changing the way disk I/O elevators operate.

This works by changing how long the I/O scheduler will let a request sit in the
queue before it has to be handled. Since the I/O scheduler can collapse some
request together, having a lot of items in the queue means more can be coalesced,
which can increase throughput. Changing the max latency on items in the queue
allows you to trade disk I/O latency for throughput, and vice versa.

The tool "/sbin/elvtune" (part of util-linux) allows you to change these max
latency values. Lower values means less latency, but also less throughput. The
values can be set for the read and write queues separately.

To determine what the current settings are, just issue:

Sybase Adaptive Server Enterprise 12.5 on Linux P- 9


/sbin/elvtune /dev/sda

Substituting the appropriate device of course. Default values are 8192 for read,
and 16384 for writes.

To set new values of 512 for read and 8192 for example:

/sbin/elvtune –r 512 –w 8192 /dev/sda

Note that these values are for example purposes only, and are not recommended tuning
values

The units of these values are basically "sectors of writes before reads are allowed". The
kernel attempts to do all reads, then all writes, etc in an attempt to prevent disk io mode
switching, which can be slow. So this allows you to alter how long it waits before
switching.

One way to get an idea of the effectiveness of these changes is to monitor the output of
`iostat -d -x DEVICE`. The "avgrq-sz" and "avgqu-sz" values (average size of request
and average queue length, see man page for iostat) should be affected by these elevator
changes. For example lowering the latency should cause the "avqrq-sz" to go down.

TCP Tuning
For servers that are serving up huge numbers of concurrent sessions, there are
some TCP options that should probably be enabled. In order to optimize TCP
performance for this situation, we recommend tuning the following parameters.

echo 1024 65000 > /proc/sys/net/ipv4/ip_local_port_range

or

Include the following in /etc/sysctl.conf and run /sbin/sysctl –p

net.ipv4.ip_local_port_range=1024 65000

Increasing the amount of memory associated with socket buffers can often
improve performance.

The following configuration will reduce the amount of work the TCP stack has to
do, so is often helpful in this situation.

echo 0 > /proc/sys/net/ipv4/tcp_sack


echo 0 > /proc/sys/net/ipv4/tcp_timestamps
echo 0 > /proc/sys/net/ipv4/tcp_window_scaling

Sybase Adaptive Server Enterprise 12.5 on Linux P- 10


or

Include the following in /etc/sysctl.conf and run /bin/sysctl –p

net.ipv4.tcp_sack=0
net.ipv4.tcp_timestamps=0
net.ipv4.tcp_window_scaling=0

CONCLUSION
The features provided by Red Hat Advanced Server, the stability provided by
major distributors (SuSE, Red Hat, Red Flag and United Linux) and major
application vendors’ support elevate Linux Operating System to enterprise class.

The tips and techniques provided here along with the features provided by Red
Hat Advanced Server will make Sybase ASE run better on your systems running
Linux Operating System.

Sybase Adaptive Server Enterprise 12.5 on Linux P- 11

You might also like