二. 主要措施
三. 總結
眾所周知,freeswitch(fs)相比asterisk有著較高的效能優勢,最近也在嘗試使用fs來測試它的效能優勢到底在哪。使用之後,fs的效能並沒有達到預期的要求。
fs(版本1.6.20)安裝在centos6.5系統上, fs配置了30000使用者, 使用sipp進行測試
緩慢提高sipp每秒發往fs的包的數量, 當caps提高到30以上時,會出現fs來不及處理sipp傳送的包,導致sipp收不到響應而重傳包。
新增log和**閱讀, 發現fs資料庫操作需要20ms時間。 而且乙個執行緒運算元據庫時, 會加鎖導致後面的執行緒必須等之前的執行緒操作完資料庫才可以繼續執行下去。caps提高後, 後面的執行緒會被掛起, caps只有保持30以下,才不會出現這種問題。
初步原因是因為資料庫效能不高導致,所以針對這一問題,進行了資料庫的優化。
fs預設的資料庫是sqlite,sqlite並不適合高併發的情況下,所以將fs的資料庫替換為mysql。 替換之後,caps並沒有提公升。
將資料庫放到記憶體裡,caps也沒有提公升
優化了fs連線mysql方式, 使用連線池概念。 原始碼fs連線資料庫只有乙個連線, 等資料庫操作完,才會釋放這個連線,給其他執行緒使用。 連線池建立了10個連線,允許一次10個執行緒連線資料庫。但是caps還是沒有提高。(這是讓我鬱悶的地方, 按道理應該是可以提高的) 有沒有知道原因的大神們!
fs啟動時帶上nosql引數,關閉資料庫,fs沒有了資料庫操作, caps有了很大的提公升。到此,可以確定資料庫的效能是影響caps的主要原因。
更換fs版本,從1.6.20更換到最新版本1.10.3, 優化了mysql的檢索,表分頁等等,資料庫跟fs分割開來等方式,caps都沒有提高。
caps的提高由fs資料庫決定,希望各網友提提其他方法來優化資料庫效能,提高fs的caps。
mysql 效能分析 Mysql效能分析
優化mysql資料庫效能的十個引數 1 max connections 允許的同時客戶的數量。增加該值增加 mysqld 要求的檔案描述符的數量。這個數字應該增加,否則,你將經常看到 too many connections 錯誤。預設數值是100,我把它改為1024 2 record buffer...
mysql效能分析方法 mysql 效能分析方法
1.explain分析法 explain 分析查詢語句 1 id列數字越大越先執行,如果說數字一樣大,那麼就從上往下依次執行 2 select type查詢型別 primary dependent subquery等 3 table表名 4 type 從上到下效能依次下降 system 表中只有一行...
mysql 效能分析 mysql效能分析工具
一 expalin 在sql語句之前加上explain關鍵字就可以獲取這條sql語句執行的計畫 那麼返回的這些欄位是什麼呢?我們先關心一下比較重要的幾個字段 1.select type 查詢型別 1 簡單查詢,沒有union和子查詢 2 priamry 主查詢,有union或子查詢的最外層查詢 3 ...