linux操作系統(tǒng)線程庫性能測試與分析new

linux操作系統(tǒng)線程庫性能測試與分析new

ID:18613668

大?。?53.00 KB

頁數(shù):9頁

時(shí)間:2018-09-19

linux操作系統(tǒng)線程庫性能測試與分析new_第1頁
linux操作系統(tǒng)線程庫性能測試與分析new_第2頁
linux操作系統(tǒng)線程庫性能測試與分析new_第3頁
linux操作系統(tǒng)線程庫性能測試與分析new_第4頁
linux操作系統(tǒng)線程庫性能測試與分析new_第5頁
資源描述:

《linux操作系統(tǒng)線程庫性能測試與分析new》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫

1、安博測試空間技術(shù)中心http://www.btestingsky.com/地址:北京市海淀區(qū)學(xué)院路40號大唐電信測試空間樓聯(lián)系電話:010-623032236230326062303230Linux操作系統(tǒng)線程庫性能測試與分析NPTL成為glibc"正選"線程庫后,它的性能如何受到很多人的關(guān)注。本文就針對NPTL與LinuxThreads的性能比較,以及超線程、內(nèi)核可搶占等特性對線程性能的影響進(jìn)行了全面評測。一、前言在Linux2.6.x內(nèi)核中,調(diào)度性能的改進(jìn)是其中最引人注目的一部分[1]。NPTL(NativePosixThreadLib

2、rary)[2]使用內(nèi)核的新特性重寫了Linux的線程庫,取代歷史悠久而備受爭議的LinuxThreads[3]成為glibc的首選線程庫。NPTL的性能究竟如何?相對LinuxThreads又有哪些明顯的改進(jìn)?在對NPTL進(jìn)行全面分析之前,本文針對這兩種線程庫,以及內(nèi)核中"內(nèi)核可搶占"(Preemptible)和超線程(HyperThreading)[4]等特性進(jìn)行了全面的性能評測,結(jié)果表明NPTL絕對值得廣大服務(wù)器系統(tǒng)期待和使用。二、Benchmark1.測試平臺進(jìn)行本測試的硬件平臺為浪潮NF420R服務(wù)器[7],4個(gè)Hyperthre

3、ading-enabledIntelXeon2.2G處理器,4G內(nèi)存。Linux選擇了Slackware9.0發(fā)行版[8],所使用的內(nèi)核源碼來自www.kernel.org。2.針對測試:LMBenchlmbench是一個(gè)用于評價(jià)系統(tǒng)綜合性能的多平臺開源benchmark[5],但其中沒有對線程的支持。其中有兩個(gè)測試進(jìn)程性能的benchmark:lat_proc用于評測進(jìn)程創(chuàng)建和終止的性能,lat_ctx用于評測進(jìn)程切換的開銷。lmbench擁有良好的benchmark結(jié)構(gòu),只需要修改具體的Target程序(如lat_proc.c和lat_

4、ctx.c),就可以借用lmbench的計(jì)時(shí)、統(tǒng)計(jì)系統(tǒng)得到我們關(guān)心的線程庫性能的數(shù)據(jù)?;趌at_proc和lat_ctx的算法,本文實(shí)現(xiàn)了lat_thread和lat_thread_ctx兩個(gè)benchmark。在lat_thread中,lat_proc被改造成使用線程,用pthread_create()替代了fork(),用pthread_join()替代wait();在lat_thread_ctx中,沿用lat_ctx的評測算法(見lat_ctx手冊頁),將創(chuàng)建進(jìn)程的過程改寫為創(chuàng)建線程,仍然使用管道進(jìn)行通信和同步。lat_thread

5、nullnull參數(shù)表示線程不進(jìn)行任何實(shí)際操作,創(chuàng)建后即刻返回。lat_thread_ctx-s#threadssize參數(shù)與lat_ctx定義相同,可表示線程的大?。▽?shí)際編程時(shí)為分配K數(shù)據(jù);#threads參數(shù)為線程數(shù),即參與令牌傳遞的線程總數(shù),相當(dāng)于程序負(fù)載情況。3.綜合測試:Volanomarkvolanomark是一個(gè)純java的benchmark,專門用于測試系統(tǒng)調(diào)度器和線程環(huán)境的綜合性能[6],它建立一個(gè)模擬Client/Server方式的Java聊天室,通過獲取每秒平均發(fā)送的消息數(shù)來評測宿主機(jī)綜合性能(數(shù)值越大性能越好)。Vo

6、lanomark測試與Java虛擬機(jī)平臺相關(guān),本文使用SunJavaSDK1.4.2作為測試用Java平臺,Volanomark版本2.5.0.9。三、測試結(jié)果測試計(jì)劃中將內(nèi)核分為2.4.26、2.6.6/支持內(nèi)核搶占和2.6.6/不支持內(nèi)核搶占三類;通過配置內(nèi)核以及NF420R的BIOS實(shí)現(xiàn)三類SMP規(guī)模:單處理機(jī)(UP)、4CPU的SMP(SMP4)和打開超線程支持的虛擬8CPUSMP(SMP8*)。內(nèi)核配置和SMP規(guī)模的每一種組合都針對LinuxThreads和NPTL使用lat_thread、lat_thread_ctx和volan

7、omark獲取一組數(shù)據(jù)。由于NPTL無法在2.4.x內(nèi)核上使用,該項(xiàng)數(shù)據(jù)空缺。四、結(jié)果分析1.LinuxThreadsvsNPTL:線程創(chuàng)建/銷毀開銷使用2.6.6/preemptible內(nèi)核配置下UP和SMP4的測試數(shù)據(jù)獲得下圖:圖1在線程創(chuàng)建/銷毀開銷方面,NPTL的改進(jìn)相當(dāng)明顯(降低約600%)。實(shí)際上,NPTL不再像LinuxThreads那樣需要使用用戶級的管理線程來維護(hù)線程的創(chuàng)建和銷毀[9],因此,很容易理解它在這方面的開銷能夠大幅度降低。同時(shí),由圖可見,單CPU下創(chuàng)建線程總是比多CPU下迅速。2.LinuxThreadsvsN

8、PTL:線程切換開銷同樣使用2.6.6/preemptible內(nèi)核配置下UP和SMP4的數(shù)據(jù):圖2隨著lat_thread_ctx的參與線程增多,不管是哪個(gè)線程庫,單處理機(jī)條件下

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時(shí)聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。