Saturday, March 23, 2013

Tuning JVM heap size in E-business Suite


Introduction:
Many time we face the performance issue in e-business suite, specially in mid-tier. And most of the time the issue is memory. JVM fall short of memory. This post will demonstrate you about how to increase the JVM memory in middle tier.
If some one ask you a question as an APPS DBA, where will you change if you want to change the memory sizing in middle tier. Without even thinking we should say CONTEXT FILE. Thats right !!! Every thing in middle tier is controlled by CONTEXT FILE.
E-Business suite has some standard values for JVM memory that it set when you clone the instance. You can see the memory values in CONTEXT FILE as given below.
Checking the current memory sizing for mid-tier
We have following variables defined in CONTEXT FILE which defines the memory allocation to different components of application.
s_forms_jvm_start_options -> For defining memory allocation for forms.
We will have 2 elements defined for forms: forms_jvm_start_options and forms_jvm_stop_options
1
2
3
4
</pre>
<forms_jvm_start_options oa_var="s_forms_jvm_start_options">-server -verbose:gc -Xmx256M -Xms64M -XX:MaxPermSize=128M -XX:NewRatio=2 -XX:+PrintGCTimeStamps -XX:+UseTLAB -XX:+UseParallelGC -XX:ParallelGCThreads=2 -Djava.security.policy=$ORACLE_HOME/j2ee/oacore/config/java2.policy -Djava.awt.headless=true -Dhttp.webdir.enable=false -Doracle.security.jazn.config=/slot/ems1883/appmgr/inst/apps/ma1st210_rws60051rems/ora/10.1.3/j2ee/forms/config/jazn.xml</forms_jvm_start_options>
<forms_jvm_stop_options oa_var="s_forms_jvm_stop_options">-server -verbose:gc -Xmx256M -Xms64M -XX:MaxPermSize=128M -XX:NewRatio=2 -XX:+PrintGCTimeStamps -XX:+UseTLAB -XX:+UseParallelGC -XX:ParallelGCThreads=2 -Djava.security.policy=$ORACLE_HOME/j2ee/oacore/config/java2.policy -Djava.awt.headless=true -Dhttp.webdir.enable=false</forms_jvm_stop_options>
<pre>
-Xmx256M -> this mean maximum heap size is 256MB
-Xms64M  -> this mean initial heap size is 64MB
-XX:MaxPermSize -> specifies the the maximum size for the permanent generation heap
Similarly we have the following variables as well for oacore and oafm, each having start_options and stop_options
s_oacore_jvm_start_options -> For defining memory allocation for oacore.
s_oafm_jvm_start_options   -> For defining memory allocation for oafm.
The above setup if for increasing the JVM size for 1 JVM. You can also increase the number of JVM processes as well.
-bash-3.00$ grep nproc $CONTEXT_FILE
<frmsrv_nprocs oa_var=”s_frmsrv_nprocs”>1</frmsrv_nprocs>
<forms_nprocs oa_var=”s_forms_nprocs”>2</forms_nprocs>
<oacore_nprocs oa_var=”s_oacore_nprocs”>2</oacore_nprocs>
<oafm_nprocs oa_var=”s_oafm_nprocs”>1</oafm_nprocs>
If you see here we have nproc (number of JVM processes) defined for each of the component. We can even change number of JVM processes for each component. How to change these settings … keep reading !!!
Changing the JVM memory size
When you are changing the memory size, once cannot just increase the memory size. One needs to check what is the current physical memory available on this system. System I mean to say the host. Also one should see, how many environments are running on that host. Depending on these factors, you need to come up with memory available to your host.
Example in my case I have a host with 8GB RAM. I have 2 environments available on this host. So that gives me 4GB RAM for each instance (Assuming that both the instances are of similar type).
So out of 4GM of physical RAM memory, I will need 1GB for database (my SGA_TARGET is set to 1G).
We are now left with 3GB of RAM memory. Most of the issues and processing goes with oacore. So its a good idea to concentrate more on oacore and then on forms.
We can set -Xmx for s_oacore_jvm_start_options to 1024 and -Xms & -XX:MaxPermSize to 256M. That mean 1 JVM process for oacore will not consume 1G memory. We have defined 2 processes for oacore (s_oacore_nprocs parameter). So for oacore we have allocated 2G memory. We are not left with 1G memory.
Forms having max heap size (-Xmx256M) 256MB and 2 processes defined for the same. Thats makes 512MB if memory for forms. So remaining 512MB can be allocated to oafm process.
Exmaple s_oacore_jvm_start_options will look as given below.
1
2
3
</pre>
<oacore_jvm_start_options oa_var="s_oacore_jvm_start_options">-server -verbose:gc -Xmx1024M -Xms256M -XX:MaxPermSize=256M -XX:NewRatio=2  -XX:+PrintGCTimeStamps -XX:+UseTLAB -XX:+UseParallelGC  -XX:ParallelGCThreads=2  -Dcom.sun.management.jmxremote -Djava.security.policy=$ORACLE_HOME/j2ee/oacore/config/java2.policy -Djava.awt.headless=true -Dhttp.webdir.enable=false -Doracle.security.jazn.config=/slot/ems1636/appmgr/inst/apps/tkr12r3d_rws60029rems/ora/10.1.3/j2ee/oacore/config/jazn.xml</oacore_jvm_start_options>
<pre>
Once you make the changes in context file, run autoconfig. This will configure the memory sizing for mid-tier.
References:
Metalink note ID: 362851.1, 567551.1 & 472781.1

