版權聲明:本文為半吊子子全棧工匠(wireless_com,同公衆号)原創文章,未經允許不得轉載。 https://blog.csdn.net/wireless_com/article/details/44276323
業務系統性能優化的前提時觀察和診斷,觀察工具如下:
前端優化工具:YSlow
頁面響應時間:Firebug
方法相應時間:btrace
GC日志分析:JVM 啟動參數
資料庫優化:慢查詢
系統資源調用:監控
性能診斷測試工具如下:
ab: httpd.apache.org/docs/2.2/programs/ab.html
JMeter: jmeter.apache.org
Loadrunner
反向代理引流,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了