Solaris Kernel Parameters for WebSphere v6.x Installation

This blog entry clarifies the Solaris kernel parameters required by IBM WebSphere Application Server v6.x.  This IBM Info center document shows the following parameters needed as the recommended /etc/system entries:

        set shmsys:shminfo_shmmax = 4294967295
        set shmsys:shminfo_shmseg = 1024
        set shmsys:shminfo_shmmni = 1024
        set semsys:seminfo_semaem = 16384
        set semsys:seminfo_semmni = 1024
        set semsys:seminfo_semmap = 1026
        set semsys:seminfo_semmns = 16384
        set semsys:seminfo_semmsl = 100
        set semsys:seminfo_semopm = 100
        set semsys:seminfo_semmnu = 2048
        set semsys:seminfo_semume = 256
        set msgsys:msginfo_msgmap = 1026
        set msgsys:msginfo_msgmax = 65535
        set rlim_fd_cur=1024

 Of all those parameters, the only one you really need for WAS v6.x is the file limit descriptiors:

    rlim_fd_cur=1024

Reason: Prior to WAS v6.x, you may be aware that IBM used WebSphere MQ (v5) as the embedded messaging engine, the JMS provider required by the J2EE specification.  In WAS v6.x, IBM's new implementation for the default JMS provider is called Service Integration Bus (SIB).  SIB does not require those SYS V IPC parameters except for the file descriptors limit.

In Solaris 10, two differences, which we have discussed in this whitepaper, from the previous Solaris versions you should note:

  1. Many default values are larger than before and some kernel parameters are obsolete. 
  2. You can manage these parameters through the new resource management framework with /etc/project.  By using /etc/project instead of /etc/system, you no longer need to reboot the system. 

There are few ways you can set these kernel parameters at different level as follows.

  1. Set the necessary parameter(s) in your current shell session before you execute your application such as WAS.  This will work for the current session only and will not persist for the next session.

        # prctl -n process.max-file-descriptor -r -v 1024 $$
    
  2. Set the necessary parameter(s) for system wide in the /etc/project.  You may not want to do this as you are increasing the default value(s) for the entire system.
        # projmod -s -K 'process.max-file-descriptor=(privileged,1024,deny)' system
    
  3. Set the necessary parameter(s) for the root user in the /etc/project.  This is for all processes owned by the root user.
        # projmod -s -K 'process.max-file-descriptor=(privileged,1024,deny)' user.root
    
  4. Set the necessary parameter(s) for the WAS user, who runs the server processes, in the /etc/project.  This is a "Best Practice" way to do since you are changing the default value(s) specifically to the WAS user based upon IBM's recommendation for the WebSphere processes.
        # projadd user.wasuser
        # projmod -s -K 'process.max-file-descriptor=(privileged,1024,deny)' user.wasuser
    
You can learn more about it here.

Finally, if you are deploying WAS in Solaris Containers (Zones), you can set the kernel parameters zone wide with the zonecfg command as of Solaris 10 8/07 (Update 4).  You can read this blog entry.  There are many new features added to this Solaris release, you can even capped memory, etc. to a zone. 

Comments:

Post a Comment:
Comments are closed for this entry.
About

Mostly pertaining to Cloud Computing, Application Infrastructure, Oracle Exastack, Exalogic, Solaris, Java and Sun servers for the enterprise!

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today