Monday, March 18, 2013

grep usage in unix

To search multiple strings or words using the grep command


1. Grep OR Using \|

[oracle@igrexanwh001d02 OPatch]$ /u01/app/grid/11.2.0.3/OPatch/opatch lsinventory
Oracle Interim Patch Installer version 11.2.0.3.0
Copyright (c) 2012, Oracle Corporation.  All rights reserved.


Oracle Home       : /u01/app/oracle/product/11.2.0.3.IREBSCNV
Central Inventory : /u01/app/oraInventory
   from           : /u01/app/oracle/product/11.2.0.3.IREBSCNV/oraInst.loc
OPatch version    : 11.2.0.3.0
OUI version       : 11.2.0.3.0
Log file location : /u01/app/oracle/product/11.2.0.3.IREBSCNV/cfgtoollogs/opatch/opatch2013-03-18_09-50-20AM_1.log

Lsinventory Output file location : /u01/app/oracle/product/11.2.0.3.IREBSCNV/cfgtoollogs/opatch/lsinv/lsinventory2013-03-18_09-50-20AM.txt

--------------------------------------------------------------------------------
Installed Top-level Products (1):

Oracle Database 11g                                                  11.2.0.3.0
There are 1 products installed in this Oracle Home.


Interim patches (7) :

Patch  15876003     : applied on Sun Mar 03 11:53:57 GMT 2013
Unique Patch ID:  15750731
Patch description:  "QUARTERLY CRS PATCH FOR EXADATA (JAN 2013 - 11.2.0.3.14) : (15876003)"
   Created on 11 Jan 2013, 22:52:11 hrs PST8PDT
   Bugs fixed:
     15876003, 14275572, 13919095, 13696251, 13348650, 14407395, 12659561
     13039908, 14277586, 13987807, 14625969, 13938166, 13825231, 13036424
     12794268, 13011520, 13569812, 12758736, 13000491, 13498267, 13077654
     13001901, 13550689, 13430715, 13806545, 13634583, 11675721, 14082976
     14271305, 12771830, 12538907, 13947200, 12996428, 14102704, 13066371
     13483672, 12594616, 13879428, 13540563, 12897651, 12897902, 13241779
     12896850, 12726222, 12829429, 12728585, 13079948, 12876314, 13090686
     12925041, 12995950, 13251796, 12650672, 12398492, 12848480, 13582411
     13652088, 12990582, 13857364, 12975811, 12917897, 13653178, 13082238
     12947871, 13037709, 13371153, 12878750, 10114953, 11772838, 13058611
     13001955, 14001941, 11836951, 12965049, 13440962, 12765467, 13727853
     13425727, 12885323, 13965075, 13339443, 12784559, 14242977, 13332363
     13074261, 12971251, 13811209, 12709476, 14168708, 14096821, 13993634
     13460353, 13523527, 12857064, 13719731, 13396284, 12899169, 13111013
     12558569, 13323698, 12867511, 12639013, 10260842, 12959140, 13085732
     12829917, 10317921, 13843080, 12934171, 12849377, 12349553, 13924431
     13869978, 12680491, 12914824, 13789135, 12730342, 13334158, 12950823
     10418841, 12832204, 13355963, 13531373, 13776758, 12720728, 13620816
     13002015, 13023609, 13024624, 12791719

Patch  15835102     : applied on Sun Mar 03 11:47:48 GMT 2013
Unique Patch ID:  15750731
Patch description:  "QUARTERLY DATABASE PATCH FOR EXADATA (JAN 2013 - 11.2.0.3.14) : (15835102)"
   Created on 26 Dec 2012, 04:43:45 hrs PST8PDT
   Bugs fixed:
     14653598, 13332439, 13498646, 14198511, 14043417, 12625563, 13602883
     12904429, 12831782, 14841409, 12793917, 14624146, 12791981, 12646784
     12830174, 12857027, 13554409, 13717748, 13879553, 12585543, 12425262
     12794305, 13629469, 14342378, 13942462, 12594032, 14507915, 13863326
     12656535, 12938841, 14362875, 13440068, 13652437, 15862020, 13912192
     14127231, 13550185, 13720544, 14465787, 13657460, 14226599, 14516040
     13599864, 14063280, 12861463, 12913987, 10214323, 14251170, 12912297
     13040943, 13457582, 13776598, 13784384, 7276499, 13515918, 13580513
     14263073, 13732226, 13430938, 12953092, 13089313, 14207163, 13080778
     13871495, 15853081, 13903046, 11063191, 11896575, 14334353, 12979199
     14480674, 13484963, 14506367, 12984935, 12939232, 12879027, 13989185
     14292825, 10263668, 14098509, 13705338, 14023636, 13467683, 11837095
     13026410, 14589750, 13388104, 14548763, 13879579, 13344323, 10287724
     13054713, 13399435, 14062797, 13976144, 13700577, 14113740, 12391034
     13103913, 12328803, 14258925, 13906496, 14222403, 13923374, 14633213
     13718279, 14205448, 14521920, 13355095, 13098318, 12771704, 12889054
     13814905, 13719081, 12945290, 13421009, 13409719, 13945708, 9703627
     11929808, 12905058, 11708510, 13743987, 13837105, 13986244, 13256841
     14034244, 13742437, 14527701, 12621588, 12837280, 12960279, 12971775
     13727644, 13328193, 13354082, 14005749, 14052474, 13645917, 14153033
     12764658, 15862016, 12833442, 14114792, 14013094, 13657605, 13901039
     13011409, 13632809, 13528551, 14698700, 8547978, 13742435, 13466801
     14088346, 13429678, 12556843, 14132953, 13070939, 15951085, 13979519
     12929644, 14741727, 13362079, 14301592, 14062792, 13909322, 12918738
     13099577, 13917937, 13566938, 12757532, 13775960, 10297948, 13242070
     13742436, 13871547, 13913630, 12358083, 12913474, 13812031, 14654284
     13575265, 14301697, 12780983, 12898733, 13725395, 9163477, 10136532
     12401111, 13477790, 14546673, 12971388, 9906567, 12325317, 14098382
     12582664, 14153464, 13882317, 9873405, 12974860, 12693573, 12766987
     13901133, 14348839, 13714302, 13358781, 12658411, 12618817, 9095696
     14117976, 13397256, 14671833, 14143451, 13426605, 11840910, 13448247
     13257247, 14174174, 13476583, 13593999, 12966665, 14546575, 14062793
     10625145, 13816397, 14651753, 13527323, 12940620, 14317360, 12718090
     13035360, 13579992, 13343438, 12780098, 13001379, 10133521, 12848798
     14506175, 13936424, 13544396, 13742434, 14587310, 13572659, 12637294
     12900077, 12873183, 13395403, 12950694, 12894807, 14029050, 13927155
     12350994, 14262913, 12899768, 14480676, 13559697, 13722707, 13326736
     13804294, 14175146, 14182835, 13483354, 10182005, 9876287, 12794025
     10418524, 9847699, 14561651, 12849688, 13632717, 12890501, 11071989
     15862023, 12772404, 12834027, 11855445, 12922105, 14499293, 13687870
     12586845, 13370330, 13902316, 12723359, 12959852, 13649031, 13036331
     12944766, 13553883, 13493847, 13839641, 13464002, 13117043, 13929853
     12693626, 10350832, 13851078, 12847466, 13023541, 12974145, 13742433
     13719292, 13612575, 13642207, 10305573, 13811172, 14062795, 13340960
     13718476, 12678920, 13063120, 12353494, 12731940, 13352237, 13961338
     9659614, 13506110, 12925089, 13524237, 13495307, 15862018, 14467061
     12876939, 12780993, 13715680, 14071518, 13419747, 12325243, 13524698
     12595561, 12917230, 13769887, 14668670, 13384397, 13253549, 14207317
     12998795, 12953743, 14473913, 10248538, 15862017, 13329145, 13685544
     13790109, 12748240, 13032258, 12620823, 13711695, 13366202, 14482905
     13624984, 12709059, 13038684, 12345082, 14008285, 13584130, 12880299
     14042380, 13499128, 13364795, 13787482, 13860201, 12617123, 13422949
     12924835, 11877623, 14294123, 14007968, 12564614, 13340388, 13998753
     12535346, 11841048, 13629056, 13259364, 12923168, 14607573, 12748795
     13737746, 13918644, 13564720, 13384182, 14390252, 14038787, 12662040
     9761357, 13645875, 14062796, 12960925, 13470240, 14050233, 14052871
     13773133, 12734325, 3522216, 13516727, 14409183, 13916709, 12842402
     14314239, 14144283, 14218148, 13853916, 13902963, 14275605, 14016187
     12685263, 13912642, 14287564, 12698747, 14215134, 10332676, 12983611
     13022416, 14119388, 13000553, 15862024, 12536287, 12778873, 15862019
     13502183, 12866794, 13471777, 13533487, 13742438, 12628286, 12717125
     12768840, 12797420, 11715084, 13041324, 12387467, 12714023, 13350245
     12612118, 12900964, 13074706, 10387201, 13767790, 14546638, 13958038
     12591252, 13440516, 13887875, 12627504, 12797765, 13111630, 14292987
     13457537, 13699124, 13981051, 13492735, 13772618, 13503598, 12829021
     13968438, 14664355, 13588248, 12749597, 8316255, 13345786, 12964067
     13419660, 14097127, 13146719, 12583611, 12591399, 14309390, 13035804
     9706792, 13898864, 14402514, 15862021, 13146182, 13503766, 13385346
     12312133, 6445864, 13716797, 14744263, 12920172, 13807411, 13880971
     14469008, 14291951, 14063281, 14125317, 12865902, 14508968, 13801740
     12899094, 12960455, 13914613, 9782075, 14299365, 14366237, 14110275
     11717119, 13040331, 13997862, 13420224, 11868640, 13250244, 13573203
     13505390, 14356507, 12326708, 14014434, 13911821, 12978794, 12596444
     12675009, 12919564, 12614359, 14293031, 9858539, 14557588, 14237793
     13454210, 13786778, 14062794, 12764337, 14478870, 12539239, 13448206
     14040433, 12748538, 14076523, 14128555, 13358531, 14176879, 14480675
     12641849, 13059165, 14613900, 14692460, 14578331, 14393900, 14512189
     13534412, 13910420, 13742464, 13377816, 13397104, 13079417, 13004894
     13696023, 12672969, 13642044, 13478060, 12655301, 12976376, 14280879
     14041920, 14112837, 13524899, 13786142, 12845115, 15862022, 14263036
     12910565, 13780816, 13696216, 13548053, 14727310, 13724193, 14035825
     12950644, 12588744, 9725536, 13338048, 14138130

