Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Mailing Lists -> Oracle-L -> RE: Oracle/Windows question

RE: Oracle/Windows question

From: <oracle-l-bounce_at_freelists.org>
Date: Wed, 10 Aug 2005 10:22:03 -0700
Message-ID: <8FB2C86BB1EB01498A59A762F6CD556F0247845F@MAPI.iconnection.com>


First, thanks to all for suggestions/recommendations. I'm leaning towards a memory constraint but not ruling the network as another possible issue. Here's my SGA:

SQL> show sga

Total System Global Area 1809261100 bytes

Fixed Size                   455212 bytes
Variable Size             578813952 bytes
Database Buffers         1228800000 bytes
Redo Buffers                1191936 bytes
SQL> So, right out of the box I'm gobbling up almost 1.8gb. This wouldn't leave much room to grow before hitting the default 2gb limit. The /3GB switch is not set in the boot.ini. I have a recommendation in to the server folks to set the switch. Sanity check: just want to make sure this makes sense. By setting the switch, Oracle will be able to use up to ~3gb of virtual memory, thereby allowing more simultaneous connections. Is that correct?

Thanks again,
-joe

> -----Original Message-----
> From: Allen, Brandon [mailto:Brandon.Allen_at_OneNeck.com]
> Sent: Tuesday, August 09, 2005 12:17 PM
> To: Sweetser, Joe; oracle-l_at_freelists.org
> Subject: RE: Oracle/Windows question
>
> Joe, sounds like your most likely running out of RAM even though task
> manager might not show it - there might be plenty free for Windows,
but
> Oracle can't use it. How much RAM do you have and how much are you
using
> according to task manager? Are you using the /3GB switch to allocate
3GB
> (instead of only 2GB) to Oracle?
>
> You might want to check out the following from the bottom of Metalink
> Note:46001.1:
>
> d) How per session allocations are performed & address space
fragmentation
>


--

>
> . . .
>
> Once the address space starts to fill with users session allocations
the
> will
> be a danger that a new session can not be created due to the lack of
> available
> address space. If this occurs the most likely error is :
>
> - ORA-12500 / TNS-12500
> - TNS:listener failed to start a dedicated server process
>
> Other possible errors include :
>
> - ORA-12540 / TNS-12540 TNS:internal limit restriction exceeded
> - NT-8 Not enough storage is available to process this command
> - skgpspawn failed:category = ....
> - ORA-27142 could not create new process
> - ORA-27143 OS system call failure
> - ORA-4030 out of process memory when trying to allocate ....
>
> Due to address space fragmentation and dll's being loaded into the
Oracle
> server processes address space, these errors are likely to occur when
the
> Windows NT performance monitor shows the Oracle process has allocated
> around
> 1.6GB / 1.7GB of the 2GB address space. If the 4GT tuning feature is
in
> operation this will be around 2.5GB / 2.7GB. It is important to
remember
> that
> it is only the committed pages that are backed by physical memory or
the
> page
> file.
>
> e) How session memory is released & thread termination consequences
> -------------------------------------------------------------------
>
> When a users session completes successfully it deallocates its memory
> using
> the Win32 API call "VirtualFree" with the MEM_DECOMMIT | MEM_RELEASE
> allocation flags. After all allocations have been freed the stack is
also
> released, leaving the Oracle processes address space free of reference
to
> the completed session.
>
> If a users session terminates unexpectedly it will not release the
memory
> it
> has allocated, the allocated pages will remain in the Oracle processes
> address
> space until the process exits. Unexpected termination may occur if a
users
> session if forced to terminate for one of the following reasons :
>
> - Shutdown abort.
> - Alter session kill session.
> - Oracle command line utility orakill.
> - Oracle Administration assistant for Windows : kill session.
> - Other utilities that can kill threads in processes.
>
> Oracle Support Services recommends customers minimize the use of the
above
> commands, in particular the shutdown abort command. When shutdown
abort is
> run its calls the Win32 API "TerminateThread" for each users session,
> which
> kills the thread without releasing its memory. On systems with many
users
> a
> large percentage of the 2GB address space of the Oracle process will
> become
> inaccessible, ultimately causing allocation problems when Oracle is
next
> started. The only way to release this memory is to stop and start the
> Oracle
> Service (e.g. OracleServiceORCL).
>
> f) How to increase the number of sessions
> -----------------------------------------
>
> For customers who need to achieve large user populations on Windows
NT,
> the
> following can be used as a guide to optimising memory usage :
>
> - Reduce session parameters described in section 4.a to a minimum.
> - Reduce global database parameters described in section 3.a to a
> minimum.
> - Minimize the number of database job queues (job_queue_processes)
and
> parallel query slaves (parallel_max_servers) as they also create
> threads
> in the Oracle executable.
> - Reduce the sessions / threads stack to 500K with ORASTACK.
> - Consider switching to the Oracle Multi Threaded Server (MTS).
> - Consider upgrading Windows NT to Windows NT Enterprise Edition.
> - Consider upgrading the hardware to support Intel ESMA.
>
>
> -----Original Message-----
> From: oracle-l-bounce_at_freelists.org
> [mailto:oracle-l-bounce_at_freelists.org]On Behalf Of Sweetser, Joe
> Sent: Tuesday, August 09, 2005 10:48 AM
> To: oracle-l_at_freelists.org
> Subject: Oracle/Windows question
>
>
> Oracle 9.2.0.4.0
> Windows 2000 SP4
> 3gb memory
>
> The database is about 100gb. I seem to be having a problem with
system
> resources that is causing new connections to the database to not
happen
> during peak times. Last time this occurred, I increased the processes
> parameter (from 300 to 400) and this alleviated the problem at the
time.
> But now it happened again. I just restarted the database and all is
> well for the time being, but I want to figure out what's happening.
>
> There are no errors in the alert log. The listener.log shows repeated
> entries similar to this (I substituted actual names with <>'s):
>
> 09-AUG-2005 11:06:56 * (CONNECT_DATA=
> (SERVICE_NAME=<TNS service name>)
> (CID=(PROGRAM=C:\Temp\<xxxxxx>\1df\PCXWIN.EXE)
> (HOST=<source-hostname>)(USER=<username>)))
> * (ADDRESS=(PROTOCOL=tcp)(HOST=<IP address>)(PORT=2948))
> * establish * <TNS service name> * 12500
> TNS-12500: TNS:listener failed to start a dedicated server process
> TNS-12540: TNS:internal limit restriction exceeded
> TNS-12560: TNS:protocol adapter error
> TNS-00510: Internal limit restriction exceeded
> 32-bit Windows Error: 8: Exec format error
>
> Metalink research for the TNS 510 error (Note:171636.1) indicates
there
> is a system resource issue. My problem is that I'm pretty green on
> Windows ("unix weenie, am I" -Yoda) and don't know where to look to
see
> what's being used up. Task manager doesn't show any constraints with
> memory or CPU.
>
> Any/all suggestions/hints/ideas are welcome.
>
> Thanks,
> -joe
> --
> http://www.freelists.org/webpage/oracle-l
>
> Privileged/Confidential Information may be contained in this message
or
> attachments hereto. Please advise immediately if you or your employer
do
> not consent to Internet email for messages of this kind. Opinions,
> conclusions and other information in this message that do not relate
to
> the official business of this company shall be understood as neither
given
> nor endorsed by it.
-- http://www.freelists.org/webpage/oracle-l
Received on Wed Aug 10 2005 - 12:38:51 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US