Sunday, March 28, 2010

why Perl.exe consume most of CPU% in oracle

Perl.exe consume most of CPU% in oracle

Some Questions:


Questions 1:-
=====================

when i open the oracle this perl.exe occupay all my cpu .
and then my PC is going to very very very slow .
plz i want know what to do now ..


Questions 2:-
=====================

After starting dbconsole (emctl start dbconsole) (Latest Oracle on a
Win2KSP4 box) and waiting a while two perl.exe processes come up and
start eating all the cpu and memory on the machine. I searched Metalink
and found that one possible cause may be the lack of a C: drive on the
host. This is true for me, so I mapped C: to a network drive (Metalink
suggested to install an USB drive) but the problem did not go away.

Any ideas?

Question 3 :-
====================

I installed 11g 64 bit on another win2003 64 bit machine,
did not patch this time. so the it's a clean plain vanilla version of 11g.
Perl.exe processes are still appearing and ramping up to G of memory
when the dbconsole is started.
It seems the perl.exe process hangs on this script
sysman/admin/scripts/lsnrresp.pl

I tested the listener and it is up and works perfectly,
I can connect to the machine remotely etc.

any ideas to help me progress on this?


===========================
Why run perl.exe in oracle
=========================

These scripts are part of the Enterprise Manager monitoring,
they are invoked by default. Dbresp.pl checks for user response time.
These perl scripts are internals .


Check metalink Note:419668.1,
it is one of the most common reason EM consume 100% CPU
and resolution/workaround is given in above ML note.



=======================================
Solutions
=======================================

solution:- 1
==================
I have stopped the enterprise manager and the perl script is
not running anymore

cmd> emctl stop dbconsole ;


solution:- 2
===================
I searched Metalink
and found that one possible cause may be the lack of a C: drive on the
host. This is true for me, so I mapped C: to a network drive (Metalink
suggested to install an USB drive) but the problem did not go away.
Came to work today, installed a USB drive to get a proper C: drive (the
mapped one does not suffice) and it solved the problem.


solution:- 3
====================
Turns out the machine had no C: drive, and some perl scripts
refer specifically to c:, had to edit a few perl files changing any
reference from c: to e:
all ok now.


solution:- 4
====================
I have had good luck with similar problems by reducing the DB_FILE_MULTIBLOCK_READ_COUNT.
Oracle used to say in its docs that MULTIBLOCK for OLTP should be between 4 and 16.




you must identified if there are other operating system proceess that
consuming hight porcent of resources, if you enviroment is Unix, check this command

$ top

$ ps -aef -o pcpu= -o pid= -o time= -o vsz= -o user= -o args=

If you enviroment is Windows,
you must check the Task Manager.



=============================================================

1 comment:

Anonymous said...

solution 5: control panel -> Services , and modify all Oracle services from automatic start to manual start