⑴ 為什麼編譯器IAR 暫停或中斷後,watching窗口不停是閃爍
這樣的問題我沒有遇到過。卸載掉,重裝個最新版本的試一下吧!
⑵ 關於伺服器的問題:AIX v5.3 ,是一種操作系統么
AIX 全名為(Advanced Interactive Executive),它是IBM 公司的Unix操作系統,
整個系統的設計從網路、主機硬體系統,到操作系統完全遵守開放系統的原則。
下面對AIX 作以介紹。
RS/6000 採用IBM 的UNIX操作系統-AIX作為其操作系統。這是一
個目前操作系統界最成功,應用領域最廣,最開放的第二代的UNIX系
統。它特別適合於做關鍵數據處理(CRITICAL)。
AIX 包含了許多IBM 大型機傳統受歡迎的特徵,如系統完整性,系統可管理
性和系統可用性。
在 AIX 操作系統上,有許多的資料庫和開發工具,用戶除了選用已有的應用
軟體外,還可以根據各自的需要進行開發。
此外,在AIX 之上,有一組功能強,使用方便的系統管理工具。對於異種平台
互存,互操作有很成熟的解決方案。
由於該 UNIX 的先進的內核技術和最好的開放性,因此,雖然RS/6000
從宣布到今天只有短短的5 年多的時間,它已在各行各業有了廣泛的運用,
並在1993和1994年連續二年在MIDRANGE商用 UNIX 領域處於第一位。
RISC SYSTEM/6000的操作系統是AIX ,它是性能卓越的、開放的
UNIX,匯集了多年來計算機界在UNIX上的研究成果,以IBM 在計算機
體系結構、操作系統方面40多年極其豐富的經驗。最大限度的使用RISC
技術,安裝了象AIX 這樣的具備工業界實力的UNIX操作系統。
它既可連接SAA 體系結構,又能與非IBM 系統的網路相連,因此,可以
和多數專業銀行現有的系統實現互連,這對今後業務系統拓展將帶來極大的
靈活性,並降低投資。
AIX 遵循一系列的國際標准:
* IEEE POSIX1004.1-1990
* X/OPEN 移植指南ISSUE3的基本級(XPG3)
* AES/OS REVISION A (OSF/1 LEVEL 2 資格)
* FIPS 151-1
* AIX的編譯器: XLC、C++(可選)、FORTRAN(可選)、PASCAL(可選)、COBOL(可選)
* ADA 的編譯器已達到XPG3「成員」級的認可。
* AIX 支持多用戶、多任務。
AIX有一些其它特性包括:
AIX 提供了3 種SHELL :SYSTEM V的KORN、BOURNE SHELL和4.3BSDC
SHELL作為可選擇的UNIX系統界面;
安全設施滿足TCB (Trusted Computing Base)的C2級;
實時處理能力,這對於「面向交易」的應用至關重要(如零售業
和銀行等),它使RS/6000 獲得極高的響應和吞吐量;
虛擬存儲管理,當需要時,可將一些不常用的模塊轉送至外存,
提高內存的可利用性。
先進的文件系統,使得系統管理更加有效,並提高了數據可靠性
以及完整性。
能兼容Dos 應用程序和數據。
InfoExplorer,快速信息超文本索引系統- 不僅包括文字,而且
對包含聲音、圖像的索引系統,這是個聯機的文件介面。包括全部的
超文本的索引和查找,以及面向任務和坐標的多重導引和索引系統。
這個文字及圖形索引系統以一個靈活的、基於任務的方式去使用詳細
資料及培訓資料。
高級系統管理工具(SMIT,System Management Interface Tool)。
提供一級菜單驅動程序,諸如完成軟體的安裝與設置、設備的設置及
管理、問題的測定、存貯管理等。可以自動地進行I/O 設備設置,
ASCII 終端也可充當系統控制台。在LAN 上可以進行遠程系統的安裝。
系統工作負載
系統工作負載的完整准確的定義對於預測或理解它的性能是很關鍵的。在衡量系統性能時,工作負載的不同可能會比 CPU 時鍾速度或隨機訪問存儲器(RAM)大小不同帶來更多的變化。工作負載的定義不僅必須包含向系統發送的請求的類型和速率,還要包含將要執行的確切軟體包和內部應用程序。
包括系統將在後台處理的工作也很重要。例如,如果一個系統包含通過 NFS 載入且由其它系統頻繁訪問的文件系統,那麼處理那些訪問很可能是總體工作負載中非常重要的一部分,即使該系統不是正式的伺服器也是如此。
已進行標准化從而允許在不同系統之間進行比較的工作負載稱為基準程序。但是,很少有實際的工作負載能完全符合基準程序的精確演算法和環境。即使是那些最初從實際的應用程序發展而來的行業標准基準程序也已經過簡化和均勻化,從而使它們可移植到大量的硬體平台上。使用行業標准基準程序唯一有效的方法是減小將接受嚴肅評估的候選系統的范圍。因此,在嘗試理解系統的工作負載和性能時不應該只依賴基準測試結果。
可以將工作負載分為以下類別:
多用戶
由多個用戶通過各自的終端提交的工作組成的工作負載。通常,這種工作負載的性能目標有兩種可能,即在保留指定的最壞情況響應時間條件下最大化系統吞吐量,或者對於固定不變的工作負載獲得盡可能快的響應時間。
伺服器
由來源於其它系統的請求組成的工作負載。例如,文件伺服器的工作負載主要是磁碟讀寫請求。它是多用戶工作負載(加上 NFS 或其它 I/O 活動)的磁碟 I/O 部分,所以適用同樣的目標,即在給定的相應時間限制下最大化吞吐量。其它的伺服器工作負載由諸如數學計算密集的程序、資料庫事務、列印機作業之類的項組成。
工作站
由單獨的用戶通過鍵盤提交工作和在該系統的顯示器上接收結果組成的工作負載。通常這種工作負載的最高優先順序性能目標是使用戶請求的響應時間最短。
性能目標
在定義了系統必須處理的工作負載後,可以選擇性能標准並根據這些標准設定性能目標。計算機系統的總體性能標準是響應時間和吞吐量。
響應時間是提交請求和返回該請求的響應之間使用的時間。示例包括:
資料庫查詢花費的時間
將字元回顯到終端上花費的時間
訪問 Web 頁面花費的時間
吞吐量是對單位時間內完成的工作量的量度。示例包括:
每分鍾的資料庫事務
每秒傳送的文件千位元組數
每秒讀或寫的文件千位元組數
每分鍾的 Web 伺服器命中數
這些度量之間的關系很復雜。有時可能以響應時間為代價而得到較高的吞吐量,而有時候又要以吞吐量為代價得到較好的響應時間。在其它情況下,一個單獨的更改可能對兩者都有提高。可接受的性能基於合理的吞吐量與合理的響應時間相結合。
在規劃或調諧任何系統中,當處理特定的工作負載時一定要保證對響應時間和吞吐量都有明確的目標。否則,有可能存在一種風險,那就是您花費了分析時間和物力改善的僅僅是系統性能中一個次要的方面。
程序執行模型
為了清楚地檢查工作負載的性能特徵,需要有一個動態而非靜態的程序執行模型,如下圖所示。
圖 1. 程序執行層次結構. 該圖形以一個三角形為基礎。左邊代表和右邊適當的操作系統實體匹配的硬體實體。程序必須從存儲在磁碟上的最低級別開始,到最高級別的處理器運行程序指令。例如,從底部到頂部,磁碟硬體實體容納可執行程序;實內存容納等待的操作系統線程和中斷處理程序;轉換後備緩沖區容納可分派的結程;高速緩存中包含當前分派的線程和處理器流水線;而寄存器中包含當前的指令。
程序為了運行必須沿著硬體和操作系統層次結構並行向上前進。硬體層次結構中的每個元素都比它下面的元素稀少和昂貴。不僅程序不得不為了每個資源和其它程序競爭,而且從一個級別過渡到下一級別也要花時間。為了理解程序執行動態,需要對層次結構中每一級別有個基本的了解。
硬體層次結構
通常,從一個硬體級別移動到另一級別所需要的時間主要由較低級別的等待時間(從發出請求到接受到第一批數據的時間)組成。
固定磁碟
對於一個在單機系統中運行的程序而言,最慢的操作是從磁碟上取得代碼或數據,這是因為有下列原因:
必須引導磁碟控制器直接訪問指定的塊(排隊延遲)。
磁碟臂必須尋道以找到正確的柱面(尋道等待時間)。
讀/寫磁頭必須等候直到正確的塊旋轉到它們下面(旋轉等待時間)。
數據必須傳送到控制器(傳送時間)然後傳遞到應用程序中(中斷處理時間)。
除了程序中顯式的讀或寫請求以外,還有許多原因導致磁碟操作緩慢。頻繁的系統調諧活動證明是不必要地跟蹤了磁碟 I/O。
實內存
實內存通常稱為隨機存取存儲器或 RAM,它比磁碟速度快,但每個位元組的開銷非常昂貴。操作系統盡量只把當前使用的代碼和數據保存在 RAM 中,而把任何額外的內容存儲在磁碟上,或者決不首先把它們帶入 RAM 中。
然而,RAM 的速度不一定比處理器快。通常在硬體意識到 RAM 訪問需求與處理器可使用數據或指令的時間之間,會出現許多處理器周期的 RAM 等待時間。
如果要訪問存儲到磁碟上(或者尚未調進)的某一虛擬內存頁,則會產生一個缺頁故障,並且程序的執行暫掛直到該頁從磁碟讀取。
轉換後備緩沖區(TLB)
使程序員不會受限於系統的物理局限性的方法是實現虛擬內存。程序員在設計和編寫程序時認為內存非常大,系統將負責將程序中指令和數據的虛擬地址轉換成需要用來從 RAM 取得的指令和數據的實際地址。因為這個地址轉換過程可能很費時,系統將最近訪問過的虛擬內存頁的實際地址保存在一個叫轉換後備緩沖區(TLB)的高速緩存中。
只要運行中的程序繼續訪問程序和數據頁中的一小部分,則完整的從虛擬到實際頁地址的轉換過程就不需要在每次 RAM 訪問的時候都重做一次。當程序試圖訪問的虛擬內存頁沒有 TLB 入口(即 TLB 未命中)時,則需要大量的處理器周期(即 TLB 未命中等待時間)來進行地址轉換。
高速緩存
為了將程序必須經歷的 RAM 等待時間減到最小,系統為指令和數據組織了高速緩存。如果所需的指令和數據已在高速緩存中,則產生高速緩存命中,處理器就可在下一個周期立刻使用該指令或數據。否則產生高速緩存未命中,伴隨有 RAM 等待時間。
在某些系統中,有兩到三級高速緩存,通常稱它們為 L1、L2 和 L3。如果一個特殊的存儲器引用導致 L1 未命中,則檢查 L2。如果 L2 產生未命中,則引用轉至下一個級別,要麼是 L3(如果存在),要麼是 RAM。
高速緩存的大小和結構根據型號的不同而有不同,但是有效使用它們的原理是相同的。
流水線和寄存器
流水線型超標量體系結構使得在某些情況下可以同時處理多個指令。大批的通用寄存器和浮點寄存器使得可以將相當多的程序數據保存在寄存器中,而不需要頻繁存儲和重新裝入。
可以設計優化編譯器最大限度地利用這些能力。當生成產品程序時,無論程序有多小編譯器的優化函數都應該能使用。Optimization and Tuning Guide for XL Fortran, XL C and XL C++ 中描述了如何將程序調諧到最大性能。
軟體層次結構
程序為了運行還必須逐步執行軟體層次結構中的一系列步驟。
可執行程序
當請求運行某個程序時,操作系統執行一些操作以將磁碟上的可執行程序轉換成運行中的程序。首先,必須掃描當前 PATH 環境變數中的目錄以查找程序的正確副本。然後,系統裝入程序(不要和 ld 命令混淆,該命令是個綁定程序)必須解析出從程序到共享庫的任何外部引用。
為了表示用戶的請求,操作系統將創建一個進程或一組資源(例如專用虛擬地址段),任何運行中的程序都需要該進程或資源。
操作系統也會在該進程中自動創建一個單獨的線程。線程是一個單獨程序實例的當前執行狀態。在 AIX 中,對處理器和其它資源的訪問是根據線程來分配而不是根據進程分配的。應用程序可在一個進程中創建多個線程。這些線程共享由運行它們的進程所擁有的資源。
最後,系統轉移到程序的入口點。如果包含入口點的程序頁還不在內存中(可能因為程序最近才編譯、執行和復制),則由它引起的缺頁故障中斷將該頁從它的後備存儲器中讀取出來。
中斷處理程序
通知操作系統發生了外部事件的機制是中斷當前運行線程並將控制轉移到中斷處理程序。在中斷處理程序可以運行之前,必須保存足夠的硬體狀態以保證在中斷處理完成後系統能恢復線程的上下文。新調用的中斷處理程序將經歷在硬體層次結構中上移帶來的所有延遲(除了頁面故障)。如果該中斷處理程序最近沒有運行過(或者中間程序很節約時間),那麼它的任何代碼或數據不太可能保留在 TLB 或高速緩存中。
當再次調度已中斷的線程時,它的執行上下文(如寄存器內容)邏輯上將得到恢復,以便它可以正確運行。然而,TLB 和高速緩存的內容必須根據程序的後繼請求重新構造。因此,作為中斷的結果,中斷處理程序和被中斷的線程都可能遇到大量的高速緩存未命中和 TLB 未命中延遲。
等待線程
無論何時只要執行的程序發出不能立刻滿足的請求,例如同步 I/O 操作(顯式的或缺頁故障的結果),該線程就會處於等待狀態,直到請求完成為止。除了請求本身所需的時間以外,通常這還會導致另外一些 TLB 和高速緩存的延遲時間。
可分派線程
當某個線程可分派但不在運行時,它不能完成任何有用的事情。更糟的是,正運行的其它線程可能導致重新使用該線程的高速緩存線路並將實內存頁收回,從而引起最終分派時出現更多的延遲。
當前已分派的線程
調度程序選擇對使用處理器有強烈要求的線程。在『CPU 調度程序性能概述』中討論了影響該項選擇需要考慮的事項。當分派線程後,處理器的邏輯狀態恢復成線程中斷時有效的狀態。
當前的機器指令
如果未出現 TLB 或高速緩存未命中的情況,絕大多數機器指令都能在單個處理器周期內執行。相比之下,如果程序迅速轉換到該程序的不同區域且訪問大量不同區域中的數據,就會產生較高的 TLB 和高速緩存未命中率,執行每條指令使用的平均處理器周期數(CPI)可能大於 1。這種程序被認為有較差的局域性引用能力。它也許在使用必需的最少指令數來做這個工作,但是要消耗大量不必要的周期數。部分是因為指令數和周期數之間相關性較弱,檢查程序列表來計算路徑長度不會再直接產生一個時間值。由於較短的路徑通常比較長的路徑快,所以速率根據路徑長度率的不同而明顯不同。
編譯器用完善的方法重新安排代碼從而將程序執行所需的周期數降到最小。追求最佳性能的程序員必須首先致力於確保編譯器具有有效優化代碼所需的全部信息,而不是試圖事後批評編譯器的優化技術(請參閱『預處理器和編譯器的有效使用』)。優化有效性的實際衡量標準是可信工作負載的性能。
系統調諧
在有效實現應用程序後,系統總體性能的進一步提高就成了系統調諧考慮的一個問題。系統級調諧包含的主要組件有:
通信 I/O
取決於工作負載的類型與通信鏈路的類型,可能需要調諧以下的一個或多個通信設備驅動程序:TCP/IP 或 NFS。
固定磁碟
邏輯卷管理器(LVM)控制文件系統的位置和磁碟上調頁空間,這可能會極大地影響系統經歷的尋道等待時間。磁碟設備驅動程序控制執行 I/O 請求所遵從的順序。
實內存
虛擬內存管理器(VMM)控制空閑實內存幀的池,並決定何時從何處取用幀來補充該池。
運行線程
調度程序確定接下來由哪個可調度實體接收控制權。在 AIX 中,可調度實體是線程。請參閱『線程支持』。
性能調諧過程介紹
性能調諧主要是資源管理問題和正確的系統參數設置。調諧工作負載和系統以有效利用資源由下列步驟組成:
識別系統中的工作負載
設置目標:
確定如何評測結果
量化目標和區分目標的優先順序
識別限制系統性能的關鍵資源
最小化工作負載的關鍵資源要求:
如果可選擇的話,使用最適當的資源
減少個別程序或系統函數對關鍵資源的要求
結構化資源的並行使用
修改資源的分配以反映優先順序
更改個別程序的優先順序或資源限制
更改系統資源管理參數的設置
重復步驟 3 到步驟 5 直到滿足目標(或者資源飽和)
如果必要的話,使用其它資源
在系統性能管理的每個階段都有相應的工具(參閱附錄 A 『監視和調諧命令和子常式』)。這些工具有些可從 IBM 得到;另一些是第三方產品。下圖說明在一個簡單的 LAN 環境中性能管理的各階段。
圖 2. 性能階段. 該圖用五個加權的圓圈說明對系統性能調諧的各步驟:規劃、安裝、監視、調諧和擴展。每個圓圈代表系統處於不同的性能狀態:空閑、不均衡、均衡和過載。實質上就是擴展一個過載的系統、調諧系統直到它是均衡的、監視不均衡的系統並且在需要擴展時安裝更多的資源。
識別工作負載
系統執行的所有工作都必須能夠識別。特別是在 LAN 連接的系統中,通過系統的用戶之間僅有的非正式協議,可以輕松地開發出一組復雜的交叉安裝的文件系統。這些文件系統必須被識別出來並作為任何調諧活動的一部分進行考慮。
對於多用戶工作負載,分析員必須量化一般情況和高峰期的請求率。確定用戶實際與終端交互時間的實際比例也是很重要的。
該識別階段中的一個要素是決定必須對生產系統進行評估和調諧活動,還是在另一系統上(或「切換」)用實際工作負載的模擬型式來完成評估和調諧活動。分析員必須針對非生產環境的靈活性權衡來自於生產環境結果的較大可靠性,分析員可在非生產環境中進行試驗,當然試驗所冒的風險是性能下降或更糟。
設置目標的重要性
雖然可以根據可測數量設置目標,但實際希望的結果往往帶有主觀性,比如令人滿意的響應時間。進一步講,分析員必須抵擋住調諧可測量的東西而不是對他而言是重要東西的誘惑。如果沒有系統提供的評估能符合所要求的改進,那麼就必須對該評估進行設計。
量化目標最有價值的方面不是選擇達到的數字,而是對(通常)多個目標的相對重要性進行公開判定。如果這些優先順序沒有事先設定且不是每個相關的人都理解的話,分析員在沒有進行頻繁咨詢之前不能作出任何折衷的決定。分析員還容易對用戶的反應或管理性能中一些已經被忽略的方面而感到吃驚。如果系統的支持和使用跨過了組織的邊界,您可能需要供應商和用戶之間的書面服務級協議,可確保對性能目標和優先順序有一個清楚而共同的理解。
識別關鍵資源
通常,給定工作負載的性能可由一兩種關鍵系統資源的可用性和速度決定。分析員必須正確識別出那些資源,否則會冒險陷入無休止的嘗試出錯操作。
系統具有物理資源和邏輯資源。關鍵的物理資源通常比較容易識別,因為較多的系統性能工具可用來評估物理資源的利用率。通常最影響性能的物理資源如下:
CPU 周期
內存
I/O 匯流排
不同的適配器
磁碟臂
磁碟空間
網路訪問
邏輯資源不太容易識別。邏輯資源通常是對物理資源進行分區的編程抽象。進行分區的目的是共享和管理物理資源。
構建於其上的物理資源和邏輯資源的一些示例如下:
CPU
處理器時間片
內存
頁面幀
堆棧
緩沖區
隊列
表
鎖和信號量
磁碟空間
邏輯卷
文件系統
文件
分區
網路訪問
會話
信息包
通道
了解邏輯資源和物理資源是很重要的。因為缺少邏輯資源線程可能阻塞,就像因為缺少物理資源而阻塞一樣,擴展下層物理資源未必能保證創建附加的邏輯資源。例如,考慮使用 NFS 塊 I/O 守護程序 biod。客戶機上的一個 biod 守護程序要求處理每個暫掛的 NFS 遠程 I/O 請求。因此,biod 守護程序的數量限制了能同時運行的 NFS I/O 操作的數量。當缺少 biod 守護程序時,系統檢測會指示 CPU 和通信鏈路只使用了很少一部分。您可能有系統未充分利用(並且很慢)的假象,事實上這時是因為缺少 biod 守護程序從而限制了其餘的資源。biod 守護程序使用處理器周期和內存,但您不能簡單地通過添加實內存或將它轉移到一個更快的 CPU 上來修正這個問題。解決方案是創建更多的邏輯資源(biod 守護程序)。
在應用程序開發過程中可能不經意間創建邏輯資源和瓶頸。傳遞數據或控制設備的方法可以有效地創建一個邏輯資源。當偶然創建這樣的資源時,通常沒有工具可監視它們的使用,也沒有介面控制它們的分配。它們的存在可能不會引起重視,直到某個特定性能問題出現時就會突出它們的重要性。
最小化關鍵資源要示
下面討論在三個級別上考慮最小化工作負載的關鍵資源要求。
使用適當的資源
決定在一個資源上使用另一個資源時應該理智地考慮並且頭腦中要有明確的目標。在應用程序開發過程中有一個選擇資源的示例,即通過增加內存消耗來減少 CPU 的消耗來達到一個平衡。用於演示資源選擇的公共的系統配置決策為:是將文件放置在單獨的本地工作站上,還是放置在遠程伺服器上。
減少關鍵資源的要求
對於本地開發的應用程序,可用多種方法檢查程序以便其更有效地執行相同的功能或除去不需要的功能。在系統管理級別上,爭用關鍵資源的低優先順序工作負載可以移動到其它系統中、在其它時間運行或由「工作負載管理器」控制。
結構化資源的並行使用
因為工作負載需要運行多個系統資源,從而可以利用這樣的事實,即資源是獨立的且可以並行使用。例如,操作系統預讀演算法檢測到程序在順序訪問文件的事實,因此它調度並行執行的其它順序讀取操作,同時應用程序還處理先前的數據。並行也用於系統管理。例如,如果某個應用程序同時訪問兩個或多個文件且如果同時訪問的這些文件存放在不同的驅動器上,那麼添加一個額外的磁碟驅動器可能會提高磁碟 I/O 的速率。
資源分配優先順序
操作系統提供了一些方法來區分活動的優先順序。有些在系統級別上設置,比如磁碟調步。其它的例如進程優先順序可由單個用戶設置以反映連接到特定任務上的重要性。
重復調諧步驟
性能分析的一個公認的真理是接下來總有瓶頸出現。減少某個資源的使用意味著另一資源限制了吞吐量或響應時間。例如,假設我們的系統中有下列的利用率級別:
CPU:90% 磁碟:70% 內存:60%
這個工作負載是 CPU 受限的。如果成功的調諧工作負載使得 CPU 負載從 90% 降到 45%,則可望在性能上有兩倍的改善。不幸的是現在的工作負載是 I/O 受限的,它有下列的近似利用率:
CPU:45% 磁碟:90% 內存:60%
改善後的 CPU 利用率允許程序立刻提交磁碟請求,但接下來我們會受到由磁碟驅動器的容量施加的限制。性能改善也許是 30% 而不是預期的 100%。
總是存在一個新的關鍵資源。重要的問題是使用手邊的資源是否已經滿足性能目標。
注意: 用 vmtune、schedtune 和其它調諧命令產生的不正當系統調諧可能導致意外的系統行為,例如降低系統或應用程序的性能或系統暫停。更改僅應在性能分析識別出瓶頸時才適用。
注:
對於性能相關的調諧設置,不存在什麼一般建議。
應用額外的資源
在前述所有的方法都用盡後如果系統性能仍不能滿足它的目標,則必須增強或擴展關鍵資源。如果關鍵資源是邏輯資源且下層物理資源足夠,則無需額外代價就可以擴展邏輯資源。如果關鍵資源是物理資源,分析員必須研究一些額外的問題:
必須增強或擴展關鍵資源到什麼程度才可以終止瓶頸?
系統性能會滿足它的目標嗎?或另外的資源會首先飽和嗎?
如果有一串關鍵資源的話,增強或擴展所有這些資源或與另一系統劃分當前工作負載是否更節省成本呢?
性能基準
當試圖比較不同環境中給定軟體的性能時,常會遇到許多可能的錯誤,一些是技術上的,一些是概念上的。本節包含主要的提示信息。本書其它各節討論評測過去和特定處理時間的不同方法。
評測處理系統調用需要花費的時間(掛鍾)時,需要獲取一個由下列內容組成的數字:
執行正運行服務的指令所需要的確切時間
處理器等待內存中的指令或數據時延遲的不同時間(也就是說,高速緩存和 TLB 不命中的代價)
在調用開頭和結束訪問時鍾所需要的時間
由周期性事件如系統定時器中斷所消耗的時間
由或多或少的隨機事件消耗的時間,如 I/O
為了避免報告一個不精確的數字,常常要求多次評測工作負載。因為所有的外部的因素都會增加處理時間,典型的評估集有一個曲線的形式
⑶ AIX是一個什麼樣的系統麻煩給點詳細的資料
AIX 全名為(Advanced Interactive Executive),它是IBM 公司的Unix操作系統,
整個系統的設計從網路、主機硬體系統,到操作系統完全遵守開放系統的原則。
下面對AIX 作以介紹。
RS/6000 採用IBM 的UNIX操作系統-AIX作為其操作系統。這是一
個目前操作系統界最成功,應用領域最廣,最開放的第二代的UNIX系
統。它特別適合於做關鍵數據處理(CRITICAL)。
AIX 包含了許多IBM 大型機傳統受歡迎的特徵,如系統完整性,系統可管理
性和系統可用性。
在 AIX 操作系統上,有許多的資料庫和開發工具,用戶除了選用已有的應用
軟體外,還可以根據各自的需要進行開發。
此外,在AIX 之上,有一組功能強,使用方便的系統管理工具。對於異種平台
互存,互操作有很成熟的解決方案。
由於該 UNIX 的先進的內核技術和最好的開放性,因此,雖然RS/6000
從宣布到今天只有短短的5 年多的時間攜慧陪,它已在各行各業有了廣泛的運用,
並在1993和1994年連續二年在MIDRANGE商用 UNIX 領域處於第一位。
RISC SYSTEM/6000的操作系統是AIX ,它是性能卓越的、開放的
UNIX,匯集了多年來計算機界在UNIX上的研究成果,以IBM 在計算機
體系結構、操作系統方面40多年極其豐富的經驗。最大限度的使用RISC
技術,安裝了象AIX 這樣的具備工業界實力的UNIX操作系統。
它既可連接SAA 體系結構,又能與非IBM 系統的網路相連,因此,可以
和多數專業銀行現有的系統實現互連,這對今後業務系統拓展將帶來極大的
靈活性,並降低投資。
AIX 遵循一系列的國際標准:
* IEEE POSIX1004.1-碧碰1990
* X/OPEN 移植指南ISSUE3的基本級(XPG3)
* AES/OS REVISION A (OSF/1 LEVEL 2 資格)
* FIPS 151-1
* AIX的編譯器: XLC、C++(可選)、FORTRAN(可選)、PASCAL(可選)、COBOL(可選)
* ADA 的編譯器已達到XPG3「成員」級的認可。
* AIX 支持多用戶、多任務。
AIX有一些其它特性包括:
AIX 提供了3 種SHELL :SYSTEM V的KORN、BOURNE SHELL和4.3BSDC
SHELL作為可選擇的UNIX系統界面;
安全設施滿足TCB (Trusted Computing Base)的C2級;
實時處理能力,這對於「面向交易」的應用至關重要(如零售業
和銀行等),它使RS/6000 獲得極高的響應和吞吐量;
虛擬存儲管理,當需要時,可將一些不常用的模塊轉送至外存,
提高內存的可利用性。
先進的文件系統,使得系統管理更加有效,並提高了數據可靠性
以及完整性。
能兼容Dos 應用程序和數據。
InfoExplorer,快速信息超文本索引系統- 不僅包括文字,而且
對包含聲音、圖像的索引辯蠢系統,這是個聯機的文件介面。包括全部的
超文本的索引和查找,以及面向任務和坐標的多重導引和索引系統。
這個文字及圖形索引系統以一個靈活的、基於任務的方式去使用詳細
資料及培訓資料。
高級系統管理工具(SMIT,System Management Interface Tool)。
提供一級菜單驅動程序,諸如完成軟體的安裝與設置、設備的設置及
管理、問題的測定、存貯管理等。可以自動地進行I/O 設備設置,
ASCII 終端也可充當系統控制台。在LAN 上可以進行遠程系統的安裝。
系統工作負載
系統工作負載的完整准確的定義對於預測或理解它的性能是很關鍵的。在衡量系統性能時,工作負載的不同可能會比 CPU 時鍾速度或隨機訪問存儲器(RAM)大小不同帶來更多的變化。工作負載的定義不僅必須包含向系統發送的請求的類型和速率,還要包含將要執行的確切軟體包和內部應用程序。
包括系統將在後台處理的工作也很重要。例如,如果一個系統包含通過 NFS 載入且由其它系統頻繁訪問的文件系統,那麼處理那些訪問很可能是總體工作負載中非常重要的一部分,即使該系統不是正式的伺服器也是如此。
已進行標准化從而允許在不同系統之間進行比較的工作負載稱為基準程序。但是,很少有實際的工作負載能完全符合基準程序的精確演算法和環境。即使是那些最初從實際的應用程序發展而來的行業標准基準程序也已經過簡化和均勻化,從而使它們可移植到大量的硬體平台上。使用行業標准基準程序唯一有效的方法是減小將接受嚴肅評估的候選系統的范圍。因此,在嘗試理解系統的工作負載和性能時不應該只依賴基準測試結果。
可以將工作負載分為以下類別:
多用戶
由多個用戶通過各自的終端提交的工作組成的工作負載。通常,這種工作負載的性能目標有兩種可能,即在保留指定的最壞情況響應時間條件下最大化系統吞吐量,或者對於固定不變的工作負載獲得盡可能快的響應時間。
伺服器
由來源於其它系統的請求組成的工作負載。例如,文件伺服器的工作負載主要是磁碟讀寫請求。它是多用戶工作負載(加上 NFS 或其它 I/O 活動)的磁碟 I/O 部分,所以適用同樣的目標,即在給定的相應時間限制下最大化吞吐量。其它的伺服器工作負載由諸如數學計算密集的程序、資料庫事務、列印機作業之類的項組成。
工作站
由單獨的用戶通過鍵盤提交工作和在該系統的顯示器上接收結果組成的工作負載。通常這種工作負載的最高優先順序性能目標是使用戶請求的響應時間最短。
性能目標
在定義了系統必須處理的工作負載後,可以選擇性能標准並根據這些標准設定性能目標。計算機系統的總體性能標準是響應時間和吞吐量。
響應時間是提交請求和返回該請求的響應之間使用的時間。示例包括:
資料庫查詢花費的時間
將字元回顯到終端上花費的時間
訪問 Web 頁面花費的時間
吞吐量是對單位時間內完成的工作量的量度。示例包括:
每分鍾的資料庫事務
每秒傳送的文件千位元組數
每秒讀或寫的文件千位元組數
每分鍾的 Web 伺服器命中數
這些度量之間的關系很復雜。有時可能以響應時間為代價而得到較高的吞吐量,而有時候又要以吞吐量為代價得到較好的響應時間。在其它情況下,一個單獨的更改可能對兩者都有提高。可接受的性能基於合理的吞吐量與合理的響應時間相結合。
在規劃或調諧任何系統中,當處理特定的工作負載時一定要保證對響應時間和吞吐量都有明確的目標。否則,有可能存在一種風險,那就是您花費了分析時間和物力改善的僅僅是系統性能中一個次要的方面。
程序執行模型
為了清楚地檢查工作負載的性能特徵,需要有一個動態而非靜態的程序執行模型,如下圖所示。
圖 1. 程序執行層次結構. 該圖形以一個三角形為基礎。左邊代表和右邊適當的操作系統實體匹配的硬體實體。程序必須從存儲在磁碟上的最低級別開始,到最高級別的處理器運行程序指令。例如,從底部到頂部,磁碟硬體實體容納可執行程序;實內存容納等待的操作系統線程和中斷處理程序;轉換後備緩沖區容納可分派的結程;高速緩存中包含當前分派的線程和處理器流水線;而寄存器中包含當前的指令。
程序為了運行必須沿著硬體和操作系統層次結構並行向上前進。硬體層次結構中的每個元素都比它下面的元素稀少和昂貴。不僅程序不得不為了每個資源和其它程序競爭,而且從一個級別過渡到下一級別也要花時間。為了理解程序執行動態,需要對層次結構中每一級別有個基本的了解。
硬體層次結構
通常,從一個硬體級別移動到另一級別所需要的時間主要由較低級別的等待時間(從發出請求到接受到第一批數據的時間)組成。
固定磁碟
對於一個在單機系統中運行的程序而言,最慢的操作是從磁碟上取得代碼或數據,這是因為有下列原因:
必須引導磁碟控制器直接訪問指定的塊(排隊延遲)。
磁碟臂必須尋道以找到正確的柱面(尋道等待時間)。
讀/寫磁頭必須等候直到正確的塊旋轉到它們下面(旋轉等待時間)。
數據必須傳送到控制器(傳送時間)然後傳遞到應用程序中(中斷處理時間)。
除了程序中顯式的讀或寫請求以外,還有許多原因導致磁碟操作緩慢。頻繁的系統調諧活動證明是不必要地跟蹤了磁碟 I/O。
實內存
實內存通常稱為隨機存取存儲器或 RAM,它比磁碟速度快,但每個位元組的開銷非常昂貴。操作系統盡量只把當前使用的代碼和數據保存在 RAM 中,而把任何額外的內容存儲在磁碟上,或者決不首先把它們帶入 RAM 中。
然而,RAM 的速度不一定比處理器快。通常在硬體意識到 RAM 訪問需求與處理器可使用數據或指令的時間之間,會出現許多處理器周期的 RAM 等待時間。
如果要訪問存儲到磁碟上(或者尚未調進)的某一虛擬內存頁,則會產生一個缺頁故障,並且程序的執行暫掛直到該頁從磁碟讀取。
轉換後備緩沖區(TLB)
使程序員不會受限於系統的物理局限性的方法是實現虛擬內存。程序員在設計和編寫程序時認為內存非常大,系統將負責將程序中指令和數據的虛擬地址轉換成需要用來從 RAM 取得的指令和數據的實際地址。因為這個地址轉換過程可能很費時,系統將最近訪問過的虛擬內存頁的實際地址保存在一個叫轉換後備緩沖區(TLB)的高速緩存中。
只要運行中的程序繼續訪問程序和數據頁中的一小部分,則完整的從虛擬到實際頁地址的轉換過程就不需要在每次 RAM 訪問的時候都重做一次。當程序試圖訪問的虛擬內存頁沒有 TLB 入口(即 TLB 未命中)時,則需要大量的處理器周期(即 TLB 未命中等待時間)來進行地址轉換。
高速緩存
為了將程序必須經歷的 RAM 等待時間減到最小,系統為指令和數據組織了高速緩存。如果所需的指令和數據已在高速緩存中,則產生高速緩存命中,處理器就可在下一個周期立刻使用該指令或數據。否則產生高速緩存未命中,伴隨有 RAM 等待時間。
在某些系統中,有兩到三級高速緩存,通常稱它們為 L1、L2 和 L3。如果一個特殊的存儲器引用導致 L1 未命中,則檢查 L2。如果 L2 產生未命中,則引用轉至下一個級別,要麼是 L3(如果存在),要麼是 RAM。
高速緩存的大小和結構根據型號的不同而有不同,但是有效使用它們的原理是相同的。
流水線和寄存器
流水線型超標量體系結構使得在某些情況下可以同時處理多個指令。大批的通用寄存器和浮點寄存器使得可以將相當多的程序數據保存在寄存器中,而不需要頻繁存儲和重新裝入。
可以設計優化編譯器最大限度地利用這些能力。當生成產品程序時,無論程序有多小編譯器的優化函數都應該能使用。Optimization and Tuning Guide for XL Fortran, XL C and XL C++ 中描述了如何將程序調諧到最大性能。
軟體層次結構
程序為了運行還必須逐步執行軟體層次結構中的一系列步驟。
可執行程序
當請求運行某個程序時,操作系統執行一些操作以將磁碟上的可執行程序轉換成運行中的程序。首先,必須掃描當前 PATH 環境變數中的目錄以查找程序的正確副本。然後,系統裝入程序(不要和 ld 命令混淆,該命令是個綁定程序)必須解析出從程序到共享庫的任何外部引用。
為了表示用戶的請求,操作系統將創建一個進程或一組資源(例如專用虛擬地址段),任何運行中的程序都需要該進程或資源。
操作系統也會在該進程中自動創建一個單獨的線程。線程是一個單獨程序實例的當前執行狀態。在 AIX 中,對處理器和其它資源的訪問是根據線程來分配而不是根據進程分配的。應用程序可在一個進程中創建多個線程。這些線程共享由運行它們的進程所擁有的資源。
最後,系統轉移到程序的入口點。如果包含入口點的程序頁還不在內存中(可能因為程序最近才編譯、執行和復制),則由它引起的缺頁故障中斷將該頁從它的後備存儲器中讀取出來。
中斷處理程序
通知操作系統發生了外部事件的機制是中斷當前運行線程並將控制轉移到中斷處理程序。在中斷處理程序可以運行之前,必須保存足夠的硬體狀態以保證在中斷處理完成後系統能恢復線程的上下文。新調用的中斷處理程序將經歷在硬體層次結構中上移帶來的所有延遲(除了頁面故障)。如果該中斷處理程序最近沒有運行過(或者中間程序很節約時間),那麼它的任何代碼或數據不太可能保留在 TLB 或高速緩存中。
當再次調度已中斷的線程時,它的執行上下文(如寄存器內容)邏輯上將得到恢復,以便它可以正確運行。然而,TLB 和高速緩存的內容必須根據程序的後繼請求重新構造。因此,作為中斷的結果,中斷處理程序和被中斷的線程都可能遇到大量的高速緩存未命中和 TLB 未命中延遲。
等待線程
無論何時只要執行的程序發出不能立刻滿足的請求,例如同步 I/O 操作(顯式的或缺頁故障的結果),該線程就會處於等待狀態,直到請求完成為止。除了請求本身所需的時間以外,通常這還會導致另外一些 TLB 和高速緩存的延遲時間。
可分派線程
當某個線程可分派但不在運行時,它不能完成任何有用的事情。更糟的是,正運行的其它線程可能導致重新使用該線程的高速緩存線路並將實內存頁收回,從而引起最終分派時出現更多的延遲。
當前已分派的線程
調度程序選擇對使用處理器有強烈要求的線程。在『CPU 調度程序性能概述』中討論了影響該項選擇需要考慮的事項。當分派線程後,處理器的邏輯狀態恢復成線程中斷時有效的狀態。
當前的機器指令
如果未出現 TLB 或高速緩存未命中的情況,絕大多數機器指令都能在單個處理器周期內執行。相比之下,如果程序迅速轉換到該程序的不同區域且訪問大量不同區域中的數據,就會產生較高的 TLB 和高速緩存未命中率,執行每條指令使用的平均處理器周期數(CPI)可能大於 1。這種程序被認為有較差的局域性引用能力。它也許在使用必需的最少指令數來做這個工作,但是要消耗大量不必要的周期數。部分是因為指令數和周期數之間相關性較弱,檢查程序列表來計算路徑長度不會再直接產生一個時間值。由於較短的路徑通常比較長的路徑快,所以速率根據路徑長度率的不同而明顯不同。
編譯器用完善的方法重新安排代碼從而將程序執行所需的周期數降到最小。追求最佳性能的程序員必須首先致力於確保編譯器具有有效優化代碼所需的全部信息,而不是試圖事後批評編譯器的優化技術(請參閱『預處理器和編譯器的有效使用』)。優化有效性的實際衡量標準是可信工作負載的性能。
系統調諧
在有效實現應用程序後,系統總體性能的進一步提高就成了系統調諧考慮的一個問題。系統級調諧包含的主要組件有:
通信 I/O
取決於工作負載的類型與通信鏈路的類型,可能需要調諧以下的一個或多個通信設備驅動程序:TCP/IP 或 NFS。
固定磁碟
邏輯卷管理器(LVM)控制文件系統的位置和磁碟上調頁空間,這可能會極大地影響系統經歷的尋道等待時間。磁碟設備驅動程序控制執行 I/O 請求所遵從的順序。
實內存
虛擬內存管理器(VMM)控制空閑實內存幀的池,並決定何時從何處取用幀來補充該池。
運行線程
調度程序確定接下來由哪個可調度實體接收控制權。在 AIX 中,可調度實體是線程。請參閱『線程支持』。
性能調諧過程介紹
性能調諧主要是資源管理問題和正確的系統參數設置。調諧工作負載和系統以有效利用資源由下列步驟組成:
識別系統中的工作負載
設置目標:
確定如何評測結果
量化目標和區分目標的優先順序
識別限制系統性能的關鍵資源
最小化工作負載的關鍵資源要求:
如果可選擇的話,使用最適當的資源
減少個別程序或系統函數對關鍵資源的要求
結構化資源的並行使用
修改資源的分配以反映優先順序
更改個別程序的優先順序或資源限制
更改系統資源管理參數的設置
重復步驟 3 到步驟 5 直到滿足目標(或者資源飽和)
如果必要的話,使用其它資源
在系統性能管理的每個階段都有相應的工具(參閱附錄 A 『監視和調諧命令和子常式』)。這些工具有些可從 IBM 得到;另一些是第三方產品。下圖說明在一個簡單的 LAN 環境中性能管理的各階段。
圖 2. 性能階段. 該圖用五個加權的圓圈說明對系統性能調諧的各步驟:規劃、安裝、監視、調諧和擴展。每個圓圈代表系統處於不同的性能狀態:空閑、不均衡、均衡和過載。實質上就是擴展一個過載的系統、調諧系統直到它是均衡的、監視不均衡的系統並且在需要擴展時安裝更多的資源。
識別工作負載
系統執行的所有工作都必須能夠識別。特別是在 LAN 連接的系統中,通過系統的用戶之間僅有的非正式協議,可以輕松地開發出一組復雜的交叉安裝的文件系統。這些文件系統必須被識別出來並作為任何調諧活動的一部分進行考慮。
對於多用戶工作負載,分析員必須量化一般情況和高峰期的請求率。確定用戶實際與終端交互時間的實際比例也是很重要的。
該識別階段中的一個要素是決定必須對生產系統進行評估和調諧活動,還是在另一系統上(或「切換」)用實際工作負載的模擬型式來完成評估和調諧活動。分析員必須針對非生產環境的靈活性權衡來自於生產環境結果的較大可靠性,分析員可在非生產環境中進行試驗,當然試驗所冒的風險是性能下降或更糟。
設置目標的重要性
雖然可以根據可測數量設置目標,但實際希望的結果往往帶有主觀性,比如令人滿意的響應時間。進一步講,分析員必須抵擋住調諧可測量的東西而不是對他而言是重要東西的誘惑。如果沒有系統提供的評估能符合所要求的改進,那麼就必須對該評估進行設計。
量化目標最有價值的方面不是選擇達到的數字,而是對(通常)多個目標的相對重要性進行公開判定。如果這些優先順序沒有事先設定且不是每個相關的人都理解的話,分析員在沒有進行頻繁咨詢之前不能作出任何折衷的決定。分析員還容易對用戶的反應或管理性能中一些已經被忽略的方面而感到吃驚。如果系統的支持和使用跨過了組織的邊界,您可能需要供應商和用戶之間的書面服務級協議,可確保對性能目標和優先順序有一個清楚而共同的理解。
識別關鍵資源
通常,給定工作負載的性能可由一兩種關鍵系統資源的可用性和速度決定。分析員必須正確識別出那些資源,否則會冒險陷入無休止的嘗試出錯操作。
系統具有物理資源和邏輯資源。關鍵的物理資源通常比較容易識別,因為較多的系統性能工具可用來評估物理資源的利用率。通常最影響性能的物理資源如下:
CPU 周期
內存
I/O 匯流排
不同的適配器
磁碟臂
磁碟空間
網路訪問
邏輯資源不太容易識別。邏輯資源通常是對物理資源進行分區的編程抽象。進行分區的目的是共享和管理物理資源。
構建於其上的物理資源和邏輯資源的一些示例如下:
CPU
處理器時間片
內存
頁面幀
堆棧
緩沖區
隊列
表
鎖和信號量
磁碟空間
邏輯卷
文件系統
文件
分區
網路訪問
會話
信息包
通道
了解邏輯資源和物理資源是很重要的。因為缺少邏輯資源線程可能阻塞,就像因為缺少物理資源而阻塞一樣,擴展下層物理資源未必能保證創建附加的邏輯資源。例如,考慮使用 NFS 塊 I/O 守護程序 biod。客戶機上的一個 biod 守護程序要求處理每個暫掛的 NFS 遠程 I/O 請求。因此,biod 守護程序的數量限制了能同時運行的 NFS I/O 操作的數量。當缺少 biod 守護程序時,系統檢測會指示 CPU 和通信鏈路只使用了很少一部分。您可能有系統未充分利用(並且很慢)的假象,事實上這時是因為缺少 biod 守護程序從而限制了其餘的資源。biod 守護程序使用處理器周期和內存,但您不能簡單地通過添加實內存或將它轉移到一個更快的 CPU 上來修正這個問題。解決方案是創建更多的邏輯資源(biod 守護程序)。
在應用程序開發過程中可能不經意間創建邏輯資源和瓶頸。傳遞數據或控制設備的方法可以有效地創建一個邏輯資源。當偶然創建這樣的資源時,通常沒有工具可監視它們的使用,也沒有介面控制它們的分配。它們的存在可能不會引起重視,直到某個特定性能問題出現時就會突出它們的重要性。
最小化關鍵資源要示
下面討論在三個級別上考慮最小化工作負載的關鍵資源要求。
使用適當的資源
決定在一個資源上使用另一個資源時應該理智地考慮並且頭腦中要有明確的目標。在應用程序開發過程中有一個選擇資源的示例,即通過增加內存消耗來減少 CPU 的消耗來達到一個平衡。用於演示資源選擇的公共的系統配置決策為:是將文件放置在單獨的本地工作站上,還是放置在遠程伺服器上。
減少關鍵資源的要求
對於本地開發的應用程序,可用多種方法檢查程序以便其更有效地執行相同的功能或除去不需要的功能。在系統管理級別上,爭用關鍵資源的低優先順序工作負載可以移動到其它系統中、在其它時間運行或由「工作負載管理器」控制。
結構化資源的並行使用
因為工作負載需要運行多個系統資源,從而可以利用這樣的事實,即資源是獨立的且可以並行使用。例如,操作系統預讀演算法檢測到程序在順序訪問文件的事實,因此它調度並行執行的其它順序讀取操作,同時應用程序還處理先前的數據。並行也用於系統管理。例如,如果某個應用程序同時訪問兩個或多個文件且如果同時訪問的這些文件存放在不同的驅動器上,那麼添加一個額外的磁碟驅動器可能會提高磁碟 I/O 的速率。
資源分配優先順序
操作系統提供了一些方法來區分活動的優先順序。有些在系統級別上設置,比如磁碟調步。其它的例如進程優先順序可由單個用戶設置以反映連接到特定任務上的重要性。
重復調諧步驟
性能分析的一個公認的真理是接下來總有瓶頸出現。減少某個資源的使用意味著另一資源限制了吞吐量或響應時間。例如,假設我們的系統中有下列的利用率級別:
CPU:90% 磁碟:70% 內存:60%
這個工作負載是 CPU 受限的。如果成功的調諧工作負載使得 CPU 負載從 90% 降到 45%,則可望在性能上有兩倍的改善。不幸的是現在的工作負載是 I/O 受限的,它有下列的近似利用率:
CPU:45% 磁碟:90% 內存:60%
改善後的 CPU 利用率允許程序立刻提交磁碟請求,但接下來我們會受到由磁碟驅動器的容量施加的限制。性能改善也許是 30% 而不是預期的 100%。
總是存在一個新的關鍵資源。重要的問題是使用手邊的資源是否已經滿足性能目標。
注意: 用 vmtune、schedtune 和其它調諧命令產生的不正當系統調諧可能導致意外的系統行為,例如降低系統或應用程序的性能或系統暫停。更改僅應在性能分析識別出瓶頸時才適用。
注:
對於性能相關的調諧設置,不存在什麼一般建議。
應用額外的資源
在前述所有的方法都用盡後如果系統性能仍不能滿足它的目標,則必須增強或擴展關鍵資源。如果關鍵資源是邏輯資源且下層物理資源足夠,則無需額外代價就可以擴展邏輯資源。如果關鍵資源是物理資源,分析員必須研究一些額外的問題:
必須增強或擴展關鍵資源到什麼程度才可以終止瓶頸?
系統性能會滿足它的目標嗎?或另外的資源會首先飽和嗎?
如果有一串關鍵資源的話,增強或擴展所有這些資源或與另一系統劃分當前工作負載是否更節省成本呢?
性能基準
當試圖比較不同環境中給定軟體的性能時,常會遇到許多可能的錯誤,一些是技術上的,一些是概念上的。本節包含主要的提示信息。本書其它各節討論評測過去和特定處理時間的不同方法。
評測處理系統調用需要花費的時間(掛鍾)時,需要獲取一個由下列內容組成的數字:
執行正運行服務的指令所需要的確切時間
處理器等待內存中的指令或數據時延遲的不同時間(也就是說,高速緩存和 TLB 不命中的代價)
在調用開頭和結束訪問時鍾所需要的時間
由周期性事件如系統定時器中斷所消耗的時間
由或多或少的隨機事件消耗的時間,如 I/O
為了避免報告一個不精確的數字,常常要求多次評測工作負載。因為所有的外部的因素都會增加處理時間,典型的評估集有一個曲線的形式