軟件測試開發技術mysql+solaris 上的性能診斷過程
軟件 測試 開發 技術 mysql +solaris 上的 性能 診斷過程 mysql教程 平臺: solaris9 +mysql5+ java 癥狀: 生產環境偶爾出現mysql查詢停頓,死屏 追蹤過程:出現有時mysql查詢無返回的癥狀!使用winsock協議錄制mysql交互過程。中間消除 loadrunner heartbe
軟件
測試開發技術
mysql+solaris 上的
性能診斷過程 mysql教程
平臺: solaris9 +mysql5+
java癥狀: 生產環境偶爾出現mysql查詢停頓,死屏
追蹤過程:出現有時mysql查詢無返回的癥狀!使用winsock協議錄制mysql交互過程。中間消除
loadrunner heartbeat限制。
經過執行設置的高峰場景,重現error 24.
解決方案:
查詢MYSQL文檔,ERROR \'...\' not found (errno: 23) 錯誤及Can\'t open file: ... (errno: 24)錯誤的解釋。
沒有為
MySQL分配足夠的文件描述符。mysqld正在試圖同時保持打開太多的文件,導致錯誤。解決這個問題有兩種方案:1、減少mysqld一次打開的文件數,2、增加mysqld可得到的文件描述符數量(推薦)。
1、為了減少mysqld同時打開的文件數,可以通過減少table_cache參數(缺省值是64)使表緩沖更??;減小max_connections值也將減少打開文件的數量(缺省值是100)。
2、為了增加mysqld可用的文件描述符數量,可以通過使用調高open_files_limit參數值或調高mysqld_safe啟動參數--open-files-limits來完成(注:本操作只能在操作系統限制范圍內增加文件描述符的數量,如果需要增加每個進程可用的文件描述符數量的操作系統限制,需要更改操作系統參數)。
操作系統的限制:
只有根用戶才能修改單個進程使用的文件描述符的數量內核值。硬限制最大值在 rlim_fd_max 中定義,在缺省情況下,設置為 1024。 軟極限的默認值是256 。ulimit -H -n可以查看文件描述符硬限制,ulimit -S -n可以查看文件描述符軟限制。
更改內核參數:
在 Solaris 上,可以通過修改 /etc/system 文件使其包含以下條目來增加系統資源:
set rlim_fd_max=1024
set rlim_fd_cur=768
要使新內核參數生效,需要重新引導系統。
由于目前mysql參數open_files_limit為256。若提高該值,則必須更改操作系統內核。
原文轉自:http://www.anti-gravitydesign.com