標籤:linu mat 顯示 歸檔 jvm 切換 ogr tcp jstack
業務系統效能最佳化的前提時觀察和診斷。觀察工具例如以下:
前端最佳化工具:YSlow
頁面回應時間:Firebug
方法對應時間:btrace
GC日誌分析:JVM 啟動參數
資料庫最佳化:慢查詢
系統資源調用:監控
效能診斷測試工具例如以下:
ab: httpd.apache.org/docs/2.2/programs/ab.html
JMeter: jmeter.apache.org
Loadrunner
反向 Proxy引流。TCPcopy:提取複寫工具 github.com/wangbin579/tcpcopy
效能最佳化方法:
前端效能:http請求數量。CDN網路。使用壓縮
Java程式最佳化:單例,Future模式的非堵塞。線程池。使用NIO。降低環境切換,減低鎖競爭
傳輸壓縮與結果緩衝
資料庫查詢最佳化:合理索引,降低關聯查詢的反範式設計。使用查詢快取。搜尋引擎,使用Key-Value資料庫,
GC最佳化
提升硬體效能
Java應用排查工具:
JPS:輸出JVM的進程資訊
JSTAT:JVM狀態監控工具
JInfo:應用程式的配置參數
JStack:線程快照
JMap:回收對象的隊列,堆棧資訊
Btrace:動態跟蹤工具 kenai.com/projects/btrace
Jconsole:圖形化工具
MAT: 圖形化堆分析工具
VisualVM:全能複合工具
Linux 日誌分析經常使用命令:
查看檔案內容:cat
分頁顯示檔案:more,less
顯示檔案頭尾:tail head
內容排序: sort
字元統計:wc
查看反覆出現的行:uniq
字串尋找:grep
檔案尋找:find
歸檔:tar
URL訪問工具:curl
查看最耗時的頁面:
cat localaccess.log |sort -k 2 -n -r |head -10
進一步。sed。awk shell了
Java 後台效能最佳化簡要