Consultor Eletrônico



Kbase P136018: Database hanging periodically and user processes seem to be be performing a semop call.
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   11/19/2008
Status: Verified

SYMPTOM(s):

Database hanging periodically

Overall performance of the databases decreases

It takes a long time to login in the application when users already logged in experience delays in the aplication

Database appears to be hanging.

Periodically, user processes will all of a sudden seem to lock up or hang.

truss output produced from these processes indicate that these processes appear to be doing something with a semaphore call (semop).

Hang will be cleared up if DBA terminates all processes holding or waiting for a latch.

Promon shows blocked users

Blocked clients waiting on BHT (Buffer Hash Table)

Promon -> Status -> All Processes screen is showing multiple users waiting on the LKT (Lock Table latch)

Promon -> Status -> All Processes screen is showing multiple users waiting for a BUF (Buffer)

Promon shows high Waiting on semaphores

Cannot modify or tune -spin parameter within promon because the database was not started with -spin.

FACT(s) (Environment):

Operating System does not indicate a bottleneck on system resources (like disk IO or memory)
CPU is almost 100% idle
Machine where database is running has multiple CPUs.
Not making use of the -semsets database startup parameter.
Users can log into the database.
Enterprise Database License
UNIX
IBM AIX
Progress 9.x
OpenEdge 10.x

CAUSE:

Not making use of the -spin parameter, so all processes are using the semaphore set for locking.

FIX:

1. Modify database startup parameters to make use of the -spin parameter. Set -spin to 6000 or 10000 per CPU.
Example: If system contains 2 CPUs, set -spin either 12000 or 20000 and tune as needed.

2. Add -semsets parameter to database startup parameters. Set -semsets parameter to 1 semaphore set for every 50+ users in the database.
Example: 100 users, set -semsets 2