LR筆試題整理

1. 什麼是負載測試?什麼是性能測試?

負載測試是通過逐步增加系統負載,測試系統性能的變化,並最終確定在滿足性能指標的情況下,系統所能承受的最大負載量的測試,例如,訪問一個頁面的響應時間規定不超過1秒,負載測試就是測試在響應時間爲1秒時,系統所能承受的最大併發訪問用戶的數量。

壓力測試通常是在高負載情況下來對系統的穩定性進行測試,更有效地發現系統穩定性的隱患和系統在負載峯值的條件下功能隱患等。

性能測試:指在一定的約束條件下(指定的軟件、硬件、網絡環境等),確定系統所能承受的最大負載壓力。

2. 性能測試包含了哪些測試(至少舉出3種)

性能測試包含負載測試、壓力測試、大數據量測試、疲勞強度測試等。

3. 簡述性能測試的步驟

第一,分析產品結構,明確性能測試的需求,包括併發、極限、配置和指標等方面的性能要求,必要時基於LOAD測試的相同測略需同時考慮穩定性測試的需求。
第二,分析應用場景和用戶數據,細分用戶行爲和相關的數據流,確定測試點或測試接口,列示系統接口的可能瓶頸,一般是先主幹接口再支線接口,並完成初步的測試用例設計。
第三,依據性能測試需求和確定的測試點進行測試組網設計,並明確不同組網方案的重要程度或優先級作爲取捨評估的依據,必要時在前期產品設計中提出支持性能測試的可測試性設計方案和對測試工具的需求。
第四,完成性能測試用例設計、分類選擇和依據用戶行爲分析設計測試規程,並準備好測試用例將用到的測試數據。
第五,確定採用的測試工具。
第六,進行初驗測試,以主幹接口的可用性爲主,根據測試結果分析性能瓶頸,通過迭代保證基本的指標等測試的環境。
第七,迭代進行全面的性能測試,完成計劃中的性能測試用例的執行。
第八,完成性能測試評估報告。
在進行性能測試的時候,我們需要知道一些有效的性能指標,下面我們來列出一些主要的性能指標:
一是,通用指標(指Web應用服務器、數據庫服務器必需測試項):
*ProcessorTime:指服務器CPU佔用率,一般平均達到70%時,服務就接近飽和;
*Memory Available Mbyte:可用內存數,如果測試時發現內存有變化情況也要注意,如果是內存泄露則比較嚴重;
*Physicsdisk Time :物理磁盤讀寫時間情況。
二是,Web服務器指標:
*Avg Rps:平均每秒鐘響應次數=總請求時間/秒數;
*Avg time to last byte per terstion(mstes):平均每秒業務角本的迭代次數;*Successful Rounds:成功的請求;
*Failed Rounds:失敗的請求;
*Successful Hits:成功的點擊次數;
*Failed Hits:失敗的點擊次數;
*Hits Per Second:每秒點擊次數;
*Successful Hits Per Second:每秒成功的點擊次數;
*Failed Hits Per Second:每秒失敗的點擊次數;
*Attempted Connections:嘗試鏈接數。
三是,數據庫服務器指標:
*User 0 Connections :用戶連接數,也就是數據庫的連接數量;
*Number of deadlocks:數據庫死鎖;
*Butter Cache hit:數據庫Cache的命中情況。

4. 簡述使用Loadrunner的步驟

A4:制定性能測試計劃—>開發測試腳本—>設計測試場景—>執行測試場景—>監控測試場景—>分析測試結果

5. 什麼時候可以開始執行性能測試?

 功能測試

通過;一般需要進行性能測試的系統,都是用戶量比較大、業務使用比較頻繁、比較重要的功能模塊。

6. LoadRunner由哪些部件組成?

 A6:主要有三部分組成:

7. 你使用LoadRunner的哪個部件來錄製腳本?

使用Virtual User Generator錄製測試腳本

8.LoadRunner的哪個部件可以模擬多用戶併發下回放腳本?

LoadRunner的Controller組件。

9.什麼是集合點?設置集合點有什麼意義?Loadrunner中設置集合點的函數是哪個?

 在性能測試過程中,需要模擬大量用戶在同一時刻,訪問系統並同時操作某一任務,可以通過配置集合點來實現,多個用戶同時進行某操作;

集合點可以在服務器上創建密集的用戶負載,使LoadRunner能夠測試服務器在負載狀態下的性能。

設置集合點函數:lr_rendezvous("Meeting"); // Meeting是集合點名稱

10. 什麼是場景?場景的重要性有哪些?如何設置場景?

 場景用於模擬用戶實際業務操作;

LoadRunner中場景有手工場景和麪向目標的場景。

設置場景:選擇場景類型、設置運行時設置、模擬用戶數、加減壓方式、持續時間,配置負載生成

1.選擇場景中需要的腳本 2.選擇爲目標場景,還是指定的手工場景 3.設置用戶數、設置產生負載的設備 4.設置執行策略

11. 請解釋一下如何錄製web腳本?

LR通過轉發請求,來捕獲數據包,來形成腳本

解釋:1.基於瀏覽器的應用程序推薦使用HTML-based Script, 腳本中採用
HTML頁面的形式來表示,這種方式的Script腳本容易維護,容易理解,使用該選項中的advance中的第一個選項,如果單純的HTML方式,是不允許使用關聯的。
2.不是基於瀏覽器的應用程序推薦使用URL-based Script,腳本中的表示採用基於URL 的方式,不是很好閱讀。
解釋:1.是否記錄錄製過程中的ThinkTime,如果記錄,還可以設置最大值,一般我不記錄這個值。
2.通知Vugen去重新設置每個action之間的Http context,缺省是需要的。
3.完整記錄錄製過程的log,
4.保存一個本地的snapshot,可以加速顯示
5.把html的title放到web_reg_find函數裏面
6.支持的字符集標準
7.Http header的錄製,我們採用缺省即可,不需要用web_add_header去錄製非標準的header信息。
對錄製的content的內容進行filter,不作爲resource處理的。
 
解釋:這個就是我前面提到的關聯,系統已經預先設置好了一些常見的關聯rules,我們錄製腳本之前,可以把系統的

12. 爲什麼要創建參數?如何創建參數? 參數:在環境變化時必須時腳本具有環境變化的能力,就需要參數化(客戶端發送到服務器端) 1.確定要參數話的數據 2.設定規則形式來取值

13. 什麼是關聯?請解釋一下自動關聯和手動關聯的不同。

關聯:很多構架用sessionid等方法標識不同任務和數據,應用在每次運行時方式發送數據不完全相同,需要利用的機制對錄製的腳本進行處理,這種機制叫做關聯(服務端發送到客戶端)

14. 場景設置有哪幾種方法?

目標場景,手工場景

15. 你如何找出哪裏需要關聯?請給一些你所在項目的實例。用戶登陸,客戶端發送請求後,服務端驗證正確性後,發送給客戶端sessionid,是某種規則產生。

16. 你在哪裏設置自動關聯選項?兩地方可以設置1.設置允許錄製時進行自動關聯,可以自定義規則

2.錄製完成後,vuser-scan action for correlations

17. 哪個函數是用來截取虛擬用戶腳本中的動態值?(手工關聯)

web_reg_save_param()函數主要根據需要做關聯的動態數據前面和後面的固定字符串來識別、提取動態數據,所以在做關聯時,需要找出動態數據的左、右邊界字符串。

18. 你在VUGen中何時選擇關閉日誌?何時選擇標準和擴展日誌?Run-time,log,當調試腳本時,可以只輸出錯誤日誌,當在場景找你管加載腳本時,日誌自動變爲不可用。Standard Log Option:選擇標準日誌時,就會在腳本執行過程中,生成函數的標準日誌並且輸出信息,供調試用。大型負載測試場景不用啓用這個選項。擴展日誌包括警告和其他信息。大型負載測試不要啓用該選項。用擴展日誌選項,可以指定哪些附加信息需要加到擴展日誌中

19. 你如何調試LoadRunner腳本?VuGen有兩個選項幫助調試Vuser腳本。Run Step by Step命令和斷點(breakpoints)。Option對話框中的調試設置(Debug setting)項,可以確定在場景執行過程中執行軌跡範圍。調試信息寫在output窗口。可以用 lr_set_debug_messag函數在腳本中手工設置信息類型。如果我們只想接收到一小段腳本的調式信息。

20. 你在LR中如何編寫自定義函數?請給出一些你在以前進行的項目中編寫的函數。在創建用戶自定義函數前我們需要和創建DLL(external libary)。把庫放在VuGen bin目錄下。一旦加了庫,把自定義函數分配做一個參數。該函數應該具有一下格式:__declspec (dllexport) char* (char*, char*)。Milan

21. 什麼是逐步遞增?你如何來設置?Ramp up這個選項用於逐漸增加服務器的虛擬用戶數或負載量。設置一個初始值而且可以在兩個迭代之間設置一個值等待。設置Ramp up,請到‘Scenario Scheduling Options’。

22. 以線程方式運行的虛擬用戶有哪些優點?VuGen提供了用多線程的便利。這使得在每個生成器上可以跑更多的虛擬用戶。如果是以進程的方式跑虛擬用戶,爲每個用戶加載相同的驅動程序到內存中,因此佔用了大量的內存。這就限制了在單個生成器上能跑的虛擬用戶數。如果按線程運行,給定的所有虛擬用戶數(比如100)只是加載一個驅動程序實例到內存裏。每個線程共用父驅動程序的內存,因此在每個生成器上可以跑更多的虛擬用戶。

23. 當你需要在出錯時停止執行腳本,你怎麼做?lr_abort函數放棄虛擬用戶腳本的執行。說明虛擬用戶停止Action的執行,直接執行vuser_end然後結束執行。在出現錯誤情況下想手工放棄腳本的執行,這個函數是有用的。用這個函數停止腳本時,Vuser被指定爲“Stopped”狀態。爲了這個函數起作用,開始時候就不能選擇Run-Time Settings中的Continue on error選項。

24. 響應時間和吞吐量之間的關係是什麼?吞吐量圖顯示的是虛擬用戶每秒鐘從服務器接收到的字節數。當和響應時間比較時,可以發現隨着吞吐量的降低,響應時間也降低,同樣的,吞吐量的峯值和最大響應時間差不多在同時出現。

25. 說明一下如何在LR中配置系統計數器?通過Web資源監視器,利用這些監控器可以分析web服務器的吞吐量、點擊率、每秒http響應數以及每秒下載的頁面數。

26. 什麼是think time?think_time有什麼用?思考時間是真實用戶在action之間等待的時間。例如:當一個用戶從服務器接收到數據時,用戶可能需要在響應之前等待幾分鐘回顧數據,這種推遲被稱爲思考時間。

27. 標準日誌和擴展日誌的區別是什麼?Standard Log Option:選擇標準日誌時,就會在腳本執行過程中,生成函數的標準日誌並且輸出信息,供調試用。大型負載測試場景不用啓用這個選項。擴展日誌包括警告和其他信息。大型負載測試不要啓用該選項。用擴展日誌選項,可以指定哪些附加信息需要加到擴展日誌中

28. 解釋以下函數及他們的不同之處。Lr_debug_messagelr_debug_message 函數在指定的消息級別// 處於活動狀態時發送一條調試消息。如果指定的// 消息級別未處於活動狀態,則不發出消息。Lr_output_message要發送不是特定錯誤消息的特殊通知,Lr_error_message函數將錯誤消息發送到// 輸出窗口和 Vuser日誌文件Lrd_stmt lrd_exec 函數執行 lrd_stmt設置的 SQL 語句。Lrd_fetch 函數從結果集中提取後續若干行result set. 函數準備用於// 通過光標輸出字符串(通常爲 SQL語句)// 的下一結果集。對於 CtLib,它發出 ct_result// 命令,並且在 ODBC中它運行用於當前數據庫

29. 什麼是吞吐量?單位時間內系統處理客戶端的請求數。

30. action和init、end除了迭代的區別還有其他嗎?

在init、end中不能使用集合點、事務等, init、end只執行一次。

31. 在什麼地方設置HTTP頁面filter?

在runtime_settings中download filter裏面進行設置。

32. pot mapping的原理是什麼?

就是代理服務器

33. HTTP的超時有哪三種?

HTTP-request connect timeout、HTTP-request receive timeout、step download timeout

34. 什麼是contentcheck?如何來用?

ContentCheck的設置是爲了讓VuGen檢測何種頁面爲錯誤頁面。如果被測的Web 應用沒有使用自定義的錯誤頁面,那麼這裏不用作更改;如果被測的Web應用使用了自定義的錯誤頁面,那麼這裏需要定義,以便讓VuGen 在運行過程中檢測,服務器返回的頁面是否包含預定義的字符串,進而判斷該頁面是否爲錯誤頁

面。如果是,VuGen就停止運行,指示運行失敗。

使用方法:點擊在runtime settings中點擊“contentcheck”,然後新建立一個符合要求的應用程序和規則,設定需要查找的文本和前綴後綴即可使用。

35. network中的speed simulation是模擬的什麼帶寬?

模擬用戶訪問速度的帶寬。

36. 生成WEB性能圖有什麼意義?大概描述即可。

可以很直觀的看到,在負載下系統的運行情況以及各種資源的使用情況,可以對系統的性能瓶頸定位、性能調優等起到想要的輔助作用。

37. 如果刷新controller裏的腳本?

在controller中,點擊detailis-Refresh-script即可。

38. 進程和線程有什麼區別

線程有自己的全局數據。線程存在於進程中,因此一個進程的全局變量由所有的線程共享。由於線程共享同樣的系統區域,操作系統分配給一個進程的資源對該進程的所有線程都是可用的,正如全局數據可供所有線程使用一樣。在Controller中將使用驅動程序(如mdrv.exe、r3vuser.exe)運行vuser。如果按進程運行每個vuser,則對於每個vuser實例,都將反覆啓動同一驅動程序並將其加載到內存中。將同一驅動程序加載到內存中會佔用大量的RAM(隨機存儲器)及其他系統資源。這就限制了可以在任一負載生成器上運行的vuser數量。如果按線程運行每個vuser,Controller爲每50個vuser(默認情況下)僅啓動驅動程序(如mdrv.exe)的一個實例。該驅動程序將啓動幾個vuser,每個vuser都按線程運行。這些線程vuser將共享父驅動進程的內存段。這就消除了多次重新加載驅動程序/進程的需要,節省了大量內存空間,從而可以在一個負載生成器上運行更多的Vuser.

39. 如何把腳本和結果放到load generator的機器上?

在controller中,點擊Results-Results settings,在裏面進行相應的設置即可。

40. 如何設置才能讓集合點只對一半的用戶生效?

對集合點策略進行相應的設置即可。即在controller中,點擊Scenario-Rendezvous-policy進行相應的設置即可,由於題目中“一半的用戶”沒有說明白具體指什麼樣的用戶,現在不好確定具體對裏面的哪個選項進行設置。

41. LRd的API分爲幾類

A:通用的API:,就是跟具體的協議無關,在任何協議的腳本里都能用的;

B:針對協議的:像lrs前綴是winsock的;lrd的是針對database;

C:自定義的:這個範圍就比較廣了;比如至少有Java Vuser API、lrapi、XML API。還可以添加WindowsAPI和自定義函數庫。

42. LR幾種日誌函數的區別?

【lr_message】 int lr_message (const char *format, exp1, exp2,…expn.);中文解釋:lr_message函數將信息發送到日誌文件和輸入窗口。在VuGen中運行時,輸入文件爲output.txt。

【lr_log_message】 int lr_log_message (const char *format, exp1, exp2,…expn.);中文解釋:lr_log_message函數將消息發送到Vuser或代理日誌文件(取決於應用程序),而不是發送到輸出窗口。通過向日志文件發送錯誤消息或其他信息性消息,可以將該函數用於調試。 【lr_error_message】 int lr_error_message (const char *format, exp1, exp2,…expn. );中文解釋:lr_error_message函數將錯誤消息發送到輸出窗口和Vuser日誌文件。要發送不是特定錯誤消息的特殊通知,請使用lr_output_message。

【lr_output_message】 int lr_output_message (const char *format, exp1, exp2,…expn.);中文解釋:lr_output_message函數將帶有腳本部分的行號的消息發送到輸出窗口和日誌文件。

【lr_debug_message函數組】 int lr_debug_message (unsigned int message_level, const char *format, … );中文解釋:lr_debug_message函數在指定的消息級別處於活動狀態時發送一條調試信息。如果指定的消息級別未出於活動狀態,則不發送消息。您可以從用戶界面或者使用lr_set_debug_message,將處於活動狀態的消息級別設置爲MSG_CLASS_BRIEF_LOG或MSG_CLASSS_EXTENDED_LOG。要確定當前級別,

請使用lr_get_debug_message。 unsigned int lr_get_debug_message ( );中文解釋:lr_get_debug_message函數返回當前的日誌運行時設置。該設置確定發送到輸出端的信息。日誌設置是使用運行時設置對話框或通過使用lr_set_debug_message函數指定的。 int lr_set_debug_message (unsigned int message_level, unsigned int on_off); 中文解釋:lr_set_debug_message函數設置腳本執行的調試消息級別message_lvl。通過設置消息級別,可以確定發送哪些信息。啓動設置的方法是將LR_SWITCH_ON作爲on_off傳遞,禁用設置的方法是傳遞LR_SWITCH_OFF。

