Sun Java System Web Server 7.0 Update 6 Performance Tuning, Sizing, and Scaling Guide

Using Large Pages Support

In Sun Java System Web Server (especially in 64–bit systems), as the process address space becomes bigger and bigger, the number of Translation Lookup Buffer (TLB) misses increases significantly thereby slowing down the server.

A significant performance gain of 4–8% is observed in Sun Java System Web Server, by enabling 256M page support on CMT systems. It is observed that while running specweb ecommerce php on Web Server, about 7% of the CPU time is spent to handle TLB misses (trapstat output). Whereas, while running the same on Web Server CMT systems with 256M page support, the CPU time spent to handle TLB misses is reduced to 2%.

The Solaris 9 and 10 systems, have Multiple Page Size Support (MPSS) feature which significantly improves performance of a wide range of applications, by reducing the wastage of CPU cycles in serving TLB misses.

To enable mpss support in 64–bit Web Server on CMT, add the following in bin/startserv:


LD_PRELOAD_64=/usr/lib/sparcv9/mpss.so.1; export LD_PRELOAD_64
MPSSHEAP=256M; export MPSSHEAP

To enable mpss support in 32–bit Web Server on CMT, add the following in bin/startserv:


LD_PRELOAD=/usr/lib/mpss.so.1; export LD_PRELOAD
MPSSHEAP=256M; export MPSSHEAP

For systems which have only 4M pages, add the following in bin/startserv:


LD_PRELOAD_64=/usr/lib/64/mpss.so.1; export LD_PRELOAD_64
MPSSHEAP=4M; export MPSSHEAP

The pmap -sx command provides information on the Web Server page sizes. From the command output, note that a few page sizes are mapped with 256M pages while others are mapped with 64K pages.


# pmap -sx 1938

1938:   webservd -d /opt/SUNWwbsvr/https-nsapiphp/config -r /opt/SUNWwbsvr -t
         Address     Kbytes        RSS       Anon     Locked Pgsz Mode   Mapped File
...
0000000100B00000       6080       6080          -          -    - rwx--    [ heap ]
00000001010F0000     244800     244800     244224          -  64K rwx--    [ heap ]
0000000110000000    3932160    3932160    3932160          - 256M rwx--    [ heap ]
0000000200000000     262144     262144     262144          - 256M rwx--    [ heap ]
FFFFFFFF68000000       4096       4096       4096          -  64K rwx--    [ anon ]
...

Note –

pagesize -a command is used to determine the maximum page sizes supported on your system.