| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> c.d.o.server -> Re: sqlplus memory leak?
"Volker Hetzer" <volker.hetzer_at_ieee.org> wrote in message news:<bdcmuu$gfk$1_at_dackel.pdb.sbs.de>...
> Pim wrote:
> > We use many linux shell scripts requesting data from our (Oracle 8i
> > enterprise 8.1.7.4.0 running on Redhat 7.1) database. Many scripts use
> > sqlplus to connect to the db.
> > When these scripts are used intensively we observe a steady growing of
> > the memory usage until the point that the swap daemon consumes all the
> > CPU capacity.
> > Anyone who can shed some light on this?
> >
> > The problem can be isolated by running the following shell script:
> >
> > ii=1
> > while [ $ii -lt 1000000 ]
> > do
> > sqlplus scott/tiger <</
> > select 1 + 1 from dual
> > quit
> > /
> > ii=`expr $ii + 1`
> > done
>
>
> But wouldn't that script point to a memory leak in your shell?
> Or are you connecting locally and the server process leaks?
> Anyway, sqlplus can't leak much from one statement and any
> possible leak will disappear with the finishing of the process.
> i.e. with the "/" in your script.
>
> Lots of Greetings!
> Volker
It appears that also a single sqlplus session does not return memory
after it is quit.
We have been monitoring memory usage by the following perl script:
#---------------------------------------------#!/usr/bin/perl
#---------------------------------------------
and plotting the result with gnuplot:
#---------------------------------------------set title "memory usage versus time"
#set term postscript landscape 12 #set output "memory_usage.ps" # #plot "scratch__mem" using 1:5 title "SWAP" plot "scratch__mem" using 1:6 title "FREE MEM"#plot "scratch__mem" using 1:7 title "BUFF" #plot "scratch__mem" using 1:8 title "CACHE" pause -1 "Hit return to continue"
#---------------------------------------------
the ASCII-fied result of a single sqlplus session is:
FREE MEM [kb]
|
63100|
|<**
| *************** *
| *
63000| ^ *
|invoke *
|sqlplus ^ *
| user/ *
62900| passwd *
| *
| *
| *
62800| *
| *
| *
| *
62700| *
| *
| *
| *
62600| *
| *
| *
| *
62500| *
| *
|
|
62400| **>
| **********
| ^
| select 1+1 ^
62300| from dual quit
|_______________________________________________________
-> Julian date (1s resolution)
Received on Fri Jun 27 2003 - 02:54:25 CDT
![]() |
![]() |