Home » RDBMS Server » Server Administration » orastack size in bytes
orastack size in bytes [message #298036] Mon, 04 February 2008 13:16 Go to next message
rkl1
Messages: 97
Registered: June 2005
Member
Dear All,

On our NT box running on oracle 8i, we are thinking of applying a lower value of orastack utility to test the system accessible to large number of users. As Oracle suggests (command prompt: orastack), to go with 500,000 bytes initially for the oracle.exe, tnslsnr.exe etc and that is fine. However we like to know, is there any way to find out how much stack space has been already allocated. I believe the default is 1MB but how to know it. For example, if we change the orastack to 500K, how we can extract or confirm from oracle kernel that it is using that value. Is there another command or query to confirm what the orastack value set in the database now.

I will appreciate any help/experience in this matter.

Thanks.

Re: orastack size in bytes [message #298095 is a reply to message #298036] Tue, 05 February 2008 00:29 Go to previous messageGo to next message
mkbhati
Messages: 93
Registered: February 2007
Location: Mumbai
Member
Mani,
I hope you are talking about Oracle Service (oracle.exe) stack allocation and not stack allocation for threads spawned by oracle.exe. Threads also have their own stack space. you can use process monitor or process explorer utilities available from following link :-

http://technet.microsoft.com/hi-in/sysinternals/cb56073f-62a3-4ed8-9dd6-40c84cb9e2f5(en-us).aspx

Quote:
On our NT box running on oracle 8i, we are thinking of applying a lower value of orastack utility to test the system accessible to large number of users


I have experienced stability issues after altering default stack allocation on a NT box. It would be a good idea to upgrade to a higher release on 64 bit windows box in order to overcome address space & memory limitation on 32 bit NT Boxes.

Manjit Kumar [mkbhati]

[Updated on: Tue, 05 February 2008 00:31]

Report message to a moderator

Re: orastack size in bytes [message #298287 is a reply to message #298036] Tue, 05 February 2008 10:14 Go to previous messageGo to next message
rkl1
Messages: 97
Registered: June 2005
Member
Thanks for the link and the information. I am wondering when the orastack is applied, does it change the stacks permanently or just for the life of the instance. What happens when we reboot it again and how we know that what is the stack value oracle is using.

Thanks.
Re: orastack size in bytes [message #298363 is a reply to message #298036] Tue, 05 February 2008 22:54 Go to previous message
mkbhati
Messages: 93
Registered: February 2007
Location: Mumbai
Member
RK,

Quote:
I am wondering when the orastack is applied


orastack alters default stack allocation size in oracle.exe executable file. When you link your object code using linker after compilation than linker specifies a default stack segment allocation [ nothing to do with oracle tablespace segments]. User can specify his required size [within min & max for particular OS] or linker goes with default stack segment size [differs with various linkers]. When your executable is loaded by OS into RAM than code goes to code segment, stack into stack segment & data into data segment. The program segment prefix[PSP] a structure prepared & loaded by OS contains information about all this plus a lot of other information.

Quote:
does it change the stacks permanently or just for the life of the instance.


Once patched into executable it remains there & effective whenever or where ever the patched executable is run. This patching is done when executable is not running. So its is for forever. A running executable can not be patched & not advisable or logical to do so.

Quote:
What happens when we reboot it again


What ever you do patch an executable, once patched, it is patched for ever. to change you need to do patching again.

Quote:
how we know that what is the stack value oracle is using


Use tools mentioned in my first post. Windows have been famous for lack of good kernel hacking tools, but situation is changing now with dedicated sys internals website. The site has a good collection of kernel/system related tools. Unix/Linux have been quite rich on this front. Take your time in playing & understanding tools available on sysinternals. But take caution do not attempt it on your production database. Copy your database to some staging machine in identical environment & do a through testing when satisfied than do it on production. Using Sysinternal tools you can drill down up to individual threads & therir stacks. So Happy threading from all members of this forum . Do not hesitate to post us outcome of your testing, forum members will be happy to listen.


Regards

Manjit Kumar [mkbhati]





[Updated on: Tue, 05 February 2008 22:57]

Report message to a moderator

Previous Topic: Client Process not killed after database reboot
Next Topic: Checkpoint and RBA
Goto Forum:
  


Current Time: Thu Dec 08 20:11:19 CST 2016

Total time taken to generate the page: 0.12293 seconds