Categories
Technology

Performance Tuning a U2 Database

Part 1 : Introduction

In a time in the global economy where we need to do more with less resources, getting the most out of your computing environment is paramount. In a different time when computing resources were starting to diminish and degradation set in, the obvious thing to do was to throw more hardware at the environment. This could be painfully expensive. Today, the approach is very different because IT management is looking at performance tuning exercises versus buying hardware to maximize their existing computing resources. In this blog, we will begin by covering the history of UNIX and then dive into each area of the computing resources (CPU, Memory and Storage) and drill down on how performance exercises can be applied to pinpoint areas of your system that may be the bottlenecks involved in your systems poor performance.

History Of UNIX:

In the 1960s at AT&T’s Bell Labs research center, Ken Thompson and Dennis Ritchie were working on a “new” Operating System called: Multics (Multiplexed Information and Computer Services). It was a big complex system. It could grow in size by simply adding more resources, such as computing power, main memory, or disk storage. Although it was very complex, some basic concepts were useful, like the concept of a shell, processes, and a hierarchical file system structure. In 1969 Multics project ended, but the developers decided to continue privately. They implemented the good parts from Multics with a different design philosophy, focusing on keeping the system small and simple. Then came the name of Unix (originally Unics) as the opposite of Multics, which was: “overdesigned and overbuilt and over everything. It was close to unusable” said Ken Thompson.

In the 1970s Unix started to be popular in Universities. It was not possible to buy the Unix operating system (as an installation package), which could be run on any computer. If somebody wanted to use it, the source code had to be modified to the actual hardware. With this approach during the years different flavors of Unix systems started to emerge, such as AIX, DG/UX, HP/UX, Solaris and many others.

Categories
Technology

Performance Tuning a U2 Database – CPU

Part 2 : CPU

A central processing unit (CPU), also called a central processor or main processor, is the electronic circuitry within a computer that executes instructions that make up a computer program. The CPU performs basic arithmetic, logic, controlling, and input/output (I/O) operations specified by the instructions in the program. The computer industry used the term “central processing unit” as early as 1955. Traditionally, the term “CPU” refers to a processor, more specifically to its processing unit and control unit (CU), distinguishing these core elements of a computer from external components such as main memory and I/O circuitry.

A central processing unit (CPU), also called a central processor or main processor, is the electronic circuitry within a computer that executes instructions that make up a computer program. The CPU performs basic arithmetic, logic, controlling, and input/output (I/O) operations specified by the instructions in the program. The computer industry used the term “central processing unit” as early as 1955. Traditionally, the term “CPU” refers to a processor, more specifically to its processing unit and control unit (CU), distinguishing these core elements of a computer from external components such as main memory and I/O circuitry.

The form, design, and implementation of CPUs have changed over the course of their history, but their fundamental operation remains almost unchanged. Principal components of a CPU include the arithmetic logic unit (ALU) that performs arithmetic and logic operations, processor registers that supply operands to the ALU and store the results of ALU operations, and a control unit that orchestrates the fetching (from memory) and execution of instructions by directing the coordinated operations of the ALU, registers and other components.

Most modern CPUs are microprocessors, where the CPU is contained on a single metal-oxide-semiconductor (MOS) integrated circuit (IC) chip. An IC that contains a CPU may also contain memory, peripheral interfaces, and other components of a computer; such integrated devices are variously called microcontrollers or systems on a chip (SoC). Some computers employ a multi-core processor, which is a single chip or “socket” containing two or more CPUs called “cores”.

To that end, the U2 databases function more efficiently with less cores more processors. Some processors have cores that focus on certain types of functions like string manipulation opposed to arithmetic functions. The U2 database likes cores that do string manipulation. The U2 databases do not take advantage of techniques such as Simultaneous Multi Threading (SMT). Larger amounts of processor cache have shown benefits in benchmarking tests that were conducted.

In the next blog, we will continue to cover the three major resources of the computer: CPU, Memory and Disk.

Categories
Technology

Performance Tuning a U2 Database – Memory

Part 3 : Memory

In computing, memory refers to a device that is used to store information for immediate use in a computer or related computer hardware device. It typically refers to semiconductor memory, specifically metal–oxide–semiconductor (MOS) memory, where data is stored within MOS memory cells on a silicon integrated circuit chip. The term “memory” is often synonymous with the term “primary storage” or “main memory”. There is also memory that is associated with the CPU known as cache memory. Both memory types are extremely fast to keep up with today’s high-speed processors.

When using the U2 Databases, a good rule of thumb for sizing memory is as follows:

  1. The memory should be sized at 25% of the “Dynamic Data Set”. The “Dynamic Data Set” is defined as the data files that are consistently being touched by an application such as a customer file or orders file.
  2. The U2 database memory requirement is approximately 7% of the total size of the database size and that will give you memory per user.
  3. Finally, the typical UNIX environment like AIX, Solaris and HP/UX usually requires 8 – 10 GB.

An example of this would be as follows:

I have to size a system to capacitate 500 users for a UniVerse system running an Order Entry System. Here are the givens I have to work with:

  1. The total database size is 250GB
  2. The total “Dynamic Data Set” is 190GB
  3. The OS is AIX 7.1
  • With this information, I first calculate the base memory size which would be 190GB X .25 (25%) = 47.5GB
  • Next I calculate the UniVerse Database total memory per user. 250GB X .07 (7%) = 17.5GB. That works out to 17.5GB / 500 = 35MB per user
  • The ideal OS size for AIX 7.1 is 8GB
  • Now I add up everything- 47.5GB + 17.5GB + 8GB = 73GB. I would then round up to 80GB.

These formulas should be part an IT department’s “Best Practices”. Also, whenever possible make sure some of your larger files stay cached in main memory / primary storage. UNIX flavors like AIX and HP/UX try to utilize maximum memory for that purpose. Also maximizing cache for the processors is highly recommended based on the U2 Databases performing better with a larger number of processors and less cores. There are tuning considerations involved with main memory and cache having to do paging, choice of algorithms and keeping certain data files “memory resident”

In the next blog, we will continue to cover the three major resources of the computer: CPU, Memory and Disk.