SPECweb99 Tuning Disclosure: For Digital UNIX 5.1A
---------------------------------------------------

Sysconfigtab Parameters:

proc:

max-per-proc-address-space -
max-per-proc-data-size -  
    Maximum values for the current limits of the attributes
    per-proc-address-space and per-proc-data-size. The current limits can be
    increased at run time by means of the setrlimit(2) system call or the
    ulimit(3) C library call. The current limits cannot be expanded beyond the
    values established by the "max-per-proc-*" attributes. 
    Default value: max-per-proc-address-space = 1073741824
    		   max-per-proc-data-size = 4398046511104
max-proc-per-user - 
    The maximum limit of processes (tasks) a user can create. Zero indicates
    unlimited. (The superuser is not affected.) Default value: 64 
        
max-threads-per-user - 
    The maximum limit of threads a user can create. (The superuser is not
    affected.) Default value: 256
            
    
per-proc-address-space - 
per-proc-data-size - 
    The current upper limits of the respective resources. For example, a user
    address space cannot exceed the size set by the per-proc-address-space 
    attribute. 
    Default value: per-proc-address-space = 1073741824
    		   per-proc-data-size = 4398046511104
    
socket:

umc - Enables (1) or disables (0) the Unified Mbuf Cache (UMC)
	Default value: 0

sominconn -
    Minimum value for socket listen queue length limit (backlog). Silently
    overrides user-specified backlog when the user backlog is less than than
    the value of this attribute. Takes precedence over the somaxconn attribute. 
    Default value: 0 
                
somaxconn -
    Maximum value for socket listen queue length limit (backlog). Silently
    overrides user-specified backlog when the user backlog is greater than the
    value of this attribute. The sominconn attribute takes precedence. 
    Default value: 1024 
    
 
inet:

ipqmaxlen - Maximum length of the IP input queue (ipintrq) before input
            packets are dropped.
            Default value: 1024 (bytes)

ipqs -	Number of IP processing queues.  Default value: 1

tcbhashnum - Number of primary TCP hash table entries.  Default value: 1

tcbhashsize  -
    Sets the TCP control block hash table size. Default value: 32

tcp_sendspace - Default send buffer size, in bytes, for TCP sockets.
      Default value: 61440 (bytes)


net:

netisrthreads - Number of network threads configured in a system.
                Default value: n (Based on the number of CPUs in a system.

netisrwakeupthreshold - Number of packets (packet threshold) above which
		another netisr thread is started.
                Default value: 1 (packet)
    

vm:

vm_swap_eager - Specifies the swap allocation mode, which can be immediate
		mode (1) or deferred mode (0). 
		Default value: 1 (immediate mode)
    
    
vfs:

name-cache-hash-size
    Size of the hash chain table for the namei cache. Default value: 256 slots
    
namei-cache-valid-time
    Amount of time a namei cache entry can remain in the cache before it is
    discarded. Default value: 1200 (seconds) 
    

advfs:

AdvfsCacheMaxPercent - The percentage of system memory that is allocated to
		the AdvFS buffer cache, which stores file data. 
		Default value: 7 (percent)

AdvfsCacheHashSize - Size of hash table for Advfs buffer cache.  Default
		based on AdvfsCacheMaxPercent.


alt:


minimal_isr
       A value that enables (1) or disables (0) the awakening of separate
       threads by the driver's interrupt service routine to handle completion
       of transmit and receive operations. When separate worker threads are
       enabled, the system load of the Gigabit Ethernet driver can be spread
       over multiple CPUs. When separate worker threads are disabled, the mas-
       ter system CPU (or the master CPU in each RAD of a NUMA system) ser-
       vices all the transmit and receive operations for the system's Gigabit
       Ethernet adapters.  Default: 1 (multiple threads enabled)

recv_coal
       The number of packets that are sent before an interrupt is generated
       (assuming that the recv_ticks timer does not expire first).
       Default: 32 (packets)


recv_ticks
       The number of microseconds (usec) that elapse after receipt of the last
       packet before an interrupt is generated (assuming that the recv_coal
       threshold is not reached first).  Default: 200 (usec)

send_coal
       The number of packets that are sent before an interrupt is generated
       (assuming that the send_ticks timer does not expire first).
       Default: 32 (packets)

send_ticks
       The number of microseconds (usec) that elapse after transmission of the
       last packet before an interrupt is generated (assuming that the
       send_coal threshold is not reached first).  Default: 125,000 (usec)



Kernel (vmunix) tuning using Spike:

Spike is a tool that performs feedback-based code optimization on programs.  
To optimize the kernel a profile was taken using the Continuous Profiling 
Infrastructure (DCPI) tool while running a static HTTP workload 
(DYNAMIC_CONTENT=0, USER_LINE_SPEED=200000, USER_SPEED_LIMIT=160000). 
Commands used:

dcpid -vkprof -vtrace /usr/lib/dcpi/vp-ldlatency.so /usr/users/spec/DCPI/dcpidb
sleep 300
dcpiquit
dcpi2bb -make_bbdb -counts -pm all -conf_low -load_lat -epoch latest vmunix
spike -kernel vmunix -o vmunix_spike -feedback vmunix -splitThresh .999 \
 -optThresh .999


    
Zeus 3.3 Tuning:
------------------

For details on the Zeus tuning parameters used please see:
    
    http://support.zeus.co.uk/faq/entries/ful.html#tuning.html
    
    
The following tunables are the Zeus global parameters (global.cfg)
used in Compaq Alphaserver results:


tuning!bind_any  
    Boolean: have server sockets bind to IPADDR_ANY       default =  yes 

tuning!cache_files            
    Size of the web server file cache (number of files)   default =  8011

tuning!cache_flush_interval   
    Time after which unaccessed files are flushed from
    the cache (seconds)                                   default =  120

tuning!cache_large_file       
    Minimum size of a "large" file (bytes)                default =  1048577

tuning!cache_max_bytes        
    Maximum size to reserve for cached files (bytes) 
    (0=nolimit)                                           default =  33554432

tuning!cache_small_file       
    Maximum size of a "small"file (bytes) (system 
    page size)                                            default =  4096

tuning!cache_stat_expire      
    Time for which the response of a stat() call 
    is cached (seconds)                                   default =  17

tuning!num_children
    Number of child zeus.web processes to run independent 
    of the number of CPUs (the default, however, is set to 
    1 per CPU initially)     			         default = <#cpus>

tuning!so_wbuff_size          
    Size of the socket write buffer (bytes)              default =  <unset>

tuning!softservers            
    Enable 'software' virtual servers	                 default =  yes

tuning!unique_bind            
   Force each child process to bind to a unique IP 
   address, and not to each interface                    default =  no

tuning!use_poll               
   Boolean: use poll() instead of select()               default =  yes

tuning!cache_cooling_time     
    Zeus imposed delay before caching recently modified 
    files starts (seconds)                               default =  120

tuning!cbuff_size             
    Integer: cgi buffer size                             default =  8192