單機性能分析與調優
一、程序優化
1、表單壓縮:壓縮表單,減少網絡的傳輸量達到提高響應速度的效果。
2、局部刷新:頁面中采取局部內容獲取的方式,減少向服務器的請求。
3、僅取所需:只向服務器請求必要的內容,只向客戶端發送必要的表單內容,減少網絡傳輸,減輕服務器負擔。
4、邏輯清晰:程序邏輯清晰方便維護,方便分析問題;不要做多余的調用,資源請求後能夠釋放。
5、謹慎繼承:開發過程要對系統架構了解,特別是一些基類、公共組件,合理利用,減少大對象產生的可能。
6、程序算法優化:試著分析程序,釋放需要算法來提高程序的效率,比如我們可以二分法來做物料計劃。
7、批處理:對於大批量的數據處理,最好能夠批處理,不會因為單次操作而影響系統的正常使用。
8、延遲加載:對於大數據的展示可以采用延遲加載的方式,層層遞進的顯示明細。比如我們分頁顯示列表內容,往往我們只顯示主表的內容,附表的內容在查看明細時采取請求。
9、防止內存泄露:內存泄露是由於對象無法回收造成的,特別是一些長生命周期的對象風險較大。比如session,用戶退出時並沒有更新session狀態。
10、減少大對象引用。
11、防止爭用死鎖。
12、索引:編寫合理的SQL,盡量利用索引。
13、存儲過程:為了減少數據傳輸到應用程序層面,一般會在數據庫層面利用存儲過程來完成數據的邏輯運算,只需要回傳少量結果給應用層。
14、內存分配:合理分配數據庫內存,比如PGA與SGA的設置。
15、並行:使用多個進程和線程來處理任務,比如oracle的並行查詢,Tomcat的線程池。
16、異步:比如用MQ(消息中間件)來解耦系統之間的依賴關系,減少阻塞。
17、使用好的設計模式來優化程序,比如用回調來減少阻塞,使用監聽器來阻塞依賴。
18、選擇合適的IO模式。
二、配置優化
1、jvm配置優化:合理分配堆與非堆得的內存,配置適合內存的會所算法,提高系統服務能力。
2、連接池:數據庫連接池可以節省建立連接與關閉連接的資源消耗。
3、線程池:通過緩存線程的狀態來減少新建線程與關閉線程的開銷,一般是在中間件中進行配置,比如在Tomcat中的server.xml文件中進行配置。
4、緩存機制:通過數據的緩存來減少磁盤的讀寫壓力,縮小存儲與CPU的效率差。
三、數據庫連接池優化
關註點:1)、線程池的參數配置,2)、連接池配置多少連接,3)、監控線程池
四、DB優化
1、優化物理結構,數據邏輯設計與物理設計要科學高效,比如分區、索引建立、字段類型及長短、冗余設計等。
2、共享SQL、綁定變量、降低高水位。共享SQL、綁定變量旨在減少SQL語句的編譯分析時間;降低高水位旨在減少遍歷範圍,提高查詢效率。
3、查詢器優化,特殊情況調整執行時間。指定的執行計劃加快查詢查找速度。比如連接查詢時指定驅動表,減少表的掃描次數。
4、單條SQL語句優化,對單SQL進行優化分析,比如查詢條件選擇索引列。
5、並行SQl,對數據量巨大的表的數據遍歷,用多個線程分塊處理。
6、減少資源爭用,可以提高IO效率減少響應時間從而提高吞吐量來緩解爭用,比如物理拆分吧熱點數據分布在不同表空間。
7、優化內存、減少物理IO訪問。
8、優化IO,進行條帶化、讀寫分離、減少熱點等。
單機性能分析與調優