【lrd_stmt】:將SQL語句與光標關聯

【lrd_fetch】:提取結果集中得下一條記錄

43. 性能瓶頸分析方法?

同一場景1.小用戶量的情況下測試2.大用戶量情況下的測試分析的方法:整個系統架構分析,系統響應時間消耗,利用圖表分析查看事務響應時間,通過事務摘要圖分析事務響應時間,那個消耗最大(通過小用戶量和大用戶量的響應時間分析,查看那個事務響應時間最高),確定哪部分功能是性能的瓶頸,分析window resource圖表,查看cpu使用下列計數器標識cpu瓶頸Processor\ Interrupts/secProcessor\ % Processor TimeProcess(process)\ % Processor TimeSystem\ Processor Queue Length通過它來確定是否硬件本身出現瓶頸,或者進一步確定應該怎麼去判斷性能產生瓶頸的地方!下一步去判斷進程,那個進程消耗cpu最高下邊就有很多種情況需要你自己去判斷,有可能是進程調用了的函數消耗了系統資源形成上邊的問題,也有可能是後臺數據庫出現的問題(這個就要看你的系統配置是什麼樣的,比如你的db服務器和應用服務器都配置在一臺機器上)性能產生瓶頸有很多地方,所以需要進一判斷,是否是後臺數據庫的問題還有待分析,是那條語句導致的問題需要進一步分析判斷。分析原則:• 具體問題具體分析(這是由於不同的應用系統,不同的測試目的,不同的性能關注點)• 查找瓶頸時按以下順序,由易到難。服務器硬件瓶頸-〉網絡瓶頸(對局域網,可以不考慮)-〉服務器操作系統瓶頸(參數配置)-〉中間件瓶頸(參數配置,數據庫,web服務器等)-〉應用瓶頸(SQL語句、數據庫設計、業務邏輯、算法等)注:以上過程並不是每個分析中都需要的,要根據測試目的和要求來確定分析的深度。對一些要求低的,我們分析到應用系統在將來大的負載壓力(併發用戶數、數據量)下,系統的硬件瓶頸在哪兒就夠了。• 分段排除法很有效分析的信息來源:•1 根據場景運行過程中的錯誤提示信息•2 根據測試結果收集到的監控指標數據一.錯誤提示分析分析實例:1 •Error: Failed to connect to server “10.10.10.30:8080″: [10060] Connection•Error: timed out Error: Server “10.10.10.30″ has shut down the connection prematurely分析:•A、應用服務死掉。(小用戶時:程序上的問題。程序上處理數據庫的問題)•B、應用服務沒有死(應用服務參數設置問題)例:在許多客戶端連接Weblogic應用服務器被拒絕,而在服務器端沒有錯誤顯示,則有可能是Weblogic中的server元素的 AcceptBacklog屬性值設得過低。如果連接時收到connection refused消息,說明應提高該值,每次增加25%•C、數據庫的連接(1、在應用服務的性能參數可能太小了 2、數據庫啓動的最大連接數(跟硬件的內存有關))2 Error: Page download timeout (120 seconds) has expired分析:可能是以下原因造成•A、應用服務參數設置太大導致服務器的瓶頸•B、頁面中圖片太多•C、在程序處理表的時候檢查字段太大多二.監控指標數據分析1.最大併發用戶數:應用系統在當前環境(硬件環境、網絡環境、軟件環境(參數配置))下能承受的最大併發用戶數。在方案運行中,如果出現了大於3個用戶的業務操作失敗,或出現了服務器shutdown的情況,則說明在當前環境下,系統承受不了當前併發用戶的負載壓力,那麼最大併發用戶數就是前一個沒有出現這種現象的併發用戶數。如果測得的最大併發用戶數到達了性能要求,且各服務器資源情況良好,業務操作響應時間也達到了用戶要求,那麼OK。否則,再根據各服務器的資源情況和業務操作響應時間進一步分析原因所在。2.業務操作響應時間:• 分析方案運行情況應從平均事務響應時間圖和事務性能摘要圖開始。使用“事務性能摘要”圖,可以確定在方案執行期間響應時間過長的事務。• 細分事務並分析每個頁面組件的性能。查看過長的事務響應時間是由哪些頁面組件引起的?問題是否與網絡或服務器有關?• 如果服務器耗時過長,請使用相應的服務器圖確定有問題的服務器度量並查明服務器性能下降的原因。如果網絡耗時過長,請使用“網絡監視器”圖確定導致性能瓶頸的網絡問題3.服務器資源監控指標:內存:1 UNIX資源監控中指標內存頁交換速率(Paging rate),如果該值偶爾走高,表明當時有線程競爭內存。如果持續很高,則內存可能是瓶頸。也可能是內存訪問命中率低。2 Windows資源監控中,如果Process\Private Bytes計數器和Process\Working Set計數器的值在長時間內持續升高,同時Memory\Available bytes計數器的值持續降低,則很可能存在內存泄漏。內存資源成爲系統性能的瓶頸的徵兆:很高的換頁率(high pageout rate);進程進入不活動狀態;交換區所有磁盤的活動次數可高;可高的全局系統CPU利用率;內存不夠出錯(out of memory errors)處理器:1 UNIX資源監控(Windows操作系統同理)中指標CPU佔用率(CPU utilization),如果該值持續超過95%,表明瓶頸是CPU。可以考慮增加一個處理器或換一個更快的處理器。如果服務器專用於SQL Server,可接受的最大上限是80-85%合理使用的範圍在60%至70%。2 Windows資源監控中,如果System\Processor Queue Length大於2,而處理器利用率(Processor Time)一直很低,則存在着處理器阻塞。CPU資源成爲系統性能的瓶頸的徵兆:很慢的響應時間(slow response time)CPU空閒時間爲零(zero percent idle CPU)過高的用戶佔用CPU時間(high percent user CPU)過高的系統佔用CPU時間(high percent system CPU)長時間的有很長的運行進程隊列(large run queue size sustained over time)磁盤I/O:1 UNIX資源監控(Windows操作系統同理)中指標磁盤交換率(Disk rate),如果該參數值一直很高,表明I/O有問題。可考慮更換更快的硬盤系統。2 Windows資源監控中,如果 Disk Time和Avg.Disk Queue Length的值很高,而Page Reads/sec頁面讀取操作速率很低,則可能存在磁盤瓶徑。I/O資源成爲系統性能的瓶頸的徵兆 :過高的磁盤利用率(high disk utilization)太長的磁盤等待隊列(large disk queue length)等待磁盤I/O的時間所佔的百分率太高(large percentage of time waiting for disk I/O)太高的物理I/O速率:large physical I/O rate(not sufficient in itself)過低的緩存命中率(low buffer cache hit ratio(not sufficient in itself))太長的運行進程隊列,但CPU卻空閒(large run queue with idle CPU)4.數據庫服務器:SQL Server數據庫:1 SQLServer資源監控中指標緩存點擊率(Cache Hit Ratio),該值越高越好。如果持續低於80%,應考慮增加內存。2 如果Full Scans/sec(全表掃描/秒)計數器顯示的值比1或2高,則應分析你的查詢以確定是否確實需要全表掃描,以及SQL查詢是否可以被優化。3 Number of Deadlocks/sec(死鎖的數量/秒):死鎖對應用程序的可伸縮性非常有害,並且會導致惡劣的用戶體驗。該計數器的值必須爲0。4 Lock Requests/sec(鎖請求/秒),通過優化查詢來減少讀取次數,可以減少該計數器的值。

Oracle數據庫:1 如果自由內存接近於0而且庫快存或數據字典快存的命中率小於0.90,那麼需要增加SHARED_POOL_SIZE的大小。快存(共享SQL區)和數據字典快存的命中率:select(sum(pins-reloads))/sum(pins) from v$librarycache;select(sum(gets-getmisses))/sum(gets) from v$rowcache;自由內存 select * from v$sgastat where name=’free memory’;2 如果數據的緩存命中率小於0.90,那麼需要加大DB_BLOCK_BUFFERS參數的值(單位:塊)。緩衝區高速緩存命中率:select name,value from v$sysstat where name in (‘db block gets’,‘consistent gets’,'physical reads’) ;

Hit Ratio = 1-(physical reads / ( db block gets + consistent gets))3 如果日誌緩衝區申請的值較大,則應加大LOG_BUFFER參數的值。日誌緩衝區的申請情況:select name,value from v$sysstat where name = ‘redo log space requests’ ;4 如果內存排序命中率小於0.95,則應加大SORT_AREA_SIZE以避免磁盤排序。內存排序命中率:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章