1.系統性能瓶頸分析前端
影響系統性能的因素:程序員
2.不一樣的系統性能壓力點不一樣sql
門戶網站、文件服務、政企辦公:網絡帶寬瓶頸、緩存多(偏靜)數據庫
流媒體應用、科學計算:進程多、消耗內存多、磁盤IO頻繁(偏動)apache
企業生產應用:DB壓力大、存儲壓力大、內存壓力大、CPU壓力大(動&靜)數組
3.系統架構層次分析:緩存
各層次性能的關注點:tomcat
系統資源:服務器、客戶機cpu、內存、硬盤等配置安全
操做系統:操做系統資源分配服務器
鏈接數等等
程序:內存、線程的鎖、或其餘功能性的問題
數據庫:參數的配置
4.中間件Tomcat配置調優
Tomcat鏈接數配置實例:
A項目的server.xml的配置文件
sudo find / -name *tomcat*
相關配置參數解釋:
遇到的問題:鏈接數配置不夠,併發數超出最大鏈接數
查看tomcat的日誌(tomcat的安裝目錄下logs文件夾)文件catalina.-11-25.log,其中有如下錯誤信息:
1.-11-25 18:26:03 org.apache.tomcat.until.threads.ThreadPool logFull
2.嚴重:All threads(150) are currently busy, watting. Increase maxThreads(150) or check the servlet status.
五、jvm參數配置優化和代碼優化
jvm參數配置
a. 設置環境變量: 變量名:CATALINA_OPTS 變量值:-Xmx128m -Xms64m -Xmn32m -Xss16m
b.打開Tomcat根目錄下的bin文件夾,編輯catalina.sh,將其中的%CATALINA_OPTS%(共有四處)替換爲:-Xmx128m -Xms64m -Xmn32m -Xss16m
最容易調優的地方
Java代碼方面優化
1.減小new對象;用移位符號替代乘除號。
2.多使用局部變量,減小使用靜態變量。
3.避免使用finalize,該方法會給GC增添很大負擔;
4.若是是單線程,儘可能使用非多線程安全的,由於線程安全來自於同步機制,同步機制會下降性能。
5.儘可能使用基本類型而不是包裝類型,儘可能使用一維數組而不是二維數組。
6.儘可能使用final修飾符,final表示不可修改,訪問效率高。
7.單線程狀況下,字符串儘可能使用StringBuilder,比StringBuffer要快。
六、Mysql的監控和調優
系統SQL分析調優
優化方面:
主從複製
靜動分開(好比百度就是這樣的)
加數據庫緩存
設計優化(數據庫、表結構、標的設計上須要優化)
索引或視圖減小查詢內容
優化SQL結構(經過explan優化sql的結構)
Mysql配置優化
慢查詢
分析出慢的緣由
SQL自己
索引
前端調優-有效and難
一般前端的一些措施: