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

EJBweblogic-ejb-jar.xml

CriticalAppQueue

RMI

java weblogic.rmic -dispatchPolicy CriticalAppQueue ...

InitialCapacity MaxCapacityMaxCapacity

SQL

Application-Level Caching,weblogic-application.xml

large_account

1

Java

admin consoleConfiguarion à General à Java Compiler Configuration à General à Advanced Options à Append to classpath

weblogic.xml jsp-descriptorcompileCommand precompile

6 CPU

Solaris Linux

disk, iostat –D

CPU, iostat

Windows

perfmon

CPU , ; 100%RAID

WebLogic Server I/O

JMS file store , ,HTTP

JMSHTTP

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 beanfinder 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