多軟件間資源競爭檢測與消解研究
發(fā)布時間:2021-07-30 08:05
隨著軟件規(guī)模和復雜性的不斷擴大,軟件性能問題不斷的被人們所關注。導致軟件性能問題的主要原因可分為兩類:(1)軟件自身Bugs,(2)運行環(huán)境中多軟件資源競爭。軟件自身Bugs是指軟件源碼中存在無效或不必要的計算,并且目前的研究工作主要集中在由軟件自身Bugs所引發(fā)的軟件性能問題,對于由多軟件資源競爭引發(fā)的性能問題研究比較欠缺。與軟件自身Bugs相比較,多軟件資源競爭不屬于Bugs,并且所有的性能問題都有相同的特征,例如長的響應延時和低的吞吐率,因此識別由資源競爭引發(fā)的性能問題是非常困難的。課題針對目前研究的不足,從軟件配置角度入手,對由多軟件資源競爭引起的軟件性能問題進行研究。通過對軟件響應延時隨負載變化關系分析發(fā)現(xiàn),軟件的響應延時隨著負載的變化存在一個突變點;谝陨习l(fā)現(xiàn),本課題設計實現(xiàn)了自動檢測與消解多軟件資源競爭的工具Relax。Relax通過結合突變點處的軟件資源請求延時和系統(tǒng)總資源使用率來檢測運行環(huán)境中由資源競爭引發(fā)的性能問題,并受到網(wǎng)絡擁塞控制的啟發(fā),Relax通過快減慢增的方法調整軟件資源相關的配置項來消解競爭。全文的主要工作分為以下幾個方面:1、通過對軟件響應延時隨負載...
【文章來源】:國防科技大學湖南省 211工程院校 985工程院校
【文章頁數(shù)】:67 頁
【學位級別】:碩士
【部分圖文】:
由內(nèi)存資源競爭導致程序崩潰
L軟件,使用MySQL軟件自帶的壓力測試工具mysqlslap模擬不同數(shù)量的用戶去并發(fā)訪問存有10萬條數(shù)據(jù)的數(shù)據(jù)庫表,每個用戶對數(shù)據(jù)庫進行10的查詢操作;針對Apache2Httpd軟件,使用自帶的測試工具ab在另一臺虛擬機中去模擬不同數(shù)量的用戶去并發(fā)訪問Web服務,并且設置每個用戶訪問10次;針對Redis軟件,使用自帶的測試工具redis-benchmark模擬不同數(shù)量的用戶并發(fā)執(zhí)行SET操作,并且每個用戶進行10次的操作。針對以上實驗,通過模擬不同數(shù)量的用戶來構造出不同的工作負載,進而在不同的負載下測量軟件的響應時間變化規(guī)律。3.1.1.2圖3.1為MySQL、Apache2Httpd和Redis三款軟件在不同負載下響應時間分布曲線。橫坐標為軟件的負載(請求并發(fā)數(shù)),縱坐標為軟件在對應負載下的單個請求響應時間,單位為毫秒。通過觀察軟件在不同的負載下響應時間的變化規(guī)律,我們發(fā)現(xiàn)軟件的響應時間隨著負載的變化存在一個突變點。通過圖3.1可以發(fā)現(xiàn),當MySQL軟件在請求并發(fā)數(shù)為1700時,每條請求的響應時間會明顯增大,在請求并發(fā)數(shù)小于1700時,MySQL軟件的響應時間隨負載增加成線性增加。當并發(fā)請求數(shù)大于1700時,MySQL軟件的響應時間隨負載增加由線性增長變?yōu)榉蔷性增長。通過分析發(fā)現(xiàn),導致這一現(xiàn)象產(chǎn)生的主要原因是由于運行環(huán)境中CPU計算資源和內(nèi)存資源使用達到瓶頸,進而引發(fā)運行環(huán)境中MySQL單軟件對CPU計算資源和內(nèi)存資源產(chǎn)生競爭,隨著負載的持續(xù)增加,其引發(fā)的競爭程度不斷嚴重,軟件的性能也隨之下降明顯。Redis和Apache2Httpd同樣也表現(xiàn)出與MySQL相同的特征。對于Apache2圖3.1軟件響應延時隨負載變化關系第16頁
國防科技大學研究生院碩士學位論文確的解決方案,則我們認為該問題是有效的一個案例。例如,圖3.2為現(xiàn)實中由CPU資源競爭所引發(fā)的nginx和php軟件性能下降。導致該性能問題產(chǎn)生的主要原因是由于php軟件的配置不適合當前運行負載所導致。該性能問題的解決方案是調整于php軟件的配置,其實降低CPU資源的使用率。圖3.2現(xiàn)實中由資源競爭引發(fā)的軟件性能問題3.2.2結果分析通過在StackOverflow網(wǎng)站上篩選,本課題一共篩選了49個現(xiàn)實中由資源競爭所導致軟件性能問題的案例。圖3.3為分析現(xiàn)實中49個案例的解決方案發(fā)現(xiàn)。65.3%的性能問題是可以通過調整競爭軟件的配置項來消解。14.3%的案例只有通過升級硬件設備才能消解。12.2%的案例是由于軟件版本不兼容所導致,因此通過更新軟件版本來消解。其余8.2%的案例是通過其它的方式所消解,例如:修改軟件源碼。通過對調研的49個案例分析發(fā)現(xiàn),超過一般以上(65.3%)由資源競爭所引發(fā)的軟件性能問題是可以通過調整競爭軟件的配置來消解。盡管這些案例也可以通第19頁
本文編號:3311038
【文章來源】:國防科技大學湖南省 211工程院校 985工程院校
【文章頁數(shù)】:67 頁
【學位級別】:碩士
【部分圖文】:
由內(nèi)存資源競爭導致程序崩潰
L軟件,使用MySQL軟件自帶的壓力測試工具mysqlslap模擬不同數(shù)量的用戶去并發(fā)訪問存有10萬條數(shù)據(jù)的數(shù)據(jù)庫表,每個用戶對數(shù)據(jù)庫進行10的查詢操作;針對Apache2Httpd軟件,使用自帶的測試工具ab在另一臺虛擬機中去模擬不同數(shù)量的用戶去并發(fā)訪問Web服務,并且設置每個用戶訪問10次;針對Redis軟件,使用自帶的測試工具redis-benchmark模擬不同數(shù)量的用戶并發(fā)執(zhí)行SET操作,并且每個用戶進行10次的操作。針對以上實驗,通過模擬不同數(shù)量的用戶來構造出不同的工作負載,進而在不同的負載下測量軟件的響應時間變化規(guī)律。3.1.1.2圖3.1為MySQL、Apache2Httpd和Redis三款軟件在不同負載下響應時間分布曲線。橫坐標為軟件的負載(請求并發(fā)數(shù)),縱坐標為軟件在對應負載下的單個請求響應時間,單位為毫秒。通過觀察軟件在不同的負載下響應時間的變化規(guī)律,我們發(fā)現(xiàn)軟件的響應時間隨著負載的變化存在一個突變點。通過圖3.1可以發(fā)現(xiàn),當MySQL軟件在請求并發(fā)數(shù)為1700時,每條請求的響應時間會明顯增大,在請求并發(fā)數(shù)小于1700時,MySQL軟件的響應時間隨負載增加成線性增加。當并發(fā)請求數(shù)大于1700時,MySQL軟件的響應時間隨負載增加由線性增長變?yōu)榉蔷性增長。通過分析發(fā)現(xiàn),導致這一現(xiàn)象產(chǎn)生的主要原因是由于運行環(huán)境中CPU計算資源和內(nèi)存資源使用達到瓶頸,進而引發(fā)運行環(huán)境中MySQL單軟件對CPU計算資源和內(nèi)存資源產(chǎn)生競爭,隨著負載的持續(xù)增加,其引發(fā)的競爭程度不斷嚴重,軟件的性能也隨之下降明顯。Redis和Apache2Httpd同樣也表現(xiàn)出與MySQL相同的特征。對于Apache2圖3.1軟件響應延時隨負載變化關系第16頁
國防科技大學研究生院碩士學位論文確的解決方案,則我們認為該問題是有效的一個案例。例如,圖3.2為現(xiàn)實中由CPU資源競爭所引發(fā)的nginx和php軟件性能下降。導致該性能問題產(chǎn)生的主要原因是由于php軟件的配置不適合當前運行負載所導致。該性能問題的解決方案是調整于php軟件的配置,其實降低CPU資源的使用率。圖3.2現(xiàn)實中由資源競爭引發(fā)的軟件性能問題3.2.2結果分析通過在StackOverflow網(wǎng)站上篩選,本課題一共篩選了49個現(xiàn)實中由資源競爭所導致軟件性能問題的案例。圖3.3為分析現(xiàn)實中49個案例的解決方案發(fā)現(xiàn)。65.3%的性能問題是可以通過調整競爭軟件的配置項來消解。14.3%的案例只有通過升級硬件設備才能消解。12.2%的案例是由于軟件版本不兼容所導致,因此通過更新軟件版本來消解。其余8.2%的案例是通過其它的方式所消解,例如:修改軟件源碼。通過對調研的49個案例分析發(fā)現(xiàn),超過一般以上(65.3%)由資源競爭所引發(fā)的軟件性能問題是可以通過調整競爭軟件的配置來消解。盡管這些案例也可以通第19頁
本文編號:3311038
本文鏈接:http://sikaile.net/kejilunwen/ruanjiangongchenglunwen/3311038.html
最近更新
教材專著