一次系統效能優化筆記

2021-09-05 23:21:28 字數 1370 閱讀 2167

專案背景:

國有大型電信企業的乙個簡訊增值專案,目前要求日處理資料量20萬,以後處理量在100以上。

目前狀況是:日處理極限為5萬左右。在簡訊峰值時,由於資料堆壓資料執行變慢。

第一次白盒**分析

1 ,根據壓力測試中資料連線過多問題進行分析

問題原因:

對執行的各個子專案沒有啟動oracle連線池

重構方式:

對執行的各個子專案進行資料連線池,和連線數限制。

2 coding檢查:

程式中資料訪問層使用**鎖保證資料完整性。

其次程式中乙個事物實現是通過**逐個執行sql語句

現象後果:

併發訪問效率低下

應用伺服器和資料庫服務不斷的進行io讀寫

重構方式:

儲存過程完成完整事務,資料庫表鎖定代替**鎖定。

3分析資料庫的業務操作sql執行效率

問題:對常用的排序的表的字段沒有進行索引。對於資料庫量大的表操作,索引相當重要。

重構方式:

對常用的排序字段進行索引。

4執行查詢語句,剔除like查詢和子查詢

第二次壓力測試

1測試結果發現測試使用者頻繁讀取某張業務表,處理業務。

重構方式:

用應用伺服器的記憶體空間去換使用者訪問時間

具體的做法為;

在後台起乙個快取,把資料庫中的業務表預先讀取到快取中,這樣使用者直接從快取中讀取業務資料,而避免了頻繁訪問資料庫的業務表。

2壓力測試問題:查詢報表業務中,新增新操作日誌記錄時間,查詢日誌資訊時間過長。

原因:業務操作日誌表過大。目前每次操作的日誌表每天的增量在10萬左右

重構方式:

對日誌操作表進行分表,一張表:放當天日誌操作資訊

另外一張表:放當天以前的日誌操作資訊。

日誌查詢只提供當天以前的日誌查詢業務,不支援當前的日誌查詢。

對常用的日誌統計資訊,進行定時運算並儲存對應的統計資訊。

這樣日誌統計時,不需要實時資料庫運算統計。

記一次系統效能優化

用thinkphp3.2.3做了自己的畢業設計,上線使用後發現,響應時間比較長,經過檢測後發現是sql的查詢時間太長。這裡要感謝系統效能監控平台聽雲,他們的官網是 它能檢測到不正常的web請求 不正常的sql查詢 接著就是對mysql資料庫進行查詢的調優,筆者這裡採用建立索引的方法。什麼是索引以及索...

系統效能優化(一)

我們都知道在實際做專案時,有一條 原則,就是先實現其功能,在優化其效能。當我們功能都沒有實現的時候,就考慮其效能優化,想一次性就寫出效能最好的方案,顯然是非常有難度的,所以我們先將其功能實現,再逐步優化。假設現在我們想實現乙個最基礎的相關錯題複習的功能,如我們在網上進行刷題的時候,當我們做錯一到題目...

優化系統效能

程式框架 hibernate3 struts2 spring2 資料庫 sqlserver2008 伺服器 tomcat6 優化方法 1 配置連線池 採用的c3p0連線池 2 在程式中獲取列表時,用iterator代替list 3 在查詢之後可以使用session.clear 方法釋放快取 4 用資...