Solaris and Oracle need tweaks

i have investigated some time to look at the performance of Solaris with Oracle on it. Here is some information that might be relevant.

maxcontig:
definition: maximum contiguous i/o size

  • check:
    (input) # fstype -v /dev/dsk/c0t0d0s0 | grep maxcontig
    (output) maxcontig 128 rotdelay 0ms rps 167
  • default:
    (output) maxcontig 128 rotdelay 0ms rps 167
  • change:
    for existing filesystem:
    (input) # tunefs -a 256 /dev/dsk/c0t0d0s0
    for new filesystems:
    (input) # newfs -C 256 /dev/rdsk/c0t0d0s0

maxphys:
definition: largest physical i/o operation allowed

  • check:
    (input) # adb -k
    (input) maxphys/D
    (output) maxphys: 131072
  • default:
    (output) maxphys: 131072
  • change:
    add or change in /etc/systems and reboot
    (input) set maxphys 1048576
    when using a metadevices, also set this one same value as "set maxphys value".
    (input) set md:md_maxphys 1048576

directio:
definition: ufs feature to bypass the buffer-chache

  • check:
    (input) # mount | grep directio
  • default:
    not enabled.
  • change:
    change options in /etc/vfstab and reboot:
    (input) /dev/md/dsk/d0 /dev/md/rdsk/d0 / ufs 1 no logging
    directio
    or manually mount the filesystem:
    (input) mount -o directio /dev/md/dsk/d0 /

tcp_time_wait_interval
definition: the time in milliseconds a tcp connection stays in time_wait state

  • check:
    (input) # ndd /dev/tcp tcp_time_wait_interval
    (output) 240000
  • default on solaris 8 systems:
    (output) 240000
    default on solaris 9 systems:
    (output) 60000
  • change:
    (input) # ndd /dev/tcp -set tcp_time_wait_interval 60000\r\n