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) 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 for SPECweb99 (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 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 = 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 tuning!ssl_sessioncache_size 5011 Integer: Size of ssl session cache. Should be prime (default 199) tuning!ssl_sessioncache_expiry 120 Integer: Number of seconds cache data are valid for (default 24 hrs) tuning!ssl_keepalive Boolean: Whether to keepalive SSL connections (default yes) tuning!ssl_diskcache Boolean: use 2nd level on-disk cache for storing SSL session information (default no if num_children = 1; yes if num_children > 1) tuning!keepalive Boolean: enable 'keepalive' (default yes) tuning!keepalive_max -1 Maximum permitted number of keepalive connections (-1 means no limit) (default 256) tuning!modules!nsapi!enabled no tuning!modules!isapi!enabled no tuning!modules!stats!enabled no tuning!cgid!enabled no Enable/Disable out-of-process deamons for these API's default = yes tuning!modules!isapi!writeclient_limit 104857600 Change limit on data written to client to avoid warning message default = 10485760