SPECweb2005 Tuning Disclosure for Solaris 10 release. 05/08/2006 See also: http://docs.sun.com/ =============================================================================== /etc/system: rlim_fd_max Description: "Hard" limit on file descriptors that a single process might have open. Minimum: 1 Maximum: MAXINT Default: 65,536 rlim_fd_cur Description: "Soft" limit on file descriptors that a single process can have open. Minimum: 1 Maximum: MAXINT Default: 256 sq_max_size Description: The depth of the syncq (number of messages) before a destination STREAMS queue generates a QFULL message. Minimum: 0 Maximum: MAXINT Default: 2 consistent_coloring Description: The ability to use different page placement policies on the UltraSPARC platform to maximize the use of the L2 cache. Based on the size of the L2 cache, memory is divided into bins. The page placement code allocates a page from a bin when a page fault first occurs on an unmapped page. The page chosen depends on which of the three possible algorithms are used: Page Coloring = 0 Virtual addr=physical address = 1 Bin-hopping = 2 Minimum: 0 Maximum: 2 Default: 0 autoup Description: Controls the frequency in seconds of entire physical memory to be scanned for dirty pages Minimum: 1 Maximum: MAXINT Default: 30 segmap_percent Description: Size of kernel segmap segment (a section of memory used by the kernel for general purpose use) as a percentage of physical memory. Minimum: 2 Mbytes of physical memory Maximum: 100% of physmem Default: 12 (% of physical memory) bufhwm Description: Defines the maximum amount of memory for caching I/O buffers. Minimum: 80 Kbytes Maximum: 20 percent of physical memory, or 2 TB, whichever is less. Default: 2 percent of physical memory maxphys Description: Defines the maximum size of physical I/O requests. If a driver encounters a request larger than this size, the driver breaks the request into maxphys sized chunks. File systems can and do impose their own limit. Minimum: Machine-specific page size Maximum: MAXINT Default: 131,072 (Sun-4u) or 57,344 (x86). The sd driver uses the value of 1,048,576 if the drive supports wide transfers. The ssd driver uses 1,048,576 by default. maxpgio Description: Defines the maximum number of page I/O requests that can be queued by the paging system. This number is divided by 4 to get the actual maximum number used by the paging system. Minimum: 1 Maximum: 1024 Default: 40 ipge:ipge_bcopy_thresh Description: Maximum packet size to use copy of buffer into premapped dma buffer rather than remapping. Minimum: 0 Maximum: MTU Default: 256 ipge:ipge_dvma_thresh Description: Maximum packet size to use copy of buffer into premapped dma buffer rather than remapping. Minimum: 0 Maximum: MTU Default: 1024 ipge:ipge_tx_syncq Description: Serialize output packages of all the threads in one queue for transmission. Reduce mutex contention and allowing efficient transmission. Set 1 for the case of many threads content for transmission. Minimum: 0 Maximum: 1 Default: 0 ipge:ipge_inst_taskqs Description: Number of kernel task threads to start for each instance (used when ipge_taskq_disable is set). Minimum: 0 Maximum: 8 Default: 4 ip:ip_squeue_bind Description: Controls whether worker threads are bound to specific CPUs or not. When bound (default), they give better locality. The non default value (don't bind) is often chosen only when processor sets are to be created on the system. Unset via /etc/system by adding the following line: set ip:ip_squeue_bind=0 Minimum: 0 Maximum: 1 Default: 1 ip:ip_squeue_fanout Description: Determines the mode of associating TCP/IP connections with squeues. A value of 0 associates a new TCP/IP connection with the CPU that creates the connection. A value of 1 associates the connection with a random CPU, effectively distributing the load across all CPUs and all and all squeues in the system. Minimum: 0 Maximum: 1 Default: 0 ip:ip_squeue_worker_wait Description: Governs the maximum delay in waking up a worker thread to process TCP/IP packets that are enqueued on an squeue. An squeue is a serialization queue that is used by the TCP/IP kernel code to process TCP/IP packets. Minimum: 0 milliseconds Maximum: 50 milliseconds Default: 10 milliseconds ip:ip_soft_rings_cnt Description: Specifies the number of soft rings to be configured (default value of 2). When ip_squeue_fanout is set, the soft ring functionality is used to fanout the incoming load over the two (default) soft rings. Minimum: 0 Maximum: # of online CPUs Default: 2 ip:ip_squeue_enter Description: Controls whether to process the network packets in the interrupt process. 1 = Process only your own packet 2 = Process your own packet and drain the squeue any integer other than 1,2 = Leave the processing for the worker thread Minimum: 1 Maximum: MAXINT Default: 2 ufs:smallfile Description: Determines the size threshold of files larger than this value are candidates for no cache retention under the freebehind algorithm. Minimum: 0 Maximum: 2,147,483,647 Default: 32,768 /etc/vfstab: ============ nologging Description: Disable logging. Logging is the process of storing transactions (changes that make up a complete UFS operation) in a log before the transactions are applied to the file system. Stored transactions can be applied to the file system later. Default: nologging for file systems less than 1 terabyte, logging for file sytems greater than 1 terabyte noatime Description: File system will ignore access time updates on files, except when they coincide with updates to the ctime or mtime. Default: File system is mounted with normal access time (atime) recording. Tunables using /usr/sbin/ndd: ============================= /dev/tcp tcp_smallest_anon_port Description: The smallest value of an anonymous TCP source port. Minimum: 1024 Maximum: 65,535 Default: 32,768 /dev/tcp tcp_conn_req_max_q Description: The maximum number of pending TCP connections to listen on. Minimum: 1 Maximum: 4,294,967,296 Default: 128 /dev/tcp tcp_conn_req_max_q0 Description: The maximum number of incomplete (three-way handshake not yet finished) pending TCP connections to listen on. Minimum: 0 Maximum: 4,294,967,295 Default: 1024 /dev/tcp tcp_max_buf Description: Defines the maximum buffer size in bytes. This parameter controls how large the send and receive buffers are set to by an application that uses setsockopt(3XNET). Minimum: 8192 Maximum: 1,073,741,824 Default: 1,048,576 /dev/tcp tcp_cwnd_max Description: Defines the maximum value of the TCP congestion window (cwnd) in bytes. Minimum: 128 Maximum: 1,073,741,824 Default: 1,048,576 /dev/tcp tcp_recv_hiwat Description: Defines the default send window size in bytes. Refer to Per-Route Metrics for a discussion of setting a different value on a per-route basis. Minimum: 2048 Maximum: 1,073,741,824 Default: 49,152 /dev/tcp tcp_xmit_hiwat Description: Defines the default send window size in bytes. Refer to Per-Route Metrics for a discussion of setting a different value on a per-route basis. Minimum: 4096 Maximum: 1,073,741,824 Default: 49,152 /dev/ipge instance Description: Prior to using the the ndd utility to get or set a ipge device parameter, the ipge device instance must be specified for the ndd utility. The device remains elected until you change the selection. Minimum: 0 Maximum: max # of ipge devices on the system Default: 0 /dev/ipge rx_intr_pkts Description: Interrupt after this number of packets has arrived since the last packet was serviced. A value of zero indicates no packet blanking. Minimum: 8 Maximum: 600 Default: 8 /dev/ipge rx_intr_time Description: Interrupt after 4.5 US ticks have elapsed since the last packet was serviced. A value of zero indicates no time blanking. Minimum: 3 Maximum: 600 Default: 3 /dev/tcp tcp_local_dack_interval Description: Specifies the time-out value for TCP-delayed acknowledgment (ACK) timer for hosts that are directly connected. Minimum: 1 millisecond Maximum: 1 minute Default: 50 milliseconds New Utility: ============ ksslcfg ksslcfg manages smf(5) instances for the Kernel SSL proxy module. An SSL enabled server application (e.g. a web server) can use the services of the Kernel SSL proxy to improve the performance of the SSL packet processing. It does so by creating an instance of the Kernel SSL service, specifying the SSL proxy port and parameters, prior to starting and by listening on the proxy port. Example: % ksslcfg create -x 8080 -f pem -i /some/directory/keypair.pem \ -p /some/directory/password myserver.mydomain.com 443 Webserver: ========== config/magnus.conf: ------------------- KeepAliveTimeout Description: Determines the maximum time that the server holds open an HTTP Keep-Alive connection or a persistent connection between the client and the server. Default: 30 MaxKeepAliveConnections Description: Specifies the maximum number of Keep-Alive and persistent connections that the server can have open simultaneously. Range: 0 to 1048576, no default given KeepAliveThreads Description: Directive determines the number of threads in the keep-alive subsystem. Default: 1 ConnQueueSize Description: Specifies the number of outstanding (yet to be serviced) connections that the web server can have. Default: 4096 RqThrottle Description: Specifies the maximum number of request processing threads that the server can handle simultaneously. Default: 128 ThreadIncrement Description: Number of additional or new request processing threads created to handle an increase in the load on the server. Default: 10 ListenQ Description: Specifies the maximum number of pending connections on a listen socket. Default: 128 MaxProcs Description: Specifies the maximum number of processes that the server can have running simultaneously. Default: 1 CGIWaitPid Description: CGIWaitPid is set to on, the action for the SIGCHLD signal is the system default action for the signal. If a NSAPI plugin fork/execs a child process, it should call waitpid with its child process pid when CGIWaitPid is enabled to avoid leaving “defunct” processes when its child process terminates. When CGIWaitPid is enabled, the SHTML engine waits explicitly on its exec cmd child processes. Note that this directive has no effect on CGI. Default: on RcvBufSize Description: Specifies the size (in bytes) of the receive buffer used by sockets. Default: 4096 KeepAliveQueryMeanTime Description: This directive specifies the desired keep-alive latency in milliseconds. Default: 100 Init fn=pool-init block-size=65536 Description: Configures pooled memory allocation. config/obj.conf: ---------------- Disable PathCheck for 'check-acl' Description: checks an access control list for authorization. Default: enable Service fn=send-file UseOutputStreamSize=16384 Description: The Service-class of functions sends the esponse data to the client. UseOutputStreamSize determines the default output stream buffer size for the net_read and netbuf_grab NSAPI functions. Default: UseOutputStreamSize = 8194 config/nsfc.conf: ----------------- MaxAge Description: The maximum age of a valid cache entry. Default: 30 MediumFileSizeLimit Description: (UNIX only) Maximum size of a file that can be cached as a memory-mapped file (if TransmitFile is off). Default: 537600 MediumFileSpace Description: Total size of all files that are cached as memory-mapped files (if TransmitFile is off). Default: 10485760 SmallFileSizeLimit Description: (UNIX only) Maximum size of a file that can be read into memory. Default: 2048 SmallFileSpace Description: Total size of all files that are read into memory. Default: 1048576 MaxFiles Description: Maximum number of files in the file cache. Default: 1024 MaxOpenFiles Description: Limit on the number of cached open file descriptors. Default: 1024 BufferSize Description: Directive to configure the size of the buffer used to transmit file contents on cache misses. Default: 8192 config/server.xml: ------------------ per webserver instance Disable ACLFILE Description: References one or more ACL files. security Description: Determines whether the listen socket runs SSL. Default: false acceptorthreads Description: Number of acceptor threads for the listener. Default: 1 ip Description: Specifies the IP address of the listen socket. Default: any blocking Description: Determines whether the listen socket and the accepted socket are put in to blocking mode. Default: false config/default-web.xml: ----------------------- JSP page compiler and execution servlet parameters: reload-interval Description: Specifies the frequency (in seconds) at which JSP files are checked for modifications. Setting this value to 0 checks JSPs for modifications on every request. Setting this value to -1 disables checks for JSP modifications and JSP recompilation. Default: 0 mappedfile Description: If set to true, generates separate write calls for each HTML line and comments that describe the location of each line in the JSP file. By default, all adjacent write calls are combined and no location comments are generated. Default: false jspCompilerPlugin Description: If you wish to use Jikes to compile JSP pages, set the jspCompilerPlugin" initialization parameter to "org.apache.jasper.compiler.JikesJavaCompiler" session-timeout Description: If session-timeout is specified in default-web.xml, it overrides this timeout parameter value. The timeout parameter specifies amount of time in seconds after a session is accessed by the client before the session manager destroys it. Those sessions that haven'tbeen accessed for at least timeout seconds are destroyed by the reaper method. Default: 30 minutes JVM OPTIONS: ------------ -server Description: Use optimizing JIT compiler. -Xrs Description: Reduce the use of OS signals. Default: -Xms Description: Initial heap size. Default: 4MB -Xmx Description: Maximum heap size. Default: 4MB -Xmn Description: Size of the young generation -XX:+AggressiveHeap Description: Instructs JVM to push memory use to the limit: the overall heap is more than 3850MB, the allocation area of each thread is 256K, the memory management policy defers collection as long as possible, and some GC activity is done in parallel. -XX:LargePageSizeInBytes Description: Sets the large page size used for the Java heap. Default: 8m -XX:MaxTenuringThreshold Description: Maximum number of times object is aged. Set this to 0 to enable promoteall. Default: 31 -XX:SurvivorRatio Description: Ratio of eden/survivor space size. Default: 64 -XX:TargetSurvivorRatio Description: Desired percentage of survivor space used after scavenge. Default: 50 -XX:+UseParallelOldGC Description: Use parallel garbage collection for the tenured (old) generation (available beginning in J2SE 5.0_06) -XX:+UseParallelGC Description: Enables young generation parallel scavenge collector. Works only with the default mark-sweep-compact collector. -XX:ParallelGCThreads Description: Controls the number of threads used for copying collection. Default: As many threads as CPUs. -XX:+DisableExplicitGC Description: Disable calls to System.gc(), JVM still performs garbage collection when necessary -XX:-BindGCTaskThreadsToCPUs Description: Bind threads to CPUs.