WebSphere Performance Tuning!_websphere

Source: Internet
Author: User
Tags aliases auth connection pooling system log web server operating system cpu usage websphere application server
Was configuration overview
Describes parameter default setting principles JVM Stack Server > Application Server > Server1 >java virtual machine has no minimum value of total memory 1/8, the maximum is total memory 1/2 to 3/4 connection pool resource > JDBC Provider > (jdb C provider Name) > Data source > (data source name) > Connection Pool Properties Minimum connection number: 10
Maximum number of connections: 50
TPV Monitoring connection Pool size change Curve Set statement cache resource > JDBC provider > (JDBC Provider name) > Data source > (data source name) > websphereapplication Server Data Source Properties &G T Statement Cache size 10 For example, CPU utilization is high and indicates a bottleneck, performance Advisors alert prepare statement cache Drop rate is high, indicating that the default value (10) is too small and needs to be increased to increase throughput JMS Pool resource JMS provider default messaging JMS Activation Specification Activation Specification name maximum batch size: None
Maximum and originator points: no analysis of Web container thread pool server > Application server > (server name) >
Thread pool > Webcontainer minimum Size: 10
Maximum size: 50 monitor Web container thread pool maximum by TPV (within acceptable time range), set EJB cache server > Application server > (server name) > EJB tell cache set > EJB cache setting > Cache large Small cache Size: 2053
Purge interval: 3000 For example through TPV monitoring found that Ejbstore () has a high call rate and CPU utilization is very low, can be based on the expected maximum active EJB instance set this value
Web Server Tuning Parameters
WebSphere Application Server provides plug-ins for several Web server brands and versions. Each WEB server operating system combination has specific tuning parameters that can affect application performance.
• IBM HTTP Server
IBM HTTP Server V6.0 is a multiple-process, multi-threaded server.
• Access Log
Description: Collects all incoming HTTP requests. Logging can degrade performance because the IO operation overhead results in a significant increase in logs over a short period of time.
How to view or set:
1. Open the IBM HTTP Server httpd.conf file, which is located in the directory ibm_http_server_root_directory/conf.
2. Search for lines containing text customlog.
3. Comment out this line by placing a # at the beginning of the line.
4. Save and close the httpd.conf file.
5. Stop and restart the IBM HTTP Server.
Default value: Enables logging of each incoming HTTP request.
Recommended value: Disables access logs.
maxclients
Description: The maxclients pseudo instruction controls the maximum number of simultaneous connections or users that the WEB server can provide at any time. When you use peak values, if your WEB server needs to support 200 active users immediately, you should set the MaxClients to 220 (200 extra 10% for the load increase). Setting the maxclients too low can cause some users to think that the WEB server is not responding. You should have enough RAM on your WEB server to support each connected client. For IBM HTTP Server V6.0 on Unix, you should allocate approximately 1.5MB maxclients RAM for use by IBM HTTP Server. For IBM HTTP Server V6.0 on Windows, you should allocate approximately 300KB maxclients RAM for use by IBM HTTP Server. Some third-party modules significantly increase the amount of RAM used by each connected client.
How to view or set up: Edit the maxclients pseudo directive in the IBM HTTP Server httpd.conf file, which is located in the directory ibm_http_server_root_directory/conf.
Default value: 150 Recommended value: The maximum number of users who are usually connected to your WEB server synchronously, additional buffer 10%. Note: The KeepAliveTimeout setting affects how long a user is connected to a WEB server.
minspareservers, Maxspareservers and Startservers
Description: Pre-allocate and maintain the specified number of processes to create and destroy a few processes when the load is close to the specified number of processes. Specifying a similar value reduces the CPU usage used to create and destroy the HTTPD process. It is not acceptable to adjust this parameter while waiting for IBM HTTP server to start more servers (so that it can process HTTP requests).
How to view or set: Edit the Minspareservers, maxspareservers, and startservers pseudo directives in the httpd.conf file, located in ibm_http_server_root_directory/ The Conf directory.
Default value: Minspareservers 5, Maxspareservers 10, Startservers 5
Recommended value: For best performance, specify the same value for the minspareservers and startservers parameters. If Maxspareservers is set to less than Minspareservers, then IBM HTTP Server resets maxspareserver=minspareserver+1. Setting the startservers too high can result in an exchange of low memory, thereby reducing performance.
Listenbacklog
Description: Sets the length of the suspend connection queue. When several clients request to connect to IBM HTTP Server and use all threads, one queue retains other client requests. However, if you use the default fast response cache accelerator (FRCA) feature of the IBM HTTP Server V6.0 on Windows, because FRCA has its own internal queues and does not use listenbacklog pseudo directives.
How to view or set: For non-frca: Edit IBM HTTP Server httpd.conf files. Then, add or view the listenbacklog pseudo directive.
Default value: frca,511 disabled for HTTP Server v6.0:1024 enabled FRCA
Recommended value: Use default values.
• IBM HTTP Server-linux
Maxrequestsperchild
Description: Sets the limit for the number of requests processed by a single child server process. After the number of requests reaches the value set for the Maxrequestsperchild parameter, the child process dies. Adjusting this parameter when destroying and creating a subprocess can degrade your WEB server performance.
How to view or set:
1. Edit the IBM HTTP server httpd.conf file, which is located in the ibm_http_server_root_directory/conf directory.
2. Change the value of the parameter.
3. Save the changes and restart the IBM HTTP server.
Default value: 500
Recommended value: Should normally be set to 0. Non-0 settings are useful if you observe that child memory usage is steadily growing over time. Memory leaks are sometimes observed in third-party modules and various OS run-time libraries used by IBM HTTP Server.
• IBM HTTP Server-windows 2000 and Windows 2003
Threadsperchild
Description: Sets the number of concurrent threads running at any time in IBM HTTP Server.
How to view or set up: Edit the IBM HTTP Server file (httpd.conf file), which is located in the directory ibm_http_server_root_directory/conf. Change the value of the parameter. Save the changes and restart the IBM HTTP Server.
There are two ways to find how many threads to use under the load state:
1. Use Windows 2000 and Windows 2003 Performance Monitor, which is located under the Desktop Start menu:
A. Right-click the status bar on the desktop. Click Task Manager.
B. Select the Process tab.
C. Click View > select Columns.
d. Select the thread count.
E. Click OK.
Process Tab Online Chenglie displays the number of threads per process (including Apache).
2. Use IBM HTTP server state (this option is available on all platforms and not limited to Windows):
. Edit the IBM HTTP Server httpd.conf file as follows: Remove comment characters from the following lines #: #LoadModule status_module, Modules/apachemodulestatus.dll, #< Location/server-status>, #SetHandler Server-status and #</location>.
A. Save the changes and restart the IBM HTTP Server.
B. In a Web browser, go to Url:http://yourhost/server-status. Other words
C. Click Reload to update the status.
D. (optional) If the browser supports refreshing, go to http://your_host/server-status?refresh=5 to refresh every five seconds. You will see five requests currently processing 45 idle servers.
Default value: 250 for IBM HTTP Server V6.0.
Recommended value: Set this value to avoid bottlenecks, which allow just enough traffic to pass through the application server.
o WEB Server configuration reload time interval
Description: Tracks changes to configuration information about WebSphere application Server resources. The WEB server needs to know some of this information, such as the Uniform Resource Identifier (URI) that points to the WebSphere Application Server resource. This configuration data is advanced to the WEB server through the WebSphere Application Server plug-in at the time interval specified by this parameter. Periodic updates add new servlet definitions without restarting any WebSphere application server servers. However, dynamic regeneration of such configuration information is expensive in terms of performance. Adjust this parameter in a stable production environment.
How to view or set: Use the Refresh configuration interval Web Server plug-in property to change the current setting for this parameter. In the admin console, click Server > Web server > Web_server_name > Plug-in properties.
Default value: The default reload time interval is 60 seconds.
Suggested value: Adds a reload interval for the value that represents an acceptable wait time between the servlet update and the WEB server update.
Connection Pooling Settings
The Management console page can be common to a range of resource types, such as the JDBC data source and the JMS queue connection factory. To view this page, determine the path based on the type of resource, but typically select an instance of the resource provider, select an instance of the resource type, and click the connection pool. For example: Click Resource > JDBC provider > Jdbc_provider > Data source > Data_source > Connection pool.
Configuration tab
Connection Timeout
Specifies the time interval, in seconds, after which the connection request times out and throws Connectionwaittimeoutexception.
This value indicates the number of seconds that a request connection waits when there is no connection available in the free pool or if a new connection cannot be created (typically because the number of connections in a particular connection pool reaches the maximum). For example, if the connection timeout is set to 300 and the maximum number of connections is in use, the pool manager waits 300 seconds for the physical connection to be used. If the physical connection is not available during this time, the pool manager generates a Connectionwaittimeout exception. In general, retrying the Getconnection () method is not available, and if you need a longer wait time, you should increase the connection timeout setting value. If the application catches a Connectionwaittimeout exception, the administrator should review the application connection pool usage required and adjust the connection pool and database accordingly.
If the connection timeout is set to 0, the pool manager is required to wait until the connection becomes available. This situation occurs when the application finishes the transaction and returns the connection to the pool, or when the number of connections drops below the maximum connection value (allowing new physical connections to be created).
If the maximum number of connections is set to 0 (allows unlimited number of physical connections), the connection timeout value is ignored.
Data type integral type
Per second
Default Value 180
Range 0 to largest integer
Maximum number of connections
Specifies the maximum number of physical connections that you can create in this pool.
These are physical connections to the back-end resources. Once this number is reached, the new physical connection is no longer created, and the requester waits until the current physical connection is returned to the pool or a Connectionwaittimeout exception is generated.
For example, if the value of the maximum number of connections is set to 5 and 5 physical connections are used, the pool manager waits for the time specified in the connection timeout until the physical connection is idle.
If the maximum number of connections is set to 0, the connection pool is allowed to grow indefinitely. This also has side effects that cause the connection timeout value to be ignored.
If multiple stand-alone application servers use the same data source, each application server has a pool. If you use clones, there is one data pool for each clone. When you configure the maximum number of connections for a database, it is important to know the number of data pools.
You can use the Tivoli performance Viewer to find the optimal number of connections in a pool. If the number of concurrent waits is greater than 0, but the CPU load is not close to 100%, consider increasing the connection pool size. Consider reducing the number of connections in the pool if the percent value is consistently below the normal workload.
Data type integral type
Default Value 10
Range 0 to largest integer
Minimum number of connections
Specifies the minimum number of physical connections to keep.
If the size of the connection pool is in the minimum connection pool size or is smaller than it, the timeout thread is not used to discard physical connections. However, the pool does not create a connection just to ensure that the minimum connection pool size is maintained. Similarly, if you set the aging timeout value, the connection with the expiration of the aging period is discarded, regardless of the minimum pool size setting.
Data type integral type
Default value 1
Range 0 to largest integer
Collection Time
Specifies the time interval, in seconds, between the running pool maintenance threads.
For example, if the collection time is set to 60, the pool maintenance thread runs every 60 seconds. The collection time interval affects the accuracy of unused timeout and aging time-out settings. The smaller the time interval, the greater the accuracy. If a pool maintenance thread is enabled, you should set the collection time value to less than the unused timeout and aging timeout values. When a pool maintenance thread runs, it discards any unused time that is longer than the time value specified in "Unused timeout" until it reaches the number of connections specified in the minimum number of connections. The pool maintenance thread also discards all connections that are longer than the time value specified in the aging timeout.
The collection time interval also affects performance. A shorter time interval means that the pool maintenance thread will run more frequently and degrade performance.
To disable the pool maintenance thread, the collection time setting is 0, or the unused timeout and aging timeout are set to 0. The recommended way to disable pooling maintenance threads is to set collection time to 0, in which case the unused timeout and aging timeout are ignored. However, if both the unused timeout and the aging timeout are set to 0, the pool maintenance thread runs, but only the physical connections that are timed out due to a non-0 timeout value are discarded.
Data type integral type
Per second
Default Value 180
Range 0 to largest integer
Timeout not used
Specifies the time interval, in seconds, after discarding unused or idle connections.
To optimize performance, setting the unused timeout value is higher than the Collect timeout value. If the current number of connections exceeds the minimum connection number setting, only unused physical connections are discarded. For example, if the timeout value is set to 120 and the pool maintenance thread is enabled (the collection time is not 0), then any physical connections that are not used for two minutes are discarded. Note that this timeout and performance accuracy are affected by the "collection Time" value. See "Collect time" for more information.
Data type integral type
Per second
Default Value 1800
Range 0 to largest integer
Aging timeout
Specifies the time interval, in seconds, before discarding the physical connection.
Physical connections that set the aging timeout to 0 support activities are kept in the pool indefinitely. To optimize performance, setting the aging timeout value is higher than the Collect timeout value. For example, if the aging timeout is set to 1200 and collection time is not 0, all physical connections that already exist for 1200 seconds (20 minutes) are discarded from the pool. Note that this timeout and performance accuracy are affected by the "collection Time" value. See "Collect time" for more information.
Data type integral type
Per second
Default value 0
Range 0 to largest integer

