-Xms
與-Xmx
未設置為相同值,頻繁觸發GC)、垃圾回收器選擇錯誤(如CMS不適合低延遲場景)、線程池大小與CPU核心數不匹配。net.ipv4.tcp_tw_reuse
未開啟,TIME_WAIT狀態連接堆積)、內核參數(如vm.swappiness
過高,頻繁交換內存)。ExecuteThreadTotalCPUUsage
長期高于70%)、連接池配置不合理(MaxCapacity
過小,數據庫連接等待)、未關閉不必要的服務(如Admin Server的調試服務)。top
(查看CPU、內存占用TOP進程)、free -m
(內存使用量及Swap使用情況)、vmstat 1
(CPU、內存、I/O、上下文切換統計)、iostat -x 1
(磁盤I/O利用率、讀寫延遲)、netstat -antp
(網絡連接狀態、端口監聽情況)。sar -u 1 3
(CPU歷史使用趨勢)、sar -d 1 3
(磁盤I/O歷史趨勢),幫助識別長期性能問題。http://<IP>:7001/console
),導航至Servers -> <ServerName> -> Monitoring -> Performance
,查看線程池(空閑線程數、等待隊列長度)、JVM(堆內存使用率、GC次數/時間)、連接池(活躍連接數、等待連接數)等指標。setDomainEnv.sh
配置JMX遠程訪問(添加-Dcom.sun.management.jmxremote.port=9000
等參數),使用JConsole或VisualVM連接,深入分析JVM內存(堆內存分代使用情況、Metaspace占用)、線程(死鎖、線程阻塞棧)。getServerRuntime().getExecuteThreads().getTotalCPUUsage()
)獲取線程池CPU使用率,或serverStatus.sh
檢查服務器狀態。jstack <PID>
獲取線程Dump,通過ThreadLogic
工具分析線程狀態(如RUNNABLE
過多可能存在鎖競爭)、死鎖情況。jstat -gcutil <PID> 1000
監控GC頻率與耗時(若Full GC頻繁,需調整堆內存或更換G1回收器),或VisualVM的Visual GC插件查看內存分代分布。-Xms
與-Xmx
(如-Xms4g -Xmx4g
),選擇合適的垃圾回收器(如G1回收器:-XX:+UseG1GC
),調整新生代與老年代比例(-XX:NewRatio=2
)。/etc/security/limits.conf
增加文件描述符限制(* soft nofile 65535
)、優化TCP參數(net.ipv4.tcp_tw_reuse=1
、net.ipv4.tcp_fin_timeout=30
)、調整內核參數(vm.swappiness=10
,減少內存交換)。MaxCapacity
設置為數據庫最大連接數的80%,InitialCapacity
設置為MaxCapacity
的1/4)、關閉不必要的服務(如Admin Server的調試日志)。WHERE
子句字段建索引)、優化SQL語句(避免SELECT *
,使用批量插入)。try-with-resources
語句確保數據庫連接、文件流等資源自動關閉,避免內存泄漏。worker_connections
),避免成為瓶頸。ping
(測試延遲)、traceroute
(檢查路由路徑)、mtr
(綜合延遲與丟包)分析網絡狀況,聯系運營商提升帶寬(如從100M升級至1G)。通過以上步驟,可系統性地定位并解決CentOS服務器下WebLogic的性能瓶頸,提升應用響應速度與吞吐量。優化過程中需注意:先監控再優化(避免盲目調整)、測試環境驗證(避免生產環境故障)、逐步調整(每次只修改一個參數,觀察效果)。