Re: High CPU utilization

  • From: Krishnaprasad Yadav <chrishna0007@xxxxxxxxx>
  • To: gogala.mladen@xxxxxxxxx
  • Date: Sun, 17 Mar 2024 14:55:49 +0530

Dear All ,

Thanks for your response ,
Currently  we have non-cdb architecture and there are independent DB
instances running on a single server , hence it becomes difficult to
identify which one is  causing the high CPU Usage .

Please suggest the same .

Regards,
Krishna



On Sun, 17 Mar 2024 at 00:44, Mladen Gogala <gogala.mladen@xxxxxxxxx> wrote:

On Sat, 2024-03-16 at 10:24 -0400, Mark W. Farnham wrote:

V$SYS_TIME_MODEL and V$SYSMETRIC_HISTORY come to mind. The GV$ versions
are for all the instances in a given database, V$ the individual instances.



Do you have multiple independent databases running or are these PDBs
within a single container on each node?



That’s from the database viewpoint keeping track of itself with sampling.



From ps output with the right flags (assuming you have system authority to
dump those out) and if your database backend names are reasonably parseable,

you can pipe that to awk or perl (or <fill in latest version of analysis
candy tool ?python maybe?>) and sum up the cpu numbers.



All this is much easier when decently close is the desired answer rather
than tooling to split hairs for repeated regression runs to figure out what
is absolutely best for something.



It seems to me you’re just looking for run-away detection for cpu storms.
Time sharing usage control can become arbitrarily complex, but if you’re
just looking for storms rather than precision for back billing remember
that as you build your watcher. Also remember to subtract the sum of the
per instance totals from the total for the box. When everything seems
“slow” there is a non-zero possibility that the OS non-database jobs and/or
things like backups and routine maintenance are sucking up the juice.



By the way, do your clients run on the database server?



When someone starts asking this question putting some sort of job
scheduler in place is usually the result.



Probably someone has something reasonably canned up for various OS
releases and Oracle versions and so forth. Some may be free and some may be
for sale or come with paid consulting support.



Good luck,



mwf



*From:* oracle-l-bounce@xxxxxxxxxxxxx [mailto:
oracle-l-bounce@xxxxxxxxxxxxx] *On Behalf Of *Krishnaprasad Yadav
*Sent:* Saturday, March 16, 2024 5:41 AM
*To:* Oracle L
*Subject:* High CPU utilization



Hi Guru's,



Want to know  about which database is utilizing the most CPU.We receive
incidents of high CPU utilization of servers which have around 8-10
database instances running ,it becomes very difficult to find out which DB
instances are causing high CPU .





It will be very full if we get some light on this , unfortunately we
don't have any OS watcher details available  , is their is any way to get
details if issue reproduce using any OS command of ps by grouping instance
name and even in case we want to do some postmatterm stuff any way from DB
to figure out who was contributing it more ?



Regards,

krishna




Hi Mark, it looks like V$SYSMETRIC_HISTORY is no longer used in
multi-tenant databases.

SQL> *show parameter pack*

NAME                           TYPE   VALUE

------------------------------ ------ -----------------

control_management_pack_access string DIAGNOSTIC+TUNING

SQL> *select distinct metric_name from V$SYSMETRIC_HISTORY;*


no rows selected

Elapsed: 00:00:00.017

SQL> *select count(*) from V$SYSMETRIC_HISTORY;*


   COUNT(*)

___________

          0


Elapsed: 00:00:00.032


There is, however, V$CON_SYSMETRIC_HISTORY, which looks exactly the same
as our old friend, but with the connection information:


SQL> *select count(*) from v$con_sysmetric_history;*


   COUNT(*)

___________

       3355


Elapsed: 00:00:00.085



--

Mladen Gogala
Database SME
https://dbwhisperer.wordpress.com


Other related posts: