This chapter describes how to tune your Oracle Communications Calendar Server deployment.
The Calendar Server logging function is I/O intensive. For optimal performance, decrease the log level to WARNING. Another option is to store the log directory on a fast storage system, such as a solid-state (SSD) system.
To change the log level:
davadmin config modify -o log.dav.errors.loglevel -v WARNING davadmin config modify -o log.dav.commands.loglevel -v WARNING
The following GlassFish Server configuration is for a medium-sized deployment. Adjust the values accordingly for your deployment.
-XX:+UseParallelOldGC -XX:ParallelGCThreads=6 -Xms3200m -XX:MaxPermSize=192m -server -Dsun.rmi.dgc.server.gcInterval=1800000 -Dsun.rmi.dgc.client.gcInterval=1800000 -Xmx3200m -XX:NewRatio=2
max-pool-size=200 cachePrepStmts=true prepStmtCacheSize=512
Table 11-1 shows the HTTP service tuning settings.
Table 11-1 HTTP Service Tuning
HTTP Setting | Attribute | Value |
---|---|---|
keep-alive |
max-connections |
250 |
Not applicable. |
thread-count |
25 |
Not applicable. |
timeout-in-seconds |
30 |
request-processing |
header-buffer-length-in-bytes |
16384 |
Not applicable. |
initial-thread-count |
10 |
Not applicable. |
request-timeout-in-seconds |
20 |
Not applicable. |
thread-count |
50 |
Not applicable. |
thread-increment |
10 |
connection-pool |
max-pending-count |
4096 |
Not applicable. |
queue-size-in-bytes |
4096 |
Not applicable. |
receive-buffer-size-in-bytes |
4096 |
Not applicable. |
send-buffer-size-in-bytes |
8192 |
Table 11-2 shows the HTTP listener tuning settings.
The WebLogic Server configuration described in this section for a medium-sized deployment. Adjust the values according to your deployment. You should perform modifications in the managed domain in which Calendar Server is deployed.
For details about setting the JVM options in Oracle WebLogic Server see the discussion about setting Java parameters for starting WebLogic Server and specifying Java options for a WebLogic Server instance in the following documents:
Oracle Fusion Middleware Tuning Performance of Oracle WebLogic Server
Oracle Fusion Middleware Administering Server Startup and Shutdown for Oracle WebLogic Server">>
JVM options:
-XX:+UseG1GC -XX:ParallelGCThreads=6 -Xms3200m -XX:MaxPermSize=192m -server -Dsun.rmi.dgc.server.gcInterval=1800000 -Dsun.rmi.dgc.client.gcInterval=1800000 -Xmx3200m -XX:NewRatio=2
WebLogic Server instance uses a self-tuned thread-pool. The best way to determine the appropriate pool size is to monitor the current size of the pool, shrink counts, grow counts, and wait counts.
Configure the parameters related to JDBC Pool using WebLogic Administration Console:
Log in to WebLogic Server Administration Console.
Click Lock & Edit.
From the Domain Structure section, click the domain name. For example, domain1.
Navigate to Services and then Data Sources.
JDBC Datasources - defaultbackend and ischedulebackend are displayed in the Configuration tab
Select each JDBC Data Source name from the list, navigate to the Connection Pool tab, and then perform the following modifications:
Change the value of Initial Capacity to 200. The default value is 1.
Change the value of Maximum Capacity to 200. The default value is 15.
Change the value of Statement Cache Size to 512. The default value is 10.
Note:
Setting the size of the statement cache to 0 turns Off the statement caching. Therefore, setting this parameter to a non-zero value is equivalent to setting cachePrepStmts=true in GlassFish Server.Click Save.
Click Activate Changes.
Restart WebLogic Server Administration Server and Managed server.
Note:
For more information, see the discussions about self-tuning thread pool, tune the number of database connections, tune pool sizes, and tuning data sources in the Oracle WebLogic Server documentation.WebLogic Server is enabled with self-tuning for most of the HTTP parameters. Ensure that the following parameters are set by default. If the parameters are not set, you can set them using the WebLogic Server Administration Console.
Log in to WebLogic Server Administration Console.
From the Domain Structure section, click the domain name.
Click Environment, Servers, Managed Server Name, and Tuning tab.
Note:
The Enable Native IO option is selected by default.You should set the Accept Backlog value to 300.
Select Environment, Servers, Managed Server Name, Tuning Tab, and Advanced section.
Set the Self-Tuning Thread Minimum Pool Size value to 1 and Self-Tuning Thread Maximum Pool Size value to 400.
Select Environment, Servers, Protocols tab, and then HTTP tab.
Note:
The Keep-Alive option is enabled by default.Select Services, Messaging, and JMS Servers.
Click JMS Server that Calendar Server has created. For example, JMSServer-DAV.
Navigate to the Configuration tab, General tab, Advanced section, and verify the following:
Message Buffer Size: -1, which indicates that the server automatically determines a size based on the maximum heap size of JVM. This default value is set to either one-third of the maximum heap size or 512 megabytes, whichever is smaller.
For more information, refer to Fusion Middleware Tuning Performance of Oracle WebLogic Server
.
Configure the cache size and max connection size. For example:
back_log = 50 max_connections = 200 binlog_cache_size = 1M max_heap_table_size = 64M sort_buffer_size = 8M join_buffer_size = 8M thread_cache_size = 8 thread_concurrency = 8 query_cache_size = 64M query_cache_limit = 2M ft_min_word_len = 4 memlock thread_stack = 192K transaction_isolation = REPEATABLE-READ tmp_table_size = 64M log-bin=mysql-bin expire_logs_days=1 binlog_format=mixed slow-query-log = 1 long_query_time = 2 log_long_format tmpdir = /tmp innodb_additional_mem_pool_size = 16M innodb_buffer_pool_size = 2G innodb_data_file_path = ibdata1:10M:autoextend innodb_file_io_threads = 4 innodb_thread_concurrency = 16 innodb_flush_log_at_trx_commit = 1 innodb_log_buffer_size = 8M innodb_log_file_size = 256M innodb_log_files_in_group = 3 innodb_max_dirty_pages_pct = 90 innodb_lock_wait_timeout = 120 innodb_flush_method=O_DIRECT #UFS only
Caution:
You can view contents of the back-end store by using standard MySQL tools. Do not use MySQL tools to modify your data.This section provides tuning recommendations for Chip Multi-threading (CMT) architectures such as Sun servers with CoolThreads technology.
Set the following parameters in the /etc/system file.
set rlim_fd_max=260000 set hires_tick=1 set sq_max_size=0 set ip:ip_squeue_bind=0 set ip:ip_squeue_fanout=1 set ip:ip_soft_rings_cnt=16
TCP tuning:
ndd -set /dev/tcp tcp_time_wait_interval 60000 ndd -set /dev/tcp tcp_conn_req_max_q 3000 ndd -set /dev/tcp tcp_conn_req_max_q0 3000 ndd -set /dev/tcp tcp_max_buf 4194304 ndd -set /dev/tcp tcp_cwnd_max 2097152 ndd -set /dev/tcp tcp_xmit_hiwat 400000 ndd -set /dev/tcp tcp_recv_hiwat 400000
For Sun Fire T1000 and T2000 systems with 1.0GHz CPU, interrupt fencing by setting the following parameter:
psradm -i 1-3 5-7 9-11 13-15 17-19 21-23
Set the ZFS recordsize to 16 K (same as innoDB block size) by running the following commands:
zfs create rpool/data zfs set recordsize=16K rpool/data
Refer to the following documentation for additional tuning information:
MySQL:
http://www.solarisinternals.com/wiki/index.php/Application_Specific_Tuning
Network:
GlassFish Server:
http://download.oracle.com/docs/cd/E19159-01/819-3681/index.html
WebLogic Server:
MySQL benchmarks:
Scaling MySQL, T5440, ZFS:
http://blogs.oracle.com/mrbenchmark/entry/scaling_mysql_on_a_256
Spec:
http://www.spec.org/jAppServer2004/results/jAppServer2004.html