WebLogic Server 8.1 Performance Tuning Guide
1パフォーマンスの目標を理解する
ユーザ数、リクエスト数、許容応答時間
CPU、メモリ、ネットワークなどの情報
2オペレーティングシステムのチューニング
Solarisチューニング
ndd –set/dev/tcp tcp_time_wait_interval 60000、socketのクローズホールド時間を60秒に短縮(デフォルトは240秒)
Solaris 2.7より前、tcp_time_wait_intervalの名前はtcp_ですclose_wait_interval
その他ndd-setで調整できるパラメータ
パラメータ
推奨値
/dev/tcp tcp_time_wait_interval
60000
/dev/tcp tcp_conn_req_max_q
16384
/dev/tcp tcp_conn_req_max_q0
16384
/dev/tcp tcp_ip_abort_interval
60000
/dev/tcp tcp_keepalive_interval
7200000
/dev/tcp tcp_rexmit_interval_initial
4000
/dev/tcp tcp_rexmit_interval_max
10000
/dev/tcp tcp_rexmit_interval_min
3000
/dev/tcp tcp_smallest_anon_port
32768
/dev/tcp tcp_xmit_hiwat
131072
/dev/tcp tcp_recv_hiwat
131072
/dev/tcp tcp_naglim_def
1
/dev/ce instance
0
/dev/ce rx_intr_time
32
/etc/systemのパラメータ設定を編集できます
パラメータ
推奨値
set rlim_fd_cur
8192
set rlim_fd_max
8192
set tcp:tcp_conn_hash_size
32768
set shmsys:shminfo_shmmax
Note: This should only be set for machines that have at least 4 GB RAM or higher. 4294967295
set autoup
900
set tune_t_fsflushr
1
Solaris 8参照docs.sun.com/db/doc/816-0607
Solaris 9参照docs.sun.com/db/doc/806-7009
HP-UXチューニング
docsを参照.hp.com/hpux/onlinedocs/TKP-90203/TKP-90203.html
Java性能調整はh 21007を参照.www2.hp.com/dspp/tech/tech_TechDocumentDetailPage_IDX/1,1701,1602,00.html
AIXチューニング
publib 16を参照.boulder.ibm.com/pseries/en_US/aixbman/prftungd/prftungd02.htm
Linuxチューニング
mtu,/sbin/ifconfig lo mtu 1500を調整できます
ipsysctl-tutorialも参照.frozentux.net/ipsysctl-tutorial.html
Windowsチューニング(通常、デフォルトの設定は使用可能)
www.microsoft.を参照com/windows2000/techinfo/howitworks/communications/networkbasics/tcpip_implement.asp
またはwww.microsoft.com/technet/treeview/default.asp?url=/TechNet/prodtechnol/windows2000serv/maintain/optimize/perftune.asp
3データベースの最適化
全体的な考慮
ディスク間負荷分担、データ・テーブルの組織とサイズ、インデックス、ログなどを含むデータベース設計
ディスクI/Oの最適化、I/Oの回数制限、バッファの増大などを含む
Checkpoint周波数を制御します.Oracleなどのデータベースもあれば、SQL Server 7などのデータベースもあります.
Oracleチューニング(バージョン8.1.7)
サービスプロセス数、検査方法はSELECT name、value FROM v$parameter WHERE name='processes';
プールサイズを共有し、現在使用可能な値をチェックする方法はSELECT*FROM v$sgastat WHERE name='free memory'AND pool='shared poolです.
最大オープンカーソル数、チェックの方法はSELECT name、value FROM v$sysstat WHERE name LIKE’opened cursor%’;
ブロックサイズ、チェックの仕方はSELECT name、value FROM v$parameter WHERE name='db_block_size’;
SQL Serverチューニング
tempdbを高速I/Oデバイスに位置決めする
パフォーマンスモニタによるI/O周波数の高速化により、リカバリ間隔を拡大
2 KB以上のブロックサイズを採用
Sybaseチューニング
リカバリ間隔を適切に拡大
2 KB以上のブロックサイズを採用
4 Java仮想マシンの設定の決定
Sun JDK
-server, -client, -Xms, -Xmx, -XX:NewSize, -XX:MaxNewSize, -XX:SurvivorRatio, -XX:+UseISM, -XX:+AggressiveHeap
Sun JVMの他のパラメータはjavaを参照してください.sun.com/docs/hotspot/VMOptions.html
JRockit JDK
-Xms, -Xmx, -Xns, -Xgc:parallel, -Xxenablefatspin
スタック値はシステムの残りのメモリの80%です
-XX:NewSize、-XX:MaxNewSizeはスタックサイズの1/4であり、マルチCPU環境では適量が増大
-XX:SurvivorRatioは8に設定可能
benchmark期にGCを生成しないでGCの方法を観察する
Windows, Solaris: … -verbosegc … >> log.txt 2>&1
HP-UX, -Xverbosegc:file=/tmp/gc$$.out
BEA JRockit: -Xgcreport
ログタイムスタンプでGCの頻度を計算
GCを観察するのにかかる時間は5秒を超えないでください
GC後のヒープ使用可能メモリは増加しすぎない
5 WebLogic Serverのパラメータの調整
実行キューのスレッド数を調整し、スレッド数と単一応答時間に比例
native packのアクティブ化
backlog bufferの調整
TCP層が保持できる最大接続数、デフォルト値50
クライアントがWebLogic Serverに接続できない場合は、値を調整できます.
実行キューをカスタマイズし、servlets、JSPs、EJBsを実行キューに割り当てる
重要な応用高性能の運転を保証する
重要でないアプリケーションで使用可能なリソースの制限
デッドロックの発生を防止
JSP,servlet例(web.xml)
MainServlet
/myapplication/critical.jsp
wl-dispatch-policy
CriticalAppQueue
EJB (weblogic-ejb-jar.xml )
…
CriticalAppQueue
RMI
java weblogic.rmic -dispatchPolicy CriticalAppQueue ...
,InitialCapacity MaxCapacity ,MaxCapacity
SQL
Application-Level Caching, (weblogic-application.xml )
large_account
1
Java
admin console ,Configuarion à General à Java Compiler Configuration à General à Advanced Options à Append to classpath
weblogic.xml jsp-descriptor ,compileCommand precompile
6 CPU ,
Solaris Linux
disk, iostat –D
CPU, iostat
Windows
perfmon
CPU , ; 100% , RAID
WebLogic Server I/O
JMS file store , ,HTTP ,
JMS 、 HTTP
7
、
netstat –s –P tcp, retransmission
8
, System.out.println
9
, CPU ,
JProbe OptimizeIt
CPU 100% , JProbe OptimizeIt
10
EJB
weblogic-ejb-jar.xml
Initial-beans-in-free-pool
0
Max-beans-in-cache
stateful session bean entity bean,
Max-beans-in-free-pool
session bean MDB , ; entity bean , finder home 。 , 1000
EJB, Pool Miss Ratio, Destroyed Bean Ratio, Transaction Rollback Ratio, Transaction Timeout Ratio
JSP servlet
JSP servlet
session
JSP
JMS
JMS message selectors
(onMessage )
dev2dev.bea.com/products/wlserver/whitepapers/WL_JMS_Perform_GD.jsp
Session
Session
cookie
, session