How to identifying system Bottlenecks

Issue:

You may come across the application users reporting that the database performance is slow, and that pint of time you may need to determine there are any systems resource bottlenecks on the reported database server.

Cause: 

There may be high memory utilization, high processes, high paging, high disk I/O utilization and CPU utilization

Workaround Steps:

A single OS command VMSTAT will  result all the above bottlenecks.

Output of VMSTAT:




Interpret the result of VMSTAT (virtual memory disk):

These are the general guidelines to interpret the output:


      a. If the wa (wait time for I/O) column is high, then it’s an indication that the storage subsystem is           overloaded and next is to investigate further the cause/source of I/O contention.
      b. If b (process Sleeping) is continuously greater than 0, then it indicate the not enough CPU         
          processing power, and next is to investigate which oracle processes and SQL Statements 
          consuming the most CPU.
      c. If so (Memory swapped out to disk) and si (memory swapped in from disk) are continuously  
          greater than 0, then it indicate that the memory bottleneck, and next is to investigate investigate 
          which oracle processes and SQL Statements consuming the most Memory.

Additional options of VMSTAT:

To keep historical record, then start keeping the output in a file for the historical performance analysis. 

Vmstat 2 5 > vmstat_out.txt

To check or watch periodically the output with the highlight with the changes in each of the duration of the output

Watch –n 2 –d vmstat

Output:



Here d is difference mode, to exit press CTL+C

Comments

Popular posts from this blog

Auditing in Oracle database

rs.stepDown() in MongoDB replication

Tuples in Python