新聞中心
LMBench是一種用于測量操作系統(tǒng)和硬件系統(tǒng)性能的工具,它具有迅速、簡便、可靠的核心特點。LMBench能夠在Linux系統(tǒng)中測試各種子系統(tǒng)的性能,如內存子系統(tǒng)、文件系統(tǒng)、網絡子系統(tǒng)等,使用LMBench可以測量CPU速度、內存延遲、內存帶寬、進程間通信、網絡延遲等一系列性能指標。本文將為讀者介紹LMBench的基本原理和使用方法。

一、LMBench的基本原理
LMBench是由美國的Bitmover公司創(chuàng)建的,用C語言編寫,它的基本原理是通過執(zhí)行一系列測試程序來測量不同硬件和軟件子系統(tǒng)的性能。LMBench的測試程序采用了多種編程語言,如C、C++、Java、Perl等,測試程序重點考慮了Linux內核如何使用底層硬件設備和如何優(yōu)化I/O操作等問題。
LMBench的測試程序可以測量Linux/Unix系統(tǒng)下各種硬件和軟件組件的性能,例如CPU、內存、硬盤、網絡、文件系統(tǒng)等。LMBench測試程序是基于內核模塊驅動的,其中包含了許多不同類型的內核模塊驅動程序,能夠測試各種常用硬件設備的性能。
二、LMBench的使用方法
1. LMBench的安裝
在使用LMBench前,需要先在Linux系統(tǒng)中安裝該工具。LMBench的下載地址為:http://www.bitmover.com/lmbench。在下載完成后,將解壓后的文件放置到Linux系統(tǒng)中的任意文件夾中,運行“make”命令進行編譯安裝即可。
2. LMBench的測量性能
LMBench可測試的子系統(tǒng)有:
1. 內存子系統(tǒng):LMBench測試內存帶寬、讀寫延遲、內存負載等指標。
2. 文件系統(tǒng)子系統(tǒng):測試磁盤IO讀寫性能、文件訪問性能等指標。
3. 網絡子系統(tǒng):測試網絡帶寬、UDP/TCP帶寬等指標。
4. 進程間通信:測試FIFO、PIPE、TCP等不同方式的IPC性能。
LMBench的常用測量命令有:
1. 內存子系統(tǒng)測量
$./lat_mem_rd -t 32 -s 256m -P 0 -N 1 rd
其中,“-t”參數為內核線程數,“-s”參數為內存大小,“-P”參數為線程掩碼,“-N”參數為測試輪數。
2. 文件系統(tǒng)子系統(tǒng)測量
$./filemicro -c iterations -n files -s size -r -d directory
其中,“-c”參數為測試輪數,“-n”參數為文件數目,“-s”參數為文件大小,“-r”參數為測試順序,“-d”參數為測試目錄。
3. 網絡子系統(tǒng)測量
$./netpipe -P -I 1024 -i 1024 -s 1024 -S 1024 -L 1000
其中,“-P”參數為端口號,“-I”參數為輸入包大小,“-i”參數為輸出包大小,“-s”參數為總輸入流大小,“-S”參數為總輸出流大小,“-L”參數為單向測試時間。
4. 進程間通信測量
$./lat_pipe -P 0 -n 250000 -B 8192 -s 8192 -t
其中,“-P”參數為進程掩碼,“-n”參數為測試輪數,“-B”參數為緩沖區(qū)大小,“-s”參數為數據塊大小,“-t”參數為計時。
通過以上的命令,我們可以很容易的對Linux硬件和軟件子系統(tǒng)進行性能測試。
三、LMBench的優(yōu)缺點
優(yōu)點:
1. 靈活性高:LMBench支持不同類型的測試子系統(tǒng),這使得測試人員可以使用不同類型的測試場景,以更好的評估系統(tǒng)的性能。
2. 測試覆蓋面廣:LMBench涵蓋了許多硬件和軟件組件的性能測試,例如:CPU、內存、硬盤、網絡、文件系統(tǒng)等。
3. 可靠性高:LMBench的測試程序是基于內核模塊驅動的,其中包含了許多不同類型的內核模塊驅動程序,能夠測試各種常用硬件設備的性能,測試結果更可靠。
缺點:
1. 對于初學者而言,LMBench的使用門檻有些高。
2. LMBench測試運行時間較長,在測試過程中可能會影響其他應用程序的運行,需要謹慎使用。
3. LMBench測試結果的解釋需要一定的技術知識,需要專業(yè)技術人員的解讀。
綜上所述,LMBench是Linux系統(tǒng)中一款功能強大、可靠性高的性能測試工具。在Linux系統(tǒng)中運行LMBench工具,可以有效地分析不同的硬件和軟件子系統(tǒng)的性能指標,從而對系統(tǒng)的性能進行全面評估。但對于新手而言,使用LMBench的門檻較高,需要較高的專業(yè)技術知識和測試運維經驗,因此需要謹慎使用。
成都網站建設公司-創(chuàng)新互聯,建站經驗豐富以策略為先導10多年以來專注數字化網站建設,提供企業(yè)網站建設,高端網站設計,響應式網站制作,設計師量身打造品牌風格,熱線:028-86922220嚴重關注:在嵌入試LINUX系統(tǒng)該使用哪個線程庫
嚴重關注: 在嵌入試LINUX系統(tǒng)該使用哪個線程庫?:30:02
分類: LINUX
在Redhat9.0下面, 創(chuàng)建一個進程。getpid();得到進程ID,然后在進程里用pthreadcreate幾個線程,在線程里調用getpid, pthreadgetselfid()的到進程ID和線程ID, 發(fā)現該線程的進程ID和它所屬的進程ID是一樣的, 線程ID卻不同。當是在小機里用gcc里的線程庫,得到的結果是線程ID和進程ID是不同的,即線程也當作進程來對待,而且多了幾個其它線程在運行,若線程當作進程來對待效率是比較低的。在網上查了下linux的線程庫,發(fā)現新內核中的LD用的是The Native POSIX Thread Library (NPTL), 而小機上用的是老的GCC里的線程庫。
如何在Redhat9上面用老的線程庫呢,在系統(tǒng)環(huán)境變量中加入LD_ASSUME_KERNEL=2.4.19就OK了
因為老版本內核中是不用NPTL庫的, 這樣LD連接程序的時候就不用NPTL, 在PC LINUX的
小機模擬器的模擬就和小機一樣不用NPTL了。
那么到底是不是該把小機的線程庫換成NPTL呢, 看看來自
的測試吧:
Linux 線程庫性能測試與分析
楊沙洲國防科技大學計算機學院
2023 年 7 月 01 日
NPTL 成為 glibc “正選”線程庫后,它的性能如何受到很多人的關注。本文就針對NPTL 與 LinuxThreads 的性能比較,以及超線程、內核可搶占等特性對線程性能的影響進行了全面評測。
一、 前言
在 Linux 2.6.x 內核中,調度性能的改進是其中最引人注目的一部分。NPTL(Native Posix Thread Library)使用內核的新特性重寫了 Linux 的線程庫,取代歷史悠久而備受爭議的 LinuxThreads 成為 glibc 的首選線程庫。
NPTL 的性能究竟如何?相對 LinuxThreads 又有哪些明顯的改進?在對NPTL進行全面分析之前,本文針對這兩種線程庫,以及內核中”內核可搶占”(Preemptible)和超線程(HyperThreading)等特性進行了全面的性能評測,結果表明NPTL絕對值得廣大服務器系統(tǒng)期待和使用。
回頁首
二、 Benchmark
1. 測試平臺
進行本測試的硬件平臺為浪潮NF420R服務器,4個Hyperthreading-enabled Intel Xeon 2.2G處理器,4G內存。Linux選擇了Slackware 9.0發(fā)行版,所使用的內核源碼來自
www.kernel.org
。
2. 針對測試:LMBench
lmbench是一個用于評價系統(tǒng)綜合性能的多平臺開源benchmark,但其中沒有對線程的支持。其中有兩個測試進程性能的benchmark:lat_proc用于評測進程創(chuàng)建和終止的性能,lat_ctx用于評測進程切換的開銷。lmbench擁有良好的benchmark結構,只需要修改具體的Target程序(如lat_proc.c和lat_ctx.c),就可以借用lmbench的計時、統(tǒng)計系統(tǒng)得到我們關心的線程庫性能的數據。
基于lat_proc和lat_ctx的算法,本文實現了lat_thread和lat_thread_ctx兩個benchmark。在lat_thread中,lat_proc被改造成使用線程,用pthread_create()替代了fork(),用pthread_join()替代wait();在lat_thread_ctx中,沿用lat_ctx的評測算法(見lat_ctx手冊頁),將創(chuàng)建進程的過程改寫為創(chuàng)建線程,仍然使用管道進行通信和同步。
lat_thread null
null參數表示線程不進行任何實際操作,創(chuàng)建后即刻返回。
lat_thread_ctx -s #threads
size參數與lat_ctx定義相同,可表示線程的大?。▽嶋H編程時為分配K數據;#threads參數為線程數,即參與令牌傳遞的線程總數,相當于程序負載情況。
3. 綜合測試:Volanomark
volanomark是一個純java的benchmark,專門用于測試系統(tǒng)調度器和線程環(huán)境的綜合性能,它建立一個模擬Client/Server方式的Java聊天室,通過獲取每秒平均發(fā)送的消息數來評測宿主機綜合性能(數值越大性能越好)。Volanomark測試與Java虛擬機平臺相關,本文使用Sun Java SDK 1.4.2作為測試用Java平臺,Volanomark版本2.5.0.9。
回頁首
三、 測試結果
測試計劃中將內核分為2.4.26、2.6.6/支持內核搶占和2.6.6/不支持內核搶占三類;通過配置內核以及NF420R的BIOS實現三類P規(guī)模:單處理機(UP)、4CPU的P(P4)和打開超線程支持的虛擬8CPU P(P8*)。內核配置和P規(guī)模的每一種組合都針對LinuxThreads和NPTL使用lat_thread、lat_thread_ctx和volanomark獲取一組數據。由于NPTL無法在2.4.x內核上使用,該項數據空缺。
回頁首
四、 結果分析
1. LinuxThreads vs NPTL:線程創(chuàng)建/銷毀開銷
使用2.6.6/preemptible內核配置下UP和P4的測試數據獲得下圖:
圖1
在線程創(chuàng)建/銷毀開銷方面,NPTL的改進相當明顯(降低約600%)。實際上,NPTL不再像LinuxThreads那樣需要使用用戶級的管理線程來維護線程的創(chuàng)建和銷毀,因此,很容易理解它在這方面的開銷能夠大幅度降低。
同時,由圖可見,單CPU下創(chuàng)建線程總是比多CPU下迅速。
2. LinuxThreads vs NPTL:線程切換開銷
同樣使用2.6.6/preemptible內核配置下UP和P4的數據:
圖2
隨著lat_thread_ctx的參與線程增多,不管是哪個線程庫,單處理機條件下的線程切換開銷都陡峭上升,而P條件下則上升比較平緩。在這方面,LinuxThreads和NPTL表現基本相同。
3. 內核影響
圖3
圖4
圖5
圖6
從上面四張圖中我們可以得出兩點結論:
“內核可搶占”是Linux對實時應用提供更好支持的有力保障,但對線程性能影響很小,甚至有一點損失,畢竟搶占鎖的開銷不可忽略;
升級內核并不會對LinuxThreads線程庫性能帶來多少變化,因此,對于服務器系統(tǒng)而言,不能指望僅僅編譯使用新內核就能提高性能。
圖7
圖8
從圖3、圖4我們已經知道,打開超線程支持對線程創(chuàng)建/銷毀性能幾乎沒有影響,而這兩張圖表也進一步說明,超線程技術對于線程切換開銷也沒有明顯的影響。超線程技術是CPU內部的優(yōu)化技術,和真正的雙CPU完全不同。大量研究表明,如果沒有內核與用戶應用相結合的專門優(yōu)化措施,超線程并不會帶來很大的性能變化。除非是高負載綜合服務器系統(tǒng)(例如繁忙的數據庫系統(tǒng)),購買超線支持的CPU并不能帶來多少好處。
4. 綜合性能
圖9
圖9
前面幾節(jié)分析讓我們了解了線程庫性能改進的細節(jié),通過volanomark測試,我們可以近似得到在綜合應用環(huán)境下,特別是網絡服務需求中線程庫以及內核對系統(tǒng)整體性能的影響程度。
圖9綜合了不同內核、不同處理機數條件下,兩種線程庫的volanomark結果。從圖中可以觀察到以下三點:
NPTL能極大提高P環(huán)境下服務器系統(tǒng)的整體性能(超過65%),相對而言,對單處理機系統(tǒng)影響較?。?0%左右);
2.6內核的搶占特性對系統(tǒng)性能影響很?。ú怀^±1%),某些情況下甚至有所下降;
超線程技術在LinuxThreads中的影響是負面的,在NPTL中是正面的,但影響幅度都很小(5%-6%)。
如何在LINUX下查看內存大?。–語言)
一般的說,凡是帶有微處理器的專用軟硬件系統(tǒng)都可以稱為嵌入式系統(tǒng)。和通用的計算平臺相比,嵌入式系統(tǒng)往往具有功能單一、體積小、功耗低、可靠性高、剪裁性好、軟硬件集成度高、計算能力相對較低等特點。
一般的說,凡是帶有微處理器的專用軟硬件系統(tǒng)都可以稱為嵌入式系統(tǒng)。和通用的計算平臺相比,嵌入式系統(tǒng)往往具有功能單一、體積小、功耗低、可靠性高、剪裁性好、軟硬件集成度高、計算能力相對較低等特點。多年來,嵌入式設備中沒有操作系統(tǒng),其主要原因有二:首先,諸如洗衣機、微波爐、電冰箱這樣的設備僅僅需要一道簡單的控制程序,以管理數量有限的按鈕和指示燈,沒有使用操作系統(tǒng)的必要;其次,它往往只具有有限的硬件資源,不足以支持一個操作系統(tǒng)。
看下lmbench的源碼 (
)
操作系統(tǒng)概念學結
經過一天半的戰(zhàn)斗,終于把操作系統(tǒng)概論這本書給拿下了。對于曾經專業(yè)課學過一些電腦硬件知識的我來說,這本書更加吸引我,以前一些聽過的名詞或高大上的詞語在這本書上被詳細介紹了,看的非常有收獲。下面來總結下自己的收獲:
首先之一章引論,在這里首先介紹了計算機系統(tǒng),包括了軟件和硬件兩部分。
接下來就是之一章的重點:操作系統(tǒng)。如下圖:
當前流行的操作系統(tǒng)有windows、unix、linux等。微軟的windows系統(tǒng)經歷了一個從簡單到復雜,從低級到高級的過程;從ms-dos—windows 3—windows 95—windows 98—windows nt—windows 2023,再到現在win7、8甚至win10,微軟始終在進步。unix是一個通用的交互式分時操作系統(tǒng),有at&t公司下屬的bell實驗室開發(fā),在誕生后,源代碼就一直公開,用戶可以參與到unix的升級中。unix的特點:1.短小精悍;2.可裝卸的多層次文件系統(tǒng);3.可移植性好;4.網絡通信功能強。linux是網絡時代的產品,繼承于unix,并做了很多改進。
之一章總領了全書,后面的二三四五六章都是講的計算機的各種管理,總結如下圖:
在這里我把每章中的重點用紅色的顏色標記出來了,這樣在精讀的時候就可以有重點的向外擴散,抓住考點,征服考試。之一遍閱讀畫的有點粗糙,在精讀的時候再大大的豐富下。
操作系統(tǒng)概念學結
1.什么是計算機性能
所謂計算機的性能(performance)通常是指計算機的速度,它是程序執(zhí)行時間的倒數。而程序執(zhí)行時間是指用戶向計算機送入一個任務后,直到獲得他需要的結果這一段等待時間。
包括:
1.訪問磁盤和訪問存儲器的時間
2.cpu 運算時間
#url#動作時間
4.操作系統(tǒng)的開銷時間等。
2.linux桌面操作系統(tǒng)性能分析意義
1.操作系統(tǒng)的性能直接影響了其上應用系統(tǒng)的性能
2.性能評估結果是用戶在操作系統(tǒng)選購過程中的重要參考指標
3.為開發(fā)者優(yōu)化操作系統(tǒng)的性能提供指導
4.為操作系統(tǒng)的評測提供依據
3.linux桌面操作系統(tǒng)性能分析難點
1.應用千差萬別
2.測試點過多
3.依賴多種因素和特征
4.沒有針對性
5.沒有實際應用前景
4.如何評測計算機的性能
1.機器級的性能評測
機器級的性能評測,包括 cpu 和存儲器的某些基本性能指標,計算機的可用性與有效性以及機器成本、價格與性/價比等,它是引進和購買計算機時最主要的選擇依據。
2.算法級的性能評測
算法級的性能評測方法主要用于并行機評測,最初大都是為了評價并行算法的性能提出的,后來這些評測方法也被推廣到并行程序上。
3.程序級的性能評測
程序級的性能評測主要是使用一組基準測試程序(benchmark)測試和評價計算機系統(tǒng)的各種性能。
5.測試程序準確度層次
1.真實程序
通過運行實際應用程序, 例如 c 語言的各種編譯程序、 tex 文本處理軟件、 cad 設計工具 spice等
2.核心程序
它是從實際程序中抽取少量但很關鍵的代碼段,并以此來評估程序性能
3.小測試程序
這些測試程序的代碼長度一般在100行之內,用戶可以根據自己的目的隨時編寫一些小段程序,并按已預知的輸出結果(如皇后問題、排序問題、求素數等)來判斷機器的性能。
4.綜合測試程序
它是首先對大量的應用程序中的操作進行統(tǒng)計,得到各種操作比例,再以此比例人為制造出測試程序。
6.基準測試 6.1 含義
基準測試程序用于測試和預測計算機系統(tǒng)的性能, 揭示不同結構機器的長處和短處,為用戶決定購買或使用哪種機器最適合他們的應用要求提供決策?;鶞蕼y試程序試圖提供一個客觀、公正的評價機器性能的標準。
6.2 分類
宏觀微觀:
宏觀基準測試程序(macro-benchmark)和微觀基準測試程序(micro-benchmark)兩大類。 前者將計算機系統(tǒng)作為一個整體來測試其性能,它相對于某一應用類來比較不同的計算機系統(tǒng),所以對機器買主很有用,但它不能揭示計算機系統(tǒng)性能好、壞的原因。后者是測試機器的某一特定方面的性質,如cpu速度、存儲器速度、i/o速度、os性能、網絡特性等。
應用類別:
定點性能
浮點性能
web服務性能
數據處理性能
系統(tǒng)軟件性能
科學與工程計算性能
6.3 主要的基準測試工具
lmbench
是由sgi的larry mcvoy所維護,是一種用于測試不同 unix 平臺上 os 開銷以及處理器、高速緩存、主存、網絡和磁盤之間數據傳輸能力的可移植的基準測試程序。
whetstone
比較不同的計算機的浮點性能而設計的綜合性基準測試程序。lmbench 著重測量以下內核組件:調度程序、進程管理、通信、聯網、內存映射和文件系統(tǒng)。
dhrystone
主要為測試整數與邏輯運算性能而設計的綜合型基準測試程序whetstone,dhrystone不能預測用戶程序性能,這些基準程序的主要缺點是對編譯程序比較敏感。
linpack
測試的基準是用全精度64位字長的子程序求解100階線性方程組的速度,測試的結果以mflops(每秒百萬次浮點運算)作單位給出。
spec
原主要是測試cpu性能的,現在強調開發(fā)能反映真實應用(如實際負載等)的基準測試程序,并已推廣至客戶/服務器計算、商業(yè)應用、i/o子系統(tǒng)等。
unixbench
應用比較廣泛的unix類操作系統(tǒng)性能測試工具之一,它屬于微觀基準測試程序,它主要從cpu浮點運算能力,以不同緩沖區(qū)大小拷貝不同大小文件,管道吞吐量,進程生成速度,系統(tǒng)調用開銷等方面來測試linux相關性能。
xbench
主要測試 xwindow 圖形界面的性能。
iozone
文件系統(tǒng)的評測工具,對read,write,re-read,re-write,read backwards,read
strided,fread,fwrite,random read,pread,mmap,aio-read,aio_write 等一系列文件i/o性能進行了評測,是十分有用的文件系統(tǒng)性能分析工具。
ltp
更大的 linux 性能測試團體 linux test project 開展的開源測試項目, 這個團體專門從事 linux 性能測試研究。 這個項目收集了各種 linux 內核測試工具和相關資料, 它的目標就是為了通過把自動化測試引入到 linux 內核測試以提高linux 內核性能。
6.4 現狀和不足
linux 基準測試程序都是微觀基準測試程序,都是在測試機器的某一特定方面的性質,分別著重于 cpu 速度、存儲器速度、i/o 速度、網絡特性等等某一方面或多個方面,偏重于硬件。把 linux 操作系統(tǒng)作為一個整體,針對 linux 的操作系統(tǒng)性能的宏觀基準測試程序目前還沒有。
現有的linux測試工具都是基于微觀基準測試程序,對于操作系統(tǒng)而言微觀可測點實在是太多,寫一個全面的基于自頂向下三層的全面測試工具工作量大,并且也沒有太大實用價值。畢竟應用是千差萬別的,不利于在有限的時間內快速的得出 linux 版本性能優(yōu)劣結論。
7.性能評測方法學
如何進行性能評測,一般一個性能評測的實際解決方案應該包括以下三個方面:
1.讓被評測系統(tǒng)處于壓力負荷下;
2.測量系統(tǒng)執(zhí)行有效特定任務的能力,執(zhí)行特定任務的耗時,執(zhí)行特定任務的 cpu 利用率;
3.基于性價比考慮進行改進。進行性能評測分析的目的是為了幫助開發(fā)人員更好更深層次的理解系統(tǒng), 找出系統(tǒng)瓶頸,并作出相應的改進。
8.三種性能評價技術
1.分析技術(modeling)
分析技術也叫建模分析,在一定假設條件下,計算機系統(tǒng)參數與性能指標參數之間存在著某種函數關系,按其工作負載的驅動條件列出方程,用數學方法求解。
2.模擬技術(simulation)
模擬技術按被評價系統(tǒng)的運行特性建立系統(tǒng)模型; 按系統(tǒng)可能有的工作負載特性建立工作負載模型;語言編寫模擬程序,模仿被評價系統(tǒng)的運行;設計模擬實驗,依照評價目標,選擇與目標有關因素,得出實驗值,再進行統(tǒng)計、分析。該技術的特點是可應用于設計中或實際應用中的系統(tǒng),可與分析技術相結合,構成一個混合系統(tǒng)。
3.測量技術(measurement)
測量技術只能對已投入使用的系統(tǒng)進行測量, 通常采用不同層次的基準測試。
9.工作量選區(qū)(workload)
工作量就是模擬實際工作的工作任務,一個工作量它要產生針對該被評測系統(tǒng)實際工作應用的典型的工作任務,并且該工作任務應該對系統(tǒng)產生相應的壓力負荷 ,一個好的性能評測工作量應該包括以下基本特征。
可測量性
可反復性
不變性
典型性
10.自頂向下分析法
1.系統(tǒng)層(system level):包括處理器、內存、硬盤、網絡等;(硬件資源)
2.應用層(appalication level):包括鎖、線程、堆、api 等;(程序資源)1
3.微結構層(micro-achitecture):包括數據隊列、循環(huán)結構、cache 優(yōu)化等。
11.衡量linux桌面系統(tǒng)性能評價的主要標準和參數
1.響應時間(elapsed time)
內核完成某一任務(程序)所花費的時間,如磁盤訪問、存儲器訪問、輸入/
輸出等待。
2.cpu 時間
程序在cpu中的執(zhí)行時間。以秒為單位。
3.cpu 利用率
12.衡量linux桌面操作系統(tǒng)性能評價的主要標準
提供一個統(tǒng)一的、客觀的、公正的和可相互比較的評價計算機的標準。
1.權威性
不是自己憑空想象,要有可靠的理論及事實依據支撐,業(yè)界廣泛認可。
2.系統(tǒng)化
不是現有benchmark和工具的簡單組合,而是能夠系統(tǒng)化評估整機性能的方案。
它能夠反映出整個計算機軟件及硬件的綜合處理能力,而不單純是軟件或者硬件,也就是說同一個硬件平臺上測試,能夠反映出不同操作系統(tǒng)性能不同,且在同一個操作系統(tǒng),在不同的硬件平臺上,性能測試也應該有所不同。
3.全面性
是對整機的整體性能測試,不是單純的某個硬件或者某一方面能力的測試。
4.實用
要求該方法有實用價值,參考意義。
5.公正性
不一某些利益為目的的。
13.如何確定測試負載
從微觀基準理論的角度來看,操作系統(tǒng)的基本性能參數實在是太多,基本性能參數測試包括 cpu、內存、i/o、網絡、操作系統(tǒng)、文件系統(tǒng)、編譯器、數據庫的性能指標。
從宏觀基準測試理論出發(fā)就簡單多了, 主要是要確定合適的工作量來模擬有代表性的用戶作業(yè)。工作量的確定需要一定的理論依據,可以借鑒現有各種linux 測試工具實踐結果。
14.如何測試linux操作系統(tǒng)性能
linux 桌面操作系統(tǒng)是近幾年來基于 linux 內核發(fā)展起來的面向用戶桌面應用的操作系統(tǒng),內核還是基于 linux,只是在其上添加了很多窗口程序,并且在用戶界面和友好度上作出了很大的改進,更加易用和實用。
測試 linux 性能的關健在于測試 linux 內核性能,而測試 linux內核性能又可以細化成五大子系統(tǒng)的測試??梢葬槍群诉@五大子系統(tǒng)設計工作量負載。
操作系統(tǒng)概念學結
linux操作系統(tǒng)學結(一)
最近粗略地看了一遍linux操作系統(tǒng)的書籍,主要講的都還是一些概念上的知識,并沒有深入地去了解內核以及內部機制。現在總結一下看了書后的一些知識上的收獲:
linux更大的魅力是支持gpl,并且以網絡為核心。其實操作系統(tǒng)的作用就是有效地整合軟、硬件資源而為用戶工作。操作系統(tǒng)提高了開發(fā)的效率,我學習linux,關鍵也是在于研究了解其內核構造。
說到linux的歷史,其最初版本是有芬蘭的一個大學生linustorvalds開發(fā)的,現在的linux版本是聚集了很多人的智慧后開發(fā)出來的。linux包含了人們對操作系統(tǒng)的很多期望,比如真正的多任務、虛擬內存、世界上最快的tcp/ip程序、共享庫以及多用戶支持等,而很多這些功能在windos中都是沒有支持的。linux繼承了unix的幾乎所有特征,又有新創(chuàng)的許多新特征。在home根目錄下可以創(chuàng)建多個用戶目錄,而實現多用戶操作。其文件系統(tǒng)與windos也是有很大的區(qū)別的。linux還有豐富的接口。它的源碼開放,可以跨越多個平臺??傊?,linux的強勢在與它的網絡功能和硬件的高效率。
linux是以獨占方式執(zhí)行更低層的任務,包括程序級及用戶級的級別。與圖形界面比起來,shell用起來更加直接與快速。設備驅動程序開發(fā)在linux下顯得更加簡單和方便。從linux2.0內核版本開始支持多內核模式,并且引入動態(tài)的模塊技術,是系統(tǒng)在運行時可以修改內核,實現了內核的動態(tài)可伸縮性,但是也帶來了一定的負面影響即不穩(wěn)定性。
我國的linux研究仍然走在世界一流水平的后面。linux內核發(fā)展方向主要是硬件支持,嵌入式系統(tǒng)和分布式系統(tǒng)三個方面。這需要大量的硬件驅動程序開發(fā)以及互聯網分布式系統(tǒng)開發(fā)。
處理機即為cpu。在但處理機系統(tǒng)中,并不存在真正意義上的并發(fā)執(zhí)行,只是串行執(zhí)行的家鄉(xiāng)而已。提高處理機的使用率關鍵是要合理地安排各個程序之間的相互切換。作業(yè)其實就是用戶的一個請求,而聯機作業(yè)需要各個設備之間的交互性地執(zhí)行。shell命令具有交互性,實時性較強,可以一次執(zhí)行一條命令或者批處理執(zhí)行腳本命令。進程是動態(tài)執(zhí)行的程序。linux下的進程應該與windos下的進程是一致的,每一個進程都有一個唯一的標識號。而進程樹清晰地展現了進程之間的關系。進程控制塊pcb包含了處理器以及文件系統(tǒng)的大量信息,很多進程都是根據pcb來進行調度的。
linux中使用的虛擬存儲器的作用是使用有限的內存發(fā)揮出巨大的作用,根據程序運行的局部原理來吧物理內存劃分成有一定規(guī)則的小塊,每次只裝入需要運行的小塊到內存中運行。這需要合理地調配內存與外存之間的關系,把內存中不需要的小塊暫時存放至外存之中,而cpu只進行部分程序的訪問。通過多次地交換內外存之間的信息來制造假象,這就是虛擬內存。系統(tǒng)采用段機制以及三級分頁機制。
我們知道設計操作系統(tǒng)的目的是為了更大限度地利用硬件資源,是cpu盡可能地處于工作狀態(tài),這就需要一個良好的cpu調度了。處理機調度的級別從高至低依次分為作業(yè)調度、交換調度、進程調度和線程調度。作業(yè)調度是更高級別的,是針對作業(yè)的創(chuàng)建以及結束進行的;交換調度是指進行內外存之間進程的相互調換;進程調度是指進程的各個狀態(tài)之間的轉換;而最后的線程調度是指占用處理機與否之間的轉換。
外設通常是指除了cpu與內存之外的硬件設備統(tǒng)稱外設。通過接口進行連接和統(tǒng)一管理。設備管理的目的是管理協(xié)同好繁多的外部設備,是它們能夠有序的工作。在linux中把設備當作文件進行統(tǒng)一管理,可以用文件操作方式來操作硬件設備。設備驅動程序的作用是直接操作硬件,并且為其提供接口。
linux的文件系統(tǒng)是其很重要的一個部分。文件系統(tǒng)進行數據以及設備的統(tǒng)一管理,并為用戶命令和系統(tǒng)函數提供統(tǒng)一的服務接口。在進程控制塊pcb中有文件的系統(tǒng)信息。把設備均抽象為文件進行統(tǒng)一的管理,并為設備管理提供統(tǒng)一的接口。
默認的文件系統(tǒng)是ext2。虛擬文件系統(tǒng)是位于linux文件系統(tǒng)層析結構的頂層,進行管理各種邏輯文件系統(tǒng),或者說是同化各類邏輯文件系統(tǒng),實現其跨平臺的特性。
linux文件系統(tǒng)采用多重索引的方式,類似于數據結構中的鏈表方式。文件系統(tǒng)中的每一個文件,目錄以及設備均同級,并且對應于一個i節(jié)點。內存中的i節(jié)點是磁盤中的i節(jié)點的映像,目的是減少設備存取的次數,提高文件的訪問效率。
linux目錄本身也是一種文件,稱為目錄文件。單級目錄存在文件命名的沖突,而在多級目錄中,使用目錄樹來記錄目錄結構。在文件共享中,一般使用文件的絕對路徑來訪問文件,如果要進行共享文件的話,必須先回溯,在向下尋找共享的文件,這樣的方法效率比較低下。而通過改進的鏈接文件的方法進行文件共享,會使目錄樹形成網狀結構。
linux系統(tǒng)的根目錄是root目錄,其下面有多個默認的子目錄。bin是實用程序的子目錄,存放常用的系統(tǒng)工具;boot子目錄存放系統(tǒng)啟動時的映像文件;dev子目錄中為每個設備均分配了一個i節(jié)點;ect是基本數據子目錄,存放系統(tǒng)的用戶口令,網絡配置等設置文件;home是用戶數據子目錄,默認情況下的用戶登錄后均到達這個子目錄;lib目錄存放庫函數;root是超級管理員的用戶目錄等。
虛擬文件系統(tǒng)vfs進行統(tǒng)一管理各種類型的文件系統(tǒng),無法存在于物理磁盤當中,只能存在與內存之中,負責管理并控制下層的邏輯文件系統(tǒng),可以支持多種不同的邏輯文件系統(tǒng),它為多種邏輯文件系統(tǒng)提供了統(tǒng)一的接口并進行管理。
總之,粗略地學習了linux操作系統(tǒng)知識后,對整個系統(tǒng)的架構和組成有了一定的了解,特別是linux特殊的文件系統(tǒng)和存儲管理有了較深的印象和理解。今后有機會一定要更深地了解linux的內部構造。
操作系統(tǒng)概念學結
1.什么叫同步? 相互合作的兩個進程之間需要在某個(些)確定點協(xié)調它們的工作,一個進程到達了該點后,除非另一進程已經完成了某些操作,否則就不得不停下來,等待這些操作的完成。這就是進程間的同步。
什么叫互斥?
兩個進程由于不能同時使用同一臨界資源,只能在一個進程使用完了,另一進程才能使用,這種現象稱為進程間的互斥。
①同步的主要特征是:一個進程在某一點上等待另一進程提供信息,兩進程之間存在直接制約關系,其表現形式為進程—進程。②互斥的主要特征是爭用資源,兩進程間存在間接制約關系,其表現形式是進程—資源—進程。
2.試給出p、v操作的定義。
p、v操作是定義在信號量s上的兩個操作,其定義如下:
p(s):①s:=s-1;②若s≥0,則調用p(s)的進程繼續(xù)運行;③若s<0,則調用p(s)的進程被阻塞,并把它插入到等待信號量s的阻塞隊列中。
v(s):①s:=s+1;②若s>0,則調用v(s)的進程繼續(xù)運行;③若s≤0,則從等待信號量s的阻塞隊列中喚醒頭一個進程,然后調用v(s)的進程繼續(xù)運行。
如何利用p、v操作實現進程間的互斥?
p、v操作是解決同步與互斥問題的有力工具。為解決互斥問題,應采取如下步驟: 首先根據給定問題的描述,列出各進程要執(zhí)行的程序。其次,設置信號量?;コ鈫栴}中,在臨界區(qū)前面加p(s),臨界區(qū)后面加v(s)。最后確定信號量的初值。在互斥問題中,信號量通常取為互斥資源的個數。
說明信號量的物理意義:
信號量s>0時,s的`數值表示某類可用資源的數目,執(zhí)行p操作意味著申請分配一個單位的資源;當s≤0時,表示無資源可用,此時s的絕對值表示信號量s的阻塞隊列中的進程數。執(zhí)行v操作意味著釋放一個單位的資源。
3.如何利用p、v操作實現進程間的同步?
p、v操作是解決同步與互斥問題的有力工具。為解決同步問題,應采取如下步驟:首先根據給定問題的描述,列出各進程要執(zhí)行的程序。其次,設置信號量。同步問題中有幾個同步點就設置幾個信號量,等待的地方加p(s),發(fā)信號(解除等待)的
地方加v(s)。最后確定信號量的初值。在同步問題中,信號量的初值一般取0.在同步和互斥中,信號量初值的設置有何不同:在同步問題中,信號量的初值一般取為0,在互斥問題中,信號量通常取為互斥資源的個數。
4.高級通信原語有何優(yōu)點?
能夠實現在進程之間傳遞大量的信息。
在消息緩沖通信方式中,發(fā)送原語和接收原語的主要功能是什么?
發(fā)送原語的作用:將欲發(fā)送的消息從發(fā)送區(qū)復制到消息緩沖區(qū),并把它掛起在接收進程的消息緩沖隊列末尾。如果該接收進程因等待消息而處于阻塞狀態(tài),則將其喚醒。
接收原語的作用:把發(fā)送者發(fā)來的消息從消息緩沖區(qū)復制到接收區(qū),然后將消息緩沖區(qū)從消息隊列中消去,如果沒有消息可以接收,則進入阻塞狀態(tài)。
5.什么是信箱?
信箱用于存放信件,而信件是一個進程發(fā)送給另一進程的消息。
信箱的數據結構:信箱頭和信箱體。信箱頭是信箱的描述部分,信箱體由若干格子組成,每個格子可存放一個信件。
信箱頭包括的信息:①信箱名②信箱大?、垡汛嫘偶耽芸盏母褡訑怠?/p>
如何用信箱實現兩個進程之間的通信?
進程a想向進程b發(fā)送消息前,先把消息組成一封信件,然后調用send原語向進程b發(fā)送信件,并將信件投入進程b的信箱中。進程b為得到進程a的消息,只要調用receive原語就可以從信箱中索取來自進程a的信件。這就完成了一次進程a到進程b的通信過程。
6.在網絡操作系統(tǒng)中,為什么要采用消息傳遞的通信機制?
基于共享變量的通信方式適用于網絡中各節(jié)點內部諸進程之間的通信,而基于消息傳遞的通信方式適用于網絡中各節(jié)點之間的進程通信。
在消息傳遞的通信機制中有哪些通信方式?①通信原語 ②遠程過程調用 ③組通信。
7.什么是同步原語?
當一個進程調用一個send原語時,在消息開始發(fā)送后,發(fā)送進程便處于阻塞狀態(tài),直至消息完全發(fā)送完畢,send原語的后繼語句才能繼續(xù)執(zhí)行。當一個進程調用一個receive原語時,并不立即返回控制,而是等到把消息實際接收下來,并把它放入指定的接收區(qū),才返回控制,繼續(xù)執(zhí)行該原語的后繼指令。在這段時間它一直處于阻塞狀態(tài)。上述的send和receive被稱為同步通信原語或阻塞通信原語。
什么是異步原語?發(fā)送進程在調用send原語后,并不進入阻塞狀態(tài),它不等消息發(fā)送完就繼續(xù)執(zhí)行其后繼語句。
在使用異步通信原語時,發(fā)送者在消息發(fā)送完成前為什么不能使用緩沖區(qū)?
因為倘若發(fā)送進程在消息發(fā)送完成之前,即在消息發(fā)送期間使用或修改原來的緩沖區(qū),將會造成錯誤。
如何解決?
有兩種辦法(應采用異步原語):①采用帶拷貝的非阻塞原語,即讓內核把消息拷貝到內核緩沖區(qū),允許調用進程繼續(xù)運行。②帶中斷的非阻塞發(fā)送,即當消息發(fā)送完成后,中斷發(fā)送進程,通知發(fā)送進程此時緩沖區(qū)可用。
8.在進程間通信如何保證消息不會丟失?
為了保證消息被對方收到,可采用可靠原語。具體作法是:客戶向服務器方發(fā)一請求后,服務器對這一請求,由其內核向客戶內核返回一個確認ack,當客戶內核收到這一消息后,就喚醒客戶進程。在客戶與服務器之間的請求/應答共需四個消息:①從客戶向服務器的請求②從服務器內核向客戶內核返回一個確認③從服務器到客戶的應答④從客戶的內核向服務器內核返回一個確認。
9.遠程過程調用:在網絡或分布式系統(tǒng)中,設有任意兩個節(jié)點a、b,節(jié)點a上的進程調用節(jié)點b上的一個進程時,節(jié)點a上的進程被掛起,在節(jié)點b上執(zhí)行被調用的過程,消息以參數的形式從調用進程傳送到被調用進程,并將被調用過程執(zhí)行的結果返回給調用進程。這種通信方式稱為遠程過程調用。
其基本原理是什么?
允許某一節(jié)點上的程序調用其他節(jié)點上的過程或函數。例如節(jié)點機a上的進程調用節(jié)點機b上的過程,節(jié)點機a的調用進程被掛起,在節(jié)點機b上執(zhí)行被調用過程。消息以參數的形式從調用過程傳到被調用過程,被調用過程執(zhí)行的結果再返回給調用過程。對程序員來說,他看不到消息傳遞過程和i/o處理過程。
10.rpc的透明性指的是什么?
指的是要使得遠程過程調用盡可能像本地調用一樣。調用過程應該不知道被調用過程是在另外一臺計算機上執(zhí)行,反過來也是如此,被調用過程也不應該知道是由哪個機器上的進程調用的。如何保證這一透明性:遠程過程調用為實現其透明性,在客戶機上設置一個客戶代理,同樣在服務器機上設置一個服務器代理。
11.簡述遠程過程調用的步驟。
①客戶過程以通常方式調用客戶代理。②客戶代理構造一個消息并陷入內核。③本地內核發(fā)送消息給遠程內核。④遠程內核把消息送給服務器代理。⑤服務器代理從消息包中取出參數并調用服務器。⑥服務器完成相應的服務,將結果送給服務代理。⑦服務代理將結果打包形成一個消息并陷入內核。⑧遠程內核發(fā)送消息給客戶機內核。⑨客戶機內核把消息傳送給客戶代理。⑩客戶代理取出結果,返回給客戶的調用程序。并以實例說明。
12.試說明遠程過程調用的優(yōu)缺點。
優(yōu)點:格式化好、使用方便、透明性好;
缺點:缺乏靈活性。
在具體實現上尚有哪些難點需要解決?
①遠程過程調用的參數在系統(tǒng)內不同機型之間的通用能力有所不足。②缺乏在一次調用過程中多次接收返回結果的能力。③遠程過程調用缺乏傳送大量數據的能力。
13.什么叫組通信?
在網絡系統(tǒng)中,一個相互作用的進程稱為組。一個發(fā)送者在一次操作中將一個消息發(fā)送給多個接收者的通信,稱為組通信。
它應用于何種場合?在網絡系統(tǒng)中可以采用組通信方式。
組通信的主要特征是?當一個消息發(fā)送給這個組時,該組的所有成員都可以接收,組通信具有“一對多”的形式,即一個發(fā)送者,多個接收者。
linux lmbench的介紹就聊到這里吧,感謝你花時間閱讀本站內容,更多關于linux lmbench,Linux下的性能測試工具——LMBench介紹,嚴重關注:在嵌入試LINUX系統(tǒng)該使用哪個線程庫,如何在LINUX下查看內存大?。–語言),操作系統(tǒng)概念學結的信息別忘了在本站進行查找喔。
成都創(chuàng)新互聯科技公司主營:網站設計、網站建設、小程序制作、成都軟件開發(fā)、網頁設計、微信開發(fā)、成都小程序開發(fā)、網站制作、網站開發(fā)等業(yè)務,是專業(yè)的成都做小程序公司、成都網站建設公司、成都做網站的公司。創(chuàng)新互聯公司集小程序制作創(chuàng)意,網站制作策劃,畫冊、網頁、VI設計,網站、軟件、微信、小程序開發(fā)于一體。
當前名稱:Linux下的性能測試工具——LMBench介紹(linuxlmbench)
鏈接地址:http://www.dlmjj.cn/article/cdeiijh.html


咨詢
建站咨詢
