SPECweb2005 Tuning Disclosure for Solaris 10 release. 04/09/2008 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 tune_t_fsflushr Description: Specifies the number of seconds between fsflush invocations. Minimum: 1 Maximum: MAXINT Default: 5 ddi_msix_alloc_limit Description: Increasing parameter improves the network Rx performance. Minimum: 1 Maximum: Max # CPUs Default: 2 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_squeue_soft_ring Description: Enable soft-rings when set to 1. Minimum: 0 Maximum: 1 Default: 0 (default for Solaris-x86) 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. /platform/sun4v/kernel/drv/nxge.conf: ===================================== soft-lso-enable Description: Large segment offload (LSO) is an offloading technique to increase transmit throughput by reducing CPU overhead. The technique is also called TCP segmentation offload (TSO) when it applies to TCP. It works by sending large buffers (buffer size can be up to 64 KBytes in Solaris) down the protocol stack and letting the lower layer fragment it into packets, instead of fragmenting at the IP layer. 0 = disabled 1 = enabled Default: disabled 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/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 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 JSWS 7.0 Update 1, 2 and 3 Webserver: ===================================== config/magnus.conf: ------------------- Init fn=pool-init block-size Description: Configures pooled memory allocation. MaxProcs Description: Specifies the maximum number of processes that the server can have running simultaneously. Default: 1 config/obj.conf: ---------------- Service fn=send-file Description: If enabled, the server will attempt to use the operating system's sendfile, sendfilev, send_file, or TransmitFile system call. config/server.xml: ------------------ General setting: Platform Description: The platform mode (32-bit or 64 bit) in which the server will run. Values are enable true (64-bit) or false (32-bit). Default: false log-level Description: The log verbosity for the server. The value can be finest (most verbose), finer, fine, info, warning, failure, config, security, or catastrophe (least verbose). Default: info log-stderr Description: If enabled, the server logs data that applications write to stderr. Values are enable true or false. Default: true log-to-console Description: If enabled, the server writes log messages to the console. Values are enable true or false. Default: true stats Description: Web server internal stats collection. Values are enable true or false. Default: true Performance file_cache settings: max-age Description: Maximum amount of time to cache the file content (Use -1 for no maximum) Minimum: 0.001 Maximum: 3600 Default: 30 max-entries Description: Maximum number of paths for which to cache content. Minimum: 1 Maximum: 1048576 Default: 1024 max-open-files Description: Maximum number of file descriptors the file cache will keep open. Minimum: 1 Maximum: 1048576 sendfile Description: If enabled, the server will attempt to use the operating system's sendfile, sendfilev, send_file, or TransmitFile system call. The values are enabled or disabled. Default: disabled on UNIX sendfile-size : Description : When file cache is enabled and sendfile is enabled and sendfile-size is set to non zero then sendfile-size provides a hint to the file cache subsystem to send the file in chunks where the chunk size can be at most the size of sendfile-size. Web Server only use sendfile-size when file size is bigger than max-heap-file-size. When sendfile-size is set to default value 0 and sendfile is enabled, then the entire file is attempted to be sent out. In either case, the left over is sent in subsequent transfers. Default : 0 replacement Description: Cache entry replacement algorithm. The values can be LRU, LFU or none (false). Default: LRU max-heap-file-size Description: Maximum size (in bytes) of files to cache on the heap. Minimum: 0 Maximum: 2147483647 Default: 524288 max-heap-space Description: Maximum amount of heap (bytes) to use for caching files. Minimum: 0 Maximum: 9223372036854775807 Default: 10485760 max-mmap-file-size Description: Maximum size (bytes) of files to memory map. Minimum: 0 Maximum: 2147483647 Default: 0 max-mmap-space> Description: Maximum amount of memory map address space (bytes) to use for caching files. Minimum: 0 Maximum: 9223372036854775807 Default: 0 buffer-size Description: Size of the input/output buffer used on cache misses. Minimum: 512 Maximum: 1048576 Default: 8192 Performance keep-alive settings: threads Description: Number of keep-alive subsystem threads. Minimum: 1 Maximum: 128 Default: 1 max-connections Description: Maximum number of concurrent keep-alive connections the server will support. Minimum: 1 Maximum: 1048576 Default: 200 timeout Description: Timeout after which inactive keep-alive connection may be closed. Minimum: 0.001 Maximum: 3600 Default: 30 poll-interval Description: Interval between polls. Minimum: 0.001 Maximum: 1 Default: 0.001 Performance thread-pool settings: queue-size Description: Maximum number of concurrent HTTP connections that can be queued waiting for processing. Minimum: 1 Maximum: 1048576 Default: 1024 min-threads Description: Minimum number of HTTP request processing threads. Minimum: 1 Maximum: 4096 Default: 16 max-threads Description: Maximum number of HTTP request processing threads. Minimum: 1 Maximum: 4096 Default: 128 Stack Size: Description: Stack size for HTTP request processing threads. Minimum: 8102 bytes Maximum: 67108864 bytes Default: 131072 bytes http-listener Settings: ip Description: Port on which to listen. Default: * port Description: Port on which to listen. Default: 80 acceptor-threads Description: Number of threads dedicated to accepting connections received by this listener. Minimum: 1 Maximum: 128 Default: 1 listen-queue-size Description: Maximum size of the operating system listen queue backlog. Minimum: 1 Maximum: 1048576 Default: 128 send-buffer-size Description: Size of the operating system socket send buffer. Minimum: 1 Maximum: 2147483647 Default: blocking-io Description: Whether the server uses blocking IO Default: false ssl-session-cache enabled Description: Determines whether the server caches SSL/TLS sessions. Default: true servlet-container log-level Description: The log verbosity for the Servlet container. The value can be finest (most verbose), finer, fine, info, warning, failure, config, security, or catastrophe (least verbose). Default: info encode-cookies Description: Determines whether the Servlet container encodes cookie values. Default: true http etag Description: Controls whether the server includes an Etag header field in its responses. Default: true output-buffer-size Description: The size (in bytes) of buffer used to buffer HTTP responses. The value can be from 0 to 2147483647. Default: 8192 request-header-buffer-size Description: The size (in bytes) of the buffer used to read HTTP request headers. The value can be from 0 to 2147483647. Default: 8192 JVM OPTIONS: ------------ -server Description: Use optimizing JIT compiler. -Xrs Description: Reduce the use of OS signals. Default: -Xms Description: Initial heap size. Default: 128m -Xmx Description: Maximum heap size. Default: 256m -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:+AggressiveOpts: Description: Turns on point performance optimizations that are expected to be default in upcoming releases. The changes grouped by this flag are minor changes to JVM runtime compiled code and not distinct performance features (such as Biased Locking and Parallel Old GC). This is a good flag to test the JVM engineering team's latest performance tweaks that you'll see in upcoming releases. (Available beginning in J2SE 5.0_06). -XX:LargePageSizeInBytes Description: Sets the large page size used for the Java heap. Default: 8m -XX:UseLargePages Description: Use large page memory. -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. 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" development Description: Is Jasper used in development mode? If true, the frequency at which JSPs are checked for modification may be specified via the modificationTestInterval parameter. Default: true trimSpaces: Description: Should white spaces in template text between actions or directives be trimmed? Default: false 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 JSWS 6.1SP5 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/server.xml: ------------------ per webserver instance Disable ACLFILE Description: References one or more ACL files. acceptorthreads Description: Number of acceptor threads for the listener. Default: 1