Patch  4247037      : applied on Thu May 10 21:45:42 IST 2012
Unique Patch ID:  14211388
   Created on 17 SEP 2009, 09:52:00 hrs US/Pacific
   Bugs fixed:
     4247037

Patch  13366268     : applied on Thu May 10 21:44:31 IST 2012
Unique Patch ID:  14394336
   Created on 21 Dec 2011, 08:14:06 hrs PST8PDT
   Bugs fixed:
     13366268

Patch  13258936     : applied on Thu May 10 21:43:30 IST 2012
Unique Patch ID:  14465000
   Created on 5 Dec 2011, 02:41:32 hrs PST8PDT
   Bugs fixed:
     13258936

Patch  12985184     : applied on Thu May 10 21:38:43 IST 2012
Unique Patch ID:  14296756
   Created on 30 Nov 2011, 15:18:06 hrs PST8PDT
   Bugs fixed:
     12985184

Patch  12960302     : applied on Thu May 10 21:36:56 IST 2012
Unique Patch ID:  14254250
   Created on 10 Nov 2011, 02:40:18 hrs PST8PDT
   Bugs fixed:
     12960302



Rac system comprising of multiple nodes
  Local node = igrexanwh001d02
  Remote node = igrexanwh001d01
  Remote node = igrexanwh001d03
  Remote node = igrexanwh001d04

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

OPatch succeeded.
[oracle@igrexanwh001d02 OPatch]$ /u01/app/grid/11.2.0.3/OPatch/opatch lsinventory | grep '4247037\|12942119\|12960302\|12985184\|13258936\|13366268\|14313519'
Patch  4247037      : applied on Thu May 10 21:45:42 IST 2012
     4247037
Patch  13366268     : applied on Thu May 10 21:44:31 IST 2012
     13366268
Patch  13258936     : applied on Thu May 10 21:43:30 IST 2012
     13258936
Patch  12985184     : applied on Thu May 10 21:38:43 IST 2012
     12985184
Patch  12960302     : applied on Thu May 10 21:36:56 IST 2012
     12960302

From above output, we can conclude that Patch 12942119 & 14313519 is not applied.


2. Grep OR Using -E

you could also use [oracle@igrexanwh001d02 OPatch]$ /u01/app/grid/11.2.0.3/OPatch/opatch lsinventory | grep -E '4247037|12942119|12960302|12985184|13258936|13366268|14313519' which will give you the same result.


3. Grep OR Using egrep

egrep is exactly same as ‘grep -E’. So, use egrep (without any option) and separate multiple patterns for the or condition.

egrep 'pattern1|pattern2' filename


4. Grep AND Opertion

$ grep -E ‘pattern1.*pattern2′ (with order)

$ grep -E 'pattern1.*pattern2|pattern2.*pattern1' filename (without order)


Some more grep options,

grep -v you can list down all files which doesn't contains a word i.e. excluding files which matches a pattern

cat textfile.txt | grep -v “Hello”
World

grep -c will print count of matching pattern in a file etc

cat textfile.txt | grep -c “Hello”
3

grep -i for case insensitive

cat textfile.txt | grep -i “Hello”
grep -i “Hello” textfile.txt


More options, I'l mention as I discover in future... :)