Data source Settings
Create a data source associated with the JDBC provider. Imagine a data source as a set of shared connections that must be used to manage transactions between applications and databases.
To view this Management console page, click Resource > JDBC provider > Jdbc_provider > Data source > New (if you want to create a new data source) or > data_source (if you want to view the established data source).
Note: If your application uses the Enterprise JavaBean (EJB) 1.1 or the Java Servlet 2.2 module, you must use the data source (V4) > Data_source console page.
Configuration tab
Name
Specifies the display name of the data source.
Valid characters for this name include letters and numbers, but they do not contain most special characters. For example, you can set the field to test the data source. But any beginning with a period (•) or containing special characters (\/,:; " * ? < > | The name of = + &% ' is not a valid name.
JNDI Name
Specifies the Java naming and Directory interface (JNDI) name.
The distributed computing environment often uses naming and directory services to obtain shared components and resources. The naming and directory service associates names with locations, services, information, and resources.
The naming service provides the name to the object map. The directory service provides information about the object and the search tools needed to locate those objects.
There are many naming and directory service implementations, and their interfaces are different. JNDI provides a common interface for accessing various naming and directory services.
For example, you can use the name jdbc/marksection.
If you leave this field blank, a JNDI name is generated from the name of the data source. For example, the Marksection data source name generates a jdbc/marksection JNDI name.
After you set this value, save it and restart the server, and you can see this string when you run the Dump namespace tool.
Container-managed persistence
Specifies whether this data source is used for container-managed persistence of Enterprise beans.
If this field is selected, a CMP connector factory corresponding to this data source is created for the relational resource adapter.
Data type check box
The default is enabled (the field has been selected.) )
Describe
Specifies the text description of the resource.
Data type String
Category
Specifies the category string that can be used to categorize or group resources.
Data type String
Data Memory Helper class name
Specifies the name of the Datastorehelper implementation class, which expands the ability of your selected JDBC driver implementation class to perform database-specific functions.
WebSphere Application Server provides a set of Datastorehelper implementation classes for each of the JDBC provider drivers that it supports. These implementation classes are in the package com.ibm.websphere.rsadapter. For example, if the JDBC provider is DB2, the default Datastorehelper class is Com.ibm.websphere.rsadapter.DB2DataStoreHelper. However, the Admin console page that you are viewing may make multiple Datastorehelper class names available in the Drop-down list, and be sure to select a class name that is required for your database configuration. Otherwise, your application may not run correctly. If you want to use a datastorehelper that is not displayed in the Drop-down list, select the specified user-defined datastorehelper and enter the standard class name. See the Information Center Topic Sample: Develop your own Datastorehelper class. ”
Data type Drop-down list or string (if a user-defined Datastorehelper is selected)
Important Data Source Properties
These properties are specific to the data source associated with the JDBC provider that you select. They are required for a data source, or are particularly useful for data sources. You can find the complete list of properties required by all supported JDBC providers in the topic "Vendor-specific data source minimum required settings" in the Information Center.
Authentication alias for component management
This alias is used for database authentication at run time.
Use component-managed authentication aliases only when application resource references are using Res-auth = Application.
If your database (for example, Cloudscape) does not support user identities and passwords, do not set aliases in the authentication alias for Component management field or the authentication Alias for container management field. Otherwise, you will see a warning message in the system log indicating that the user and password are not valid properties. (This message is only a warning message; the creation of the data source is still successful.) )
If you do not set an alias (component-managed or otherwise) and your database requires a user identity and password to get a connection, you receive an exception indirectly at run time.
Data type Drop-down List
Container-managed authentication alias (not recommended)
Specify authentication data (a string path to the user identity and password) for the login that is managed by the resource's container.
Note: Starting with WebSphere application Server V6.0, for Res-auth=container components, container-managed authentication aliases are replaced by the login configuration specification for resource reference mappings at deployment time.
Select from an alias defined under Security > JAAS configuration > J2c authentication data.
To define a new alias that does not yet appear in the selection list:
• Click Apply to display "related items".
• Click J2C Certified data entry.
• Define aliases.
• Click the connection factory name at the top of the J2C Certified Data entry page to return to the Connection Factory page.
• Select Alias.
Data type Drop-down List
Mapping configuration alias (not recommended)
Allows users to select from the security > JAAS configuration > Application login Configuration list.
Note: Starting with WebSphere application Server V6.0, for Res-auth=container components, the mapping configuration alias is replaced by the login configuration specification for resource reference mappings at deployment time.
The defaultprincipalmapping JAAS configuration maps authentication aliases to user identities and passwords. You can define and use other mapping configurations.
Data type Drop-down List
Authentication alias for XA recovery
This optional field is used to specify the authentication alias that should be used during XA recovery processing.
This field is not displayed if the resource adapter does not support XA transactions. The default value will come from the selected application authentication alias (if specified).
Using component-managed authentication aliases
Select this radio button to specify the alias to use for the authentication settings that are managed for the component during XA recovery.
Data type radio button
Specified:
Select this radio button to enable you to select an authentication alias from the Drop-down list of configured aliases.
Data type radio button
Thread pool Settings
Use this page to configure the thread groups that the application server uses. Requests are sent to the server through any HTTP transport channel or HTTP transport method. Thread pooling enables the server's components to reuse threads to eliminate the need to create new threads at run time. Create a new thread that consumes time and resources.
To view this Management console page, click the server > Application Server > Server_Name > Thread pool, and then select the thread pool. (You can get this page through multiple navigation routes.) )
Configuration tab
Minimum size
Specifies the minimum number of threads allowed in the pool.
Data type integral type
Default Value 10
Maximum size
Specifies the maximum number of threads allowed in the pool.
If the Tivoli performance Viewer displays the maximum percentage measure to always remain in double digits, consider increasing the maximum size. The maximum percentage measure indicates the number of times the configured thread was used. If multiple concurrent clients are connected to the server-side ORB, increase the size to support up to 1000 clients.
Data type integral type
Default Value 50
Recommendation 25 (on Linux system)
Thread Inactivity Timeout
Specifies the number of inactive milliseconds that should elapse before the thread is retracted. A value of 0 indicates that not waiting but negative (less than 0) means waiting forever.
Note: The admin console does not allow you to set the inactivity timeout to a negative number. To perform this operation, you must modify the value directly in the Server.xml file.
Data type integral type
Unit milliseconds
Default Value 3500
Allow threads to allocate more than the maximum thread size
Specifies whether the number of threads can be increased to more than the maximum size configured for the thread pool.
Data Type Boolean
The default value is not enabled (FALSE)

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.