* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download IBM WebSphere Portal Version 5.1 Tuning Guide
Extensible Storage Engine wikipedia , lookup
Open Database Connectivity wikipedia , lookup
Concurrency control wikipedia , lookup
Microsoft Jet Database Engine wikipedia , lookup
Ingres (database) wikipedia , lookup
Relational model wikipedia , lookup
Oracle Database wikipedia , lookup
Microsoft SQL Server wikipedia , lookup
Database model wikipedia , lookup
WebSphere Portal Version 5.1 Tuning Guide JANUARY 2005 IBM WebSphere Portal Version 5.1 Tuning Guide Document version 2.0 IBM WebSphere Portal Performance Team Contents PERFORMANCE TUNING THE ENVIRONMENT ............................................................................................................................... 5 Understanding the Environment ........................................................................................................................................... 5 Application Server Tuning..................................................................................................................................................... 5 Additional notes: JVM max Heap Size Limits............................................................................................................... 10 Additional notes: AIX.................................................................................................................................................... 11 Application Server Cloning........................................................................................................................................... 12 Database Server Tuning..................................................................................................................................................... 12 IBM DB2 Enterprise Edition Database Parameter Tuning ........................................................................................... 12 Oracle Enterprise Edition Database Parameter Tuning ............................................................................................... 14 Microsoft Sql Server Database .................................................................................................................................... 16 Other Database Considerations................................................................................................................................... 17 Directory Server Tuning...................................................................................................................................................... 17 Web Server Tuning Tips ..................................................................................................................................................... 18 Security ............................................................................................................................................................................................... 19 Security Filters ............................................................................................................................................................. 19 Dereferencing Aliases .................................................................................................................................................. 19 Operating System Specific ................................................................................................................................................. 19 Network Tuning................................................................................................................................................................... 20 Solaris Networking ....................................................................................................................................................... 20 AIX Networking ............................................................................................................................................................ 22 Windows Networking.................................................................................................................................................... 22 WebSphere Portal Service Properties................................................................................................................................ 23 Appendix A. References ................................................................................................................................................................ 24 Appendix B. Additional Performance Tuning Guides..................................................................................................................... 25 Figure Table 1 WebSphere Portal Service Properties 23 2 WEBSPHERE PORT AL V5.1 TUNING GUIDE ABOUT THIS DOCUMENT The purpose of this white paper is to provide guidelines for both capacity planning, base parameter and application tuning for IBM WebSphere Portal for Multiplatforms V5.1. Tuning and capacity are affected by many factors, including the workload scenario and the performance test environment. For tuning, the objective of this paper is not to recommend the use of the specific set of parameters, but to report the parameters that made the most performance impact in our testing. When tuning your individual systems, begin with a baseline test and monitor the performance statistics to determine if any parameters should be added or changed. This white paper provides: Performance tuning hints for configuring resources to scale WebSphere Portal and required backends to achieve optimal performance. 3 WEBSPHERE PORT AL V5.1 TUNING GUIDE 4 WEBSPHERE PORT AL V5.1 TUNING GUIDE 1 PERFORMANCE TUNING THE ENVIRONMENT Understanding the Environment WebSphere Portal V5.1 can make use of several additional servers to provide its functionality. In our test environment, there is a database server and directory server in addition to the portal server itself. For maximum performance, the different backend servers should reside on separate systems from the WebSphere Portal system. The primary benefit of having such a configuration is to avoid resource contention from multiple servers residing on a single server. Backend servers sharing the WebSphere Portal application resources would impact the amount of throughput we could achieve. Backend servers for WebSphere Portal in our configuration are: 1. a remote database server for the WebSphere Portal database (WPS). 2. a remote database server for the session database if Workload Management is used. 3. a remote LDAP directory server. Application Server Tuning Because of its close relationship with the base WebSphere Application Server product, tuning the WebSphere Portal application server primarily entails tuning WebSphere Application Server. This section will not cover every possible tuning parameter available for WebSphere Application Server. Instead, we will present recommendations stemming from performance 5 WEBSPHERE PORT AL V5.1 TUNING GUIDE impacts experienced by our team. For more details on tuning WebSphere Application Server, see the Tuning Section of the InfoCenter located at http://www-3.ibm.com/software/webservers/appserv/was/library/ The following are settings based on our experience with the Benchmark Work Load: CROSS-PLATFORM TUNING PARAMETERS: HIGH PRIORITY Parameter Setting Additional Details Java Virtual Machine heap size 1 GByte or more Set the JVM heap size larger than 256MB. We used 1.4GB on Windows, and 1.5GB on AIX and Solaris. Also, remember that the value for the JVM heapsize is directly related to the amount of physical memory for the system. Never set the JVM heap size larger than the physical memory on the system. How-To Set Parameter: Logon to WebSphere Administrative Console Servers Application Servers WebSphere Portal Process Definition Java Virtual Machine - Initial Heap Size - Maximum Heap Size *See Additional Notes: JVM Max Heap Size Limits Session timeout The default value of Session Timeout is 30 minutes. Reducing this value to a lower number can help reduce memory consumption requirements, allowing a higher user load to be sustained for longer periods of time. Reducing the value too low can interfere with the user experience. 10 minutes How-To Set Parameter: Logon to WebSphere Administrative Console Servers Application Servers WebSphere Portal Web Container Session Management Session Timeout - Set Timeout 6 WEBSPHERE PORT AL V5.1 TUNING GUIDE Data source connection pool size for WPS database For Windows the minimum pool size was set to 10 and the maximum to 50. 50 max For both Solaris and AIX the mimimum and maximum were set to 50. How-To Set Parameter: Logon to WebSphere Administrative Console Resources JDBC Providers Data Sources wpsdbDS - Minimum connections - Maximum connections wpsdbJDBC Connection Pools ADDITIONAL CROSS-PLATFORM TUNING PARAMETERS Class Garbage Collection Using the “-Xnoclassgc” parameter will allow for more class reuse, thus causing less garbage collections to occur. -Xnoclassgc How-To Set Parameter: Logon to WebSphere Administrative Console Servlet engine thread pool size Servers Application Servers WebSphere Portal Process Definition Java Virtual Machine Generic JVM arguments - {add} -Xnoclassgc For Windows the minimum thread pool was set to 10 and the maximum to 50. 50 max For both Solaris and AIX 70 was used for both the minimum and maximum settings. Ideally, set this value and monitor the results using the Tivoli Performance Viewer. Increase this value if all the servlet threads are busy most of the time. How-To Set Parameter: Logon to WebSphere Administrative Console Servers Application Servers WebSphere Portal Web Container Thread Pool - Minimum size threads - Maximum size threads 7 WEBSPHERE PORT AL V5.1 TUNING GUIDE Statement cache size for WPS database Increase the Statement Cache Size used by the wpsdbDS data source. We set this value to 150. The statement cache can be monitored using the Tivoli Performance Viewer, to check if it is large enough. 150 How-To Set Parameter: Logon to WebSphere Administrative Console Resources JDBC Providers Data Sources wpsdbDS - Statement Cache Size wpsdbJDBC For Windows, Solaris and AIX the minimum pool size was set to 1 and the maximum to 10, the default values. 1 or more Data source connection pool size for WMM database Note that in our tests, we were using an LDAP server without a lookaside database. In configurations using a database user registry or a lookaside database, this connection pool size may need to be increased. How-To Set Parameter: Logon to WebSphere Administrative Console Resources JDBC Providers wpsdbJDBC Data Sources wmmdbDS Connection Pools - Minimum connections - Maximum connections We set this value to 50 for windows and to 10 for Solaris and for AIX. The statement cache can be monitored using the Tivoli Performance Viewer, to check if it is large enough. 10 or more Statement cache size for WMM database Note that in our tests, we were using an LDAP server without a lookaside database. In configurations using a database user registry or a lookaside database, this prepared statement cache size may need to be increased. How-To Set Parameter: Logon to WebSphere Administrative Console Resources JDBC Providers Data Sources wmmdbDS - Statement Cache Size 8 WEBSPHERE PORT AL V5.1 TUNING GUIDE wpsdbJDBC SOLARIS-SPECIFIC TUNING PARAMETERS The “server” mode offers substantially higher throughput than the “client” mode. HotSpot option -server How-To Set Parameter: Logon to WebSphere Administrative Console Servers Application Servers WebSphere Portal Process Definition Java Virtual Machine Generic JVM arguments - {add} -server Garbage collection tuning: NewSize and MaxNewSize To help optimize Java garbage collection duration and frequency, we set the parameters -XX:NewSize and XX:MaxNewSize to 200 MB. 200M How-To Set Parameter: Logon to WebSphere Administrative Console Servers Application Servers WebSphere Portal Process Definition Java Virtual Machine Generic JVM arguments - {add} -XX:NewSize=200M - {add} -XX:MaxNewSize=200M Garbage collection tuning: SurvivorRatio To help optimize Java garbage collection duration and frequency, we set the parameter -XX:SurvivorRatio to 12. 12 How-To Set Parameter: Logon to WebSphere Administrative Console Servers Application Servers WebSphere Portal Process Definition Java Virtual Machine Generic JVM arguments - {add} -XX:SurvivorRatio=12 To help garbage collection concurrently with the execution of the application. Garbage Collection Tuning: Concurrent Low Pause Collection How-To Set Parameter: Logon to WebSphere Administrative Console Servers Application Servers WebSphere Portal Process Definition Java Virtual Machine Generic JVM arguments - {add} -XX:UseConcMarkSweepGC 9 WEBSPHERE PORT AL V5.1 TUNING GUIDE AIX-SPECIFIC TUNING PARAMETERS How-To Set Parameter: Logon to WebSphere Administrative Console JIT Compiler Option Servers -> WPS -> Process Definition -> Environment Entries-> Remove the following parameter from the list of environment settings: (JITC_COMPILEOPT=NCHA{db2j/*}{*}) This setting disables an optimization made by the JVM’s just-in-time (JIT) compiler. This reduces performance of all code running in the application server. This setting is not needed on systems using a database other than Cloudscape. Since we used other databases in our performance runs, we removed this setting. Changes the garbage collection policy used by the JVM storage manager. -Xgcpolicy: subpool Garbage Collection Policy How-To Set Parameter: Logon to WebSphere Administrative Console Servers Application Servers WebSphere Portal Process Definition Java Virtual Machine Generic JVM arguments - {add} -Xgcpolicy:subpool A D D I T I O N A L N O T E S : J V M M A X H E A P S I Z E L I M I T S When setting the heap size for an application server, keep the following in mind: • Make sure that the system has enough physical memory for all of the processes to fit into physical memory, plus enough for the operating system. When more memory is allocated than the physical memory in the system, paging will occur, and this can result in very poor performance. • While we set the minimum and maximum heap sizes to the same values, this may not be the best choice for production systems which are running on IBM JDKs. In our measurement runs, the system is under load for a relatively short time (around 3 hours), and it is running with portlets which do not have large memory requirements. When using portlets which will have larger memory requirements, or for continuous operation, it may be possible to reduce heap fragmentation by setting the initial heapsize to 128 megabytes. 10 WEBSPHERE PORT AL V5.1 TUNING GUIDE • • • After doing any tuning of heap sizes, monitor the system to make sure that paging is not occurring. As mentioned above, paging can cause poor performance. 32-bit operating systems have an address space limit of 4GBytes, regardless of the amount of physical memory in the system. This limits the maximum size of each individual process in the system. In addition, some operating systems restrict the size of processes to be even less than this limit: o Many versions of Windows limit processes to 2GBytes in size; you can find more information at http://support.microsoft.com/default.aspx?scid=kb;en-us;555223. o Many 32-bit Linux kernels default to a 2GByte limit for processes. The address space limit further restricts the size of the JVM process. If the process grows larger than the limit imposed by the operating system, it may terminate unexpectedly. Our experience on Windows led us to choose a heap size of 1430Mbytes. The heap size may need to be smaller than this, depending on your application; for example, applications which use large native code libraries may need smaller JVM heap sizes to stay under that limit. For more information, see the WebSphere Application Server information center. A D D I T I O N A L N O T E S : A I X By default, the application server will not start on AIX with a heap size larger than 1GB. To allow a larger JVM heap size, set the environment variable LDR_CNTRL=MAXDATA=0xn0000000 where n is the number of segments you need. For a 2GB heap, use n=2. For 1792MB, use n = 3 and so on. For example, for a 1.5 GB heap: LDR_CNTRL=MAXDATA=0x40000000 How-To Set Parameter: Logon to WebSphere Administrative Console Servers Application Servers WebSphere Portal Entries New name: LDR_CNTRL value: MAXDATA=0x40000000 11 WEBSPHERE PORT AL V5.1 TUNING GUIDE Process Definition Environment A P P L I C A T I O N S E R V E R C L O N I N G One rule of thumb is not to just blindly add clones onto the environment. The best way is to begin by performance testing with one instance of the application server and then measure the throughput and system’s resource utilization. For configuring a vertical clone, if the CPU is utilized 85% (or more), it is better not to add an additional clone. Thus, it is hard to pinpoint the number of horizontal or vertical clones any one environment will need without doing extensive tests. Overall, workload management does indeed provide a huge impact in trying to meet your overall performance objectives. Database Server Tuning In WebSphere Portal V5.1, several backend database servers are required for core functionality. These servers include database server for the application databases and a database server for the user registry. In our lab, another database server we rely on is a Lightweight Directory Access Protocol (LDAP) user repository. I B M D B 2 E N T E R P R I S E E D I T I O N D A T A B A S E P A R A M E T E R T U N I N G For our testing we used IBM DB2 Enterprise Edition V8.1 Fixpack 6 as our database server for the AIX and Windows platforms. Here are the specified parameters and values used in our environment for the WPS database To update a configuration parameter, issue the command. db2 update db config for <database alias> using <db parameter> <value> DB2 Tuning Parameter Windows AIX Maxappls 75 75 buffpage 2500 2500 dbheap 4000 4000 12 WEBSPHERE PORT AL V5.1 TUNING GUIDE sortheap 4000 4000 maxlocks 40 40 num_iocleaners 7 11 num_ioservers 7 11 DB2 Tuning Parameters Specified in the WebSphere Portal 5.1 InfoCenter applheapsz 16384 app_ctl_heap-sz 8192 stmtheap 60000 locklist 400 indexrec RESTART logfilsz 1000 logprimary 12 logsecond 10 DB2_RR_TO_RS YES DB2_INLIST_TO_NLJN=YES YES DB2_EVALUNCOMMITTED YES The JCR, Likeminds and Feedback databases use the tuning parameters specified in the WebSphere Portal 5.1 InfoCenter with respect to creating and tuning databases. We create but do not apply additional tuning to these databases in our testing, in an actual production environment these databases should be tuned appropriately. Additional point of consideration for database tuning include: Reorganize the tables in the database periodically. When a row in a table is deleted, the space occupied by the row is not necessarily reclaimed until The table is reorganized. Perform the following command on each database: db2 reorgchk update statistics on table all This scans the tables and index space to gather information of space and efficiency of indexes. This information is stored in the DB2 catalog and used by the SQL optimizer to select access paths to data. The reorgchk utility then produces a report recommending which tables should be reorganized. To reorganize any of the listed 13 WEBSPHERE PORT AL V5.1 TUNING GUIDE tables, issue db2 reorg table <table-name> the command: Ensure that the database server has an adequate number of disks. In our testing, we used from 4 to 8 drives. Also, if possible, due to constant logging from the databases, dedicate the database logs to a separate disk(s) from where the physical databases reside. Ensure that your parameter MaxAppls is greater than the total number of connections for both the datasource and the session manager for each WebSphere Portal application server clone. For example, MaxAppls > total datasource connection Use SMS table space type for DB2 temporary table spaces for systems which have nested queries. Failure to follow this recommendation could result in excessive time spent in buffer writes on UPDATES and other SQL requests which require nested queries, as well as excessive disk utilization on the DB2 server. O R A C L E E N T E R P R I S E E D I T I O N D A T A B A S E P A R A M E T E R T U N I N G For our Solaris testing, we used Oracle 9i as our database server for the WPS database. A well designed database is prefered and can minimize future problems. Although the Oracle Database Creation Assistant GUI provides a straightforward method to create databases, Oracle recommands manual creation for larger databases. The Oracle Administration Guide provides useful information related to database design. The following were implemented in our Oracle database. • Use Oracle Managed File (OMF) feature to let Oracle database automatically manage all file-related database operations. Use DB_CREATE_FILE_DEST and DB_CREATE_ONLINE_LOG_DEST_n initialization parameters to enable OMF. • Use Automatic Undo Management feature to simplify the management of rollback or undo changes to the database. If you use the rollback segment method, you are said to be operating in the manual undo management, the UNDO tablespace eliminates the complexities of managing rollback segment space. Specify UNDO_MANAGEMENT=AUTO initialization parameter and UNDO TABLESPACE in CREATE DATABASE statement to enable auto UNDO management. • Create Locally Managed tablespace which use bitmaps (instead of data dictionary) to track used and free space for better performance. For SYSTEM tablespace, specify EXTENT MANAGEMENT LOCAL in CREATE DATABASE statement. For regular tablespace, set COMPATIBLE initialization parameter to 9.0.0 or higher. • Create TEMPORARY tablespace to improve the concurrence of sort operation. Specify DEFAULT TEMPORARY TABLESPACE in CREATE DATABASE statement. 14 WEBSPHERE PORT AL V5.1 TUNING GUIDE For example: sqlplus> CREATE DATABASE wps51 DEFAULT TEMPORARY TABLESPACE temptbs UNDO TABLESPACE undotbs NATIONAL CHARACTER SET “UTF8” EXTENT MANAGEMENT LOCAL; • Create tablespace to use AUTO segment space management for simpler and more efficient way of managing space. Specify SEGMENT SPACE MANAGEMENT AUTO in create tablespace statement. For example: sqlplus> CREATE TABLESPACE wps51tbs SEGMENT SPACE MANAGEMENT AUTO; Below is a list of tuning applied on the Oracle database server: 1. Here are the specified parameters and values used in our environment for the WPS database. To set the following values , issue the command: Alter system set <db parameter>= <value> scope=spfile; Oracle Tuning Parameters processes 350 db_writer_processes 20 open_cursors 1600 db_cache_size 134217728 shared_pool_size 603979776 log_buffer 52428800 pga_aggregate_target 100663296 sga_max_size 1294962440 2. Set INITRANS to improve concurrent updates. We issue the commands prior to populate data into database to ensure it is set for all blocks of the object. To set the following values , issue the command: Alter table <wpsdbuser>.<db table> initrans <value>; DB Table Value user_desc_state 20 15 WEBSPHERE PORT AL V5.1 TUNING GUIDE user_desc 20 3. Because we ran Oracle on Solaris, we made the following kernel settings in /etc/system. To update the values, , issue the command: set <parameter> = <value> Parameter Value semsys:seminfo_semvmx 32767 shmsys:shminfo_shmmax 0xffffffff shmsys:shminfo_shmseg 16 shmsys:shminfo_shmmni 300 semsys:seminfo_semmns 2048 semsys:seminfo_semmsl 1024 semsys:seminfo_semopm 200 Along with the above database parameter changes, there are several other consideration needed for the database: • System statistics enable the optimizer to choose the most efficient plan. We run the following command to gather system statistics periodically. sqlplus> execute dbms_stats.gather_database_stats(dbms_stats.auto_sample_siz e,method_opt=>’FOR ALL INDEXED COLUMNS SIZE AUTO’, cascase=>TRUE); Ensure that the database server has an adequate number of disks. In our testing, we used 10 drives. Also, if possible, due to constant logging from the databases, dedicate the database logs to a separate disk(s) from where the physical databases reside. M I C R O S O F T S Q L S E R V E R D A T A B A S E This report does not include measurements for WP5.1 with SQL Server, however our expereince shows that the WebSphere Embedded JDBC Connect Driver provides better performance behavior over Microsoft JDBC Driver SP3. 16 WEBSPHERE PORT AL V5.1 TUNING GUIDE O T H E R D A T A B A S E C O N S I D E R A T I O N S WebSphere Portal uses several databases to maintain information about portal visitors. The size of the database tables does not remain constant in a running portal. For example, the first time a user visits the portal, an entry is added to one of the database tables. When places, pages, or access permissions are created, additional table entries are created. This is done automatically on the user's behalf and is part of the normal portal server processing. However, this can have an impact on performance. The performance of relational databases will typically decline as tables grow unless the tables are periodically reorganized. So that the data shown in this paper is indicative of WebSphere Portal’s performance, and not limited by database performance, the databases are preloaded before the performance tests are run. This is done by running a LoadRunner script which logs in and then logs out each user defined in our test environment. Then the portal application server is stopped and all of the database tables are reorganized. Any performance testing of WebSphere Portal which uses more than 1000 unique users will need to follow a similar procedure to populate WebSphere Portal’s database tables, or else sub-optimal performance will be seen. Directory Server Tuning All of our tests used IBM Directory Server 5.1, running on AIX, as the directory server. IBM Directory Server also uses a database as its storage mechanism. This database is typically located on the same system as the directory server. In our environment, the IBM DB2 Enterprise Server served as the storage for the user information. Below are the configuration changes made in our environment: DATABASE BUFFER POOL SIZES IBMDEFAULTBP AIX 29500 SOLARIS 59000 WIN 29500 LDAPBP 1230 2480 1230 150000 150000 150000 15 100 250000 250000 250000 15 7500 25000 25000 25000 15 100 4 4 This buffer pool uses a 4Kbyte page size. This buffer pool uses a 32Kbyte page size. IDS PARAMETERS Ibm-slapdACLCacheSize Ibm-lapdEntryCacheSize Ibm-slapdFilterCacheSize Ibm-slapdDbConnections Ibm-slapdFilterCache BypassLimit These five values are in the file /usr/ldap/etc/ibmslapd.conf. Restart the LDAP server after changing these values. AIX ENVIRONMENT VARIABLES MALLOCMULTIHEAP 4 17 WEBSPHERE PORT AL V5.1 TUNING GUIDE All of these values are set in the SPINLOOPTIME RDBM_CACHE_SIZE Not Set Not Set Not Set Not Set 650 128000 file /etc/environment. Web Server Tuning Tips We applied the following changes to the IBM HTTP 1.3.28.1 Server configuration file Setting AIX Solaris WIN Discussion KeepAliveTimeout (seconds) 5 5 5 This value is less than the think time defined in our scripts to ensure that testing is conservative. Each user is assumed to open a new TCP connection for each page view. However, in a live environment, it can be helpful to increase the Keep-Alive Timeout. A higher Keep-Alive Timeout may increase contention for HTTP server processes, if you are running out of HTTP processes, decrease this value. MaxClients (AIX/Solaris) or 850 850 500 on on off On the Windows platform the available TCP sockets were exhausted, to resolve this problem KeepAlive was disabled. An alternative solution would be to move the HTTP server to a separate system. MaxKeepAliveRequests 0 0 0 This will allow an unlimited number of requests on a single TCP connection. MaxRequestsPerChild 0 0 0 StartServers 300 350 NA This will make a large pool of servers ready at the beginning of the test Access logging off off off This was turned off by commenting out the following configuration line: CustomLog /usr/HTTPServer/logs/access_log common ThreadsPerChild (Windows) KeepAlive 18 WEBSPHERE PORT AL V5.1 TUNING GUIDE One option to reduce contention on the WebSphere Portal system is to install the web server on a different system than portal application server. In this environment, where both the web server and the database servers are remote, the portal server does not have to contend with these processes for system resources. We also enabled the server-status module so that we could monitor the number of running and available Web server processes. This enables appropriate tuning of the MaxClients or ThreadsPerChild parameters. Security S E C U R I T Y F I L T E R S The default filter generated by the WebSphere Portal installation uses the most recommended filters for both IBM Directory Server and Lotus Domino Directory. If you are using an LDAP directory different than the ones stated above or if you choose to modify the default filters for IBM Directory Server or Domino directories, please consider the possible performance impact when designing filters for your environment: Group Filter: (&(cn=%v)(objectclass=groupOfUniqueNames))) Group Member ID Map: ibm-allGroups:member;ibm-allGroups:uniqueMember How-To Set Parameter: Logon to WebSphere Administrative Console Security User Registries LDAP - Group Member ID Map D E R E F E R E N C I N G Advanced LDAP Settings A L I A S E S If your LDAP directory is not configured with any aliases to objects (versus direct access to objects), it is beneficial to set a JNDI property to never dereference aliases. In the “<was_root>/properties/jndi.properties,” file, where <was_root> represents the WebSphere Application Server home, set the parameter java.naming.ldap.derefAliases=never. If jndi.properties file is not created, create one with the above changes. In WP5.1, this is now a default setting Operating System Specific 19 WEBSPHERE PORT AL V5.1 TUNING GUIDE File Descriptors: For UNIX sytems. This specifies the number of open files permitted. If this value is set too low, a memory allocation error will occur on AIX and a too many files open will be logged to the to the stderr log file. Set this value higher than the default system value. For large SMP machines with clones, set to unlimited. The file descriptor variable must be set in the same window as the WebSphere adminserver is started. To display the current value, use the command ulimit –a To change to a different value, use the command ulimit –n <new_value> Kernel Parameters: For Solaris platform, we updated some of the operating system’s kernel parameters. • semsys:seminfo_semume: This parameter limits the max semaphore undo entries per process. We set the value to 1024. • semsys:seminfo_semopm: This specifies maximum number of System V semaphore operations per semop(2) call. We set this parameter to 16384. These parameters can be added or updated in your /etc/system file. It is a good practice to always backup the original copy prior to making changes. Reboot the system for the changes to take effect. Network Tuning In any production environment, the network must be closely monitored to ensure that its performance is acceptable and consistent. Based on our private switched 100MB Ethernet on a 1GB backbone, we modified the following network parameters. Please note that, the following is not to suggest that all network parameters are set to these values, but merely make the reader aware that the network is also an entity in the performance environment and bottleneck resolution process. S O L A R I S N E T W O R K I N G For Solaris, use the ndd command to set the following TCP layer parameters. These will take effect immediately, improving the network layer performance in high-volume environments. To make these changes permanent, add these statements to the /etc/rc.2/S69inet file. We used the following settings: • /usr/sbin/ndd -set /dev/tcp tcp_time_wait_interval 60000 • /usr/sbin/ndd -set /dev/tcp tcp_conn_req_max_q0 16192 20 WEBSPHERE PORT AL V5.1 TUNING GUIDE • /usr/sbin/ndd -set /dev/tcp tcp_conn_req_max_q 16192 • /usr/sbin/ndd -set /dev/tcp tcp_rexmit_interval_initial 500 • /usr/sbin/ndd -set /dev/tcp tcp_rexmit_interval_min 200 • /usr/sbin/ndd -set /dev/tcp tcp_rexmit_interval_max 4000 • /usr/sbin/ndd -set /dev/tcp tcp_ip_abort_interval 60000 • /usr/sbin/ndd -set /dev/tcp tcp_keepalive_interval 90000 • /usr/sbin/ndd -set /dev/tcp tcp_smallest_anon_port 1024 • /usr/sbin/ndd -set /dev/tcp tcp_slow_start_initial 2 • /usr/sbin/ndd -set /dev/tcp tcp_deferred_ack_interval 50 • /usr/sbin/ndd -set /dev/tcp tcp_xmit_hiwat 65536 • /usr/sbin/ndd -set /dev/tcp tcp_recv_hiwat 65536 In addition the following network parameter tuning should be applied to improve performance. In /etc/system the following three lines should be added on each of the app servers and web servers. Additional Network Tuning Parameters rlim_fd_cur rlim_fd_max 8192 Initial File Descriptor (default 256) 65536 Maximum File Descriptor (default 1024) This parameter defines the maximum number of open files allowed. Consider a value of at least 2 * tcp_conn_req_max or 2 * rlim_fd_cur if greater. The predicate is required to be rlim_fd_cur <= 21 WEBSPHERE PORT AL V5.1 TUNING GUIDE rlim_fd_max. 262144 (default 256) This parameter helps quickly locate TCP data structure in the kernel. If the default is exceeded, a slow linear search is required. tcp_conn_hash_size A I X N E T W O R K I N G For AIX, use the no command to set the following TCP layer parameters. These will take effect immediately, improving the network layer performance in high volume environments. • /usr/sbin/no -o tcp_sendspace=65536 • /usr/sbin/no -o tcp_recvspace=65536 • /usr/sbin/no -o udp_sendspace=65536 • /usr/sbin/no -o udp_recvspace=65536 • /usr/sbin/no -o somaxconn=10000 • /usr/sbin/no -o tcp_nodelayack=1 To make these changes permanent, add these statements to the /etc/rc.net file. W I N D O W S N E T W O R K I N G The following registry settings were made in the section HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Paramet ers • MaxFreeTcbs = dword:00011940 • MaxHashTableSize = dword:0000ffff • MaxUserPort = dword:0000fffe • TcpTimedWaitDelay = dword:0000001e 22 WEBSPHERE PORT AL V5.1 TUNING GUIDE WebSphere Portal Service Properties The following lists several available WebSphere Portal parameters that should be modified according to your expected workload and the dynamics of your environment. All property files are located under <wproot>/shared/app/config/services directory. Table 1 WebSphere Portal Service Properties W E B S P H E R E P O R T A L S E R V I C E P R O P E R T I E S PARAMETER Value we used DEFINITION PROPERTY FILE NAME public.expires (seconds) 3600 Determines cache expiration time for the unauthenticated portal page. NavigatorService.properties public.reload (seconds) 3600 Determines cache expiration time for the portal internal cache NavigatorService.properties remote.cache.expiration (seconds) 28800 NavigatorService.properties Access control cache lifetimes (seconds) 3600 Determines cache expiration for caches outside of portal server for authenticated as well as for unauthenticated pages This applies to all of the access control caches. For additional details see the copy of the sample cache file in Appendix E. CacheManagerService.properties In addition for all platforms the following parameters should be set in the file <wproot>/wmm/wmm.xml Parameter Value dirContextsMaxSize 20 dirContextsMinSize 5 dirContextTimeToLive -1 23 WEBSPHERE PORT AL V5.1 TUNING GUIDE Appendix A. References Oracle Corporation. Oracle Technology Network. http://www.oracle.com/technology/index.html IMPORTANT LINKS Portal Infocenter http://www-106.ibm.com/developerworks/websphere/zones/portal/proddoc.html Tuning Section of the InfoCenter located at http://www-3.ibm.com/software/webservers/appserv/was/library/ . 24 WEBSPHERE PORT AL V5.1 TUNING GUIDE Appendix B. Additional Performance Tuning Guides For additional performance tuning documentation, review the following websites: http://www.redbooks.ibm.com/redbooks/SG246153.html http://www.ibm.com/software/webservers/appserv/ws_bestpractices.pdf IBM WebSphere Portal Version 5.1 Benchmark and Tuning Guide for Document Manager WebSphere Scalability: WLM and Clustering http://www.redbooks.ibm.com/redbooks/SG246153.html WebSphere Application Server Development Best Practices for Performance and Scalability http://www.ibm.com/software/webservers/appserv/ws_bestpractices.pdf 25 WEBSPHERE PORT AL V5.1 TUNING GUIDE Thanks to the following team members of the WebSphere Portal Performance Team for contributing to this white paper. Mark Alkins, Manager Ruthie Lyle, Report Coordinator Andrew Citron, Dionne White, Laura Yen, Martin Presler-Marshall, Richard Hall, Sharda Nandula, Susan Hanis, Terence Walker 26 WEBSPHERE PORT AL V5.1 TUNING GUIDE ® Copyright IBM Corporation 2005 IBM United States of America Produced in the United States of America All Rights Reserved The e-business logo, the eServer logo, IBM, the IBM logo, IBM Directory Server, DB2, Lotus and WebSphere are trademarks of International Business Machines Corporation in the United States, other countries or both. Lotus and Domino, are trademarks of Lotus Development Corporation and/or IBM Corporation. The following are trademarks of other companies: Solaris, Java and all Java-based trademarks and logos are trademarks of Sun Microsystems, Inc. in the United States, other countries or both. Windows and Windows 2000 Server are trademarks of Microsoft Corporation in the United States and/or other countries Oracle 9i and all Oracle-based trademarks and logos are trademarks of the Oracle Corporation in the United States, other countries or both. LoadRunner is a trademark of Mercury Interactive in the United States and/or other countries. Other company, product and service names may be trademarks or service marks of others. INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS PAPER “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Some states do not allow disclaimer of express or implied warranties in certain transactions, therefore, this statement may not apply to you. Information in this paper as to the availability of products (including portlets) was believed accurate as of the time of publication. IBM cannot guarantee that identified products (including portlets) will continue to be made available by their suppliers. This information could include technical inaccuracies or typographical errors. Changes may be made periodically to the information herein; these changes may be incorporated in subsequent versions of the paper. IBM may make improvements and/or changes in the product(s) and/or the program(s) described in this paper at any time without notice. Any references in this document to non-IBM web sites are provided for convenience only and do not in any manner serve as an endorsement of those Web sites. The materials at those Web sites are not part of the materials for this IBM product and use of those Web sites is at your own risk. IBM may have patents or pending patent applications covering subject matter described in this document. The furnishing of this document does not give you any license to these patents. You can send license inquiries, in writing, to: IBM Director of Licensing IBM Corporation North Castle Drive Armonk, NY, USA 10504-1785