Use a combination of tunable parameters and other parameters to tune your system for performance benchmarking. These values are an example of how you might tune your system to achieve the desired result.
The following table shows the operating system tuning for Solaris 10 used when benchmarking for performance and scalability on UtraSPARC T1–based systems (64 bit systems).
Table 4–2 Tuning 64–bit Systems for Performance Benchmarking
Parameter |
Scope |
Default Value |
Tuned Value |
Comments |
---|---|---|---|---|
/etc/system |
65536 |
260000 |
Process open file descriptors limit; should account for the expected load (for the associated sockets, files, pipes if any). |
|
/etc/system |
1 | |||
/etc/system |
2 |
0 |
Controls streams driver queue size; setting to 0 makes it infinite so the performance runs won’t be hit by lack of buffer space. Set on clients too. Note that setting sq_max_size to 0 might not be optimal for production systems with high network traffic. |
|
0 | ||||
1 | ||||
/etc/system |
0 | |||
/etc/system |
2048 | |||
/etc/system |
2048 | |||
/etc/system |
384 | |||
ipge:ipge_dvma_thresh |
/etc/system |
384 | ||
/etc/system |
1 | |||
ndd /dev/tcp |
128 |
3000 | ||
ndd /dev/tcp |
1024 |
3000 | ||
ndd /dev/tcp |
4194304 | |||
ndd/dev/tcp |
2097152 | |||
ndd /dev/tcp |
8129 |
400000 |
To increase the transmit buffer. |
|
ndd /dev/tcp |
8129 |
400000 |
To increase the receive buffer. |
Note that the IPGE driver version is 1.25.25.
If HTTP access is logged, follow these guidelines for the disk:
Write access logs on faster disks or attached storage.
If running multiple instances, move the logs for each instance onto separate disks as much as possible.
Enable the disk read/write cache. Note that if you enable write cache on the disk, some writes might be lost if the disk fails.
Consider mounting the disks with the following options, which might yield better disk performance: nologging, directio, noatime.
If more than one network interface card is used, make sure the network interrupts are not all going to the same core. Run the following script to disable interrupts:
allpsr=`/usr/sbin/psrinfo | grep -v off-line | awk '{ print $1 }'` set $allpsr numpsr=$# while [ $numpsr -gt 0 ]; do shift numpsr=`expr $numpsr - 1` tmp=1 while [ $tmp -ne 4 ]; do /usr/sbin/psradm -i $1 shift numpsr=`expr $numpsr - 1` tmp=`expr $tmp + 1` done done |
Put all network interfaces into a single group. For example:
$ifconfig ipge0 group webserver $ifconfig ipge1 group webserver |
In some cases, performance can be improved by using large page sizes. To start the 32–bit Web Server with 4 MB pages:
LD_PRELOAD_32=/usr/lib/mpss.so.1 ; export LD_PRELOAD_32; export MPSSHEAP=4M; ./bin/startserv; unset LD_PRELOAD_32; unset MPSSHEAP
For 64–bit servers:
LD_PRELOAD_64=/usr/lib/64/mpss.so.1; export LD_PRELOAD_64; export MPSSHEAP=4M; ./bin/startserv; unset LD_PRELOAD_64; unset MPSSHEAP