負載均衡在性能測試里的應用


Web服務器負載均衡定義、作用及類型

  • 負載均衡的定義

  負載均衡是由多台服務器以對稱的方式做成一個服務器集合,每台服務器都有等價的地位,都可以單獨對外提供服務而無須其他服務器輔助。通過某種負載分擔技術,將外         部發送來的請求均勻分配到對稱結構中的某一台服務器上,而接收到請求的服務器獨立的回應客戶的請求

 

  • 負載均衡的作用

  如果web站點負載量非常大時,應當考慮負載均衡技術來將負載平均分攤到多個內部服務器上。如果有多個服務器同時執行某一任務,這些服務器就構成一個集群。使用集

  群技術可以用最少的投資獲得最接近於大型主機的性能

 

  • 類型

  基於DNS的負載均衡

  通過DNS服務中的隨機名字來解析實現負載均衡,在DNS服務器中,可以為多個不同的地址配置同一個名字,而最終查詢這個名字的客戶機將在解析這個名字時得到其中的

  一個地址。因此,對於同一個名字,不同的客戶機會得到不同的地址,他們就訪問不同地址上的web服務器,從而達到負載均衡的目的

 

  反向代理負載均衡

  使用代理服務器可以將請求轉發給內部的web服務器,讓代理服務器將請求平均地轉發給多台內部web服務器之一上,從而達到負載均衡的目的。這種代理方式與普通代理

  方式有所不同,標准代理方式是客戶使用代理訪問多個外部web服務器,而這種代理方式是多個客戶使用它訪問內部web服務器,因此被稱為反向代理模式

 

  基於NAT的負載均衡技術

  網絡地址轉換為在內部地址和外部地址之間進行轉換,以便具備內部地址的計算機能訪問外部網絡,而當外部網絡中的計算機訪問地址轉換網關擁有的某一外部地址時,地

  址轉換網關能將其映射到一個內部地址上。因此如果地址轉換網關能將每個連接均勻轉換為不同的內部服務器地址,此后外部網絡中的計算機就各自與自己轉換得到的地址

  上的服務器進行通信,從而達到負載均衡的目的

  前段時間做了個性能測試,跑完了得到的服務器CPU還有內存的使用率如下:

Servers

CPU Utilization (%)

Memory (%)

Min

Avg

Max

Min

Avg

Max

App server

0.49

76.65

98.05

61.40

61.54

61.72

 - sidmsappsprd01

App server

0.00

0.98

23.75

16.99

17.04

17.22

 - sidmsappsprd02

 

很明顯看出所有的客戶端請求都被發送到App server01上去了。在了解了負載均衡的知識后,我們可以分析下如何解決上述問題。

在windows 2000以上的微軟操作系統中,系統會自動的將DNS服務器上的查詢結果保存在DNS緩存中,那么下次再有重復的請求,系統會優先查詢本地緩存。如果已有對應內容,則不再向DNS服務器發送請求,緩存中無記錄時才查詢DNS服務器。本來設定此DNS緩存的目的是為了能減少DNS服務器的負荷,不對同一個域名解析多次,同時也能加快客戶主機的訪問速度。在DNS緩存記錄條目每隔一段時間將被更新一次,長時間不用的內容將被丟棄。這個時間間隔稱為生存時間(TTL - Time to Live),簡單的說它表示DNS記錄在DNS服務器上緩存時間,直接地說,此值影響客戶第二次訪問站點的速度。默認情況下,得到肯定響應的條目TTL值為86400s(1天),否定響應的TTL windows 2000平台下是300s,在XP 和 2003 中是900s。

Windows 7上我發現沒有發現有TTL多長時間的定義:

打開注冊表:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Dnscache\Parameters

                       

Windows7以上你可以通過添加maxcacheTTL跟MaxNegativeCacheTtl來定義

 

而XP以及之前的版本應該用MaxCacheEntryTtlLimit跟MaxNegativeCacheTtl來定義

正是由於肯定響應和否定響應的TTL時間過長,所以才造成了故障主機在得到一次否定的DNS解析之后,一段時間內無法再到DNS服務器上查詢,只有等TTL時間過了之后,新的請求才有可能被別的負載均衡器響應。可以通過調整注冊表肯定和否定響應時間的大小來處理上面的問題。

 

谷哥找到的一段參考:

Using the Registry to Control the Caching Time

The length of time for which a positive or negative response is cached depends on the values of entries in the following registry key:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNSCache\Parameters

The TTL for positive responses is the lesser of the following values:

  • The number of seconds specified in the query response the resolver received
  • The value of the MaxCacheTtl registry setting.

Notes

  • The default TTL for positive responses is 86,400 seconds (1 day).
  • The TTL for negative responses is the number of seconds specified in the MaxNegativeCacheTtl registry setting.
  • The default TTL for negative responses is 900 seconds (15 minutes).

If you do not want negative responses to be cached, set the MaxNegativeCacheTtl registry setting to 0.

To set the caching time on a client computer:

  • Start Registry Editor (Regedit.exe).
  • Locate and then click the following key in the registry:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters

  • On the Edit menu, point to New , click DWORD Value, and then add the following registry values: Value name: MaxCacheTtl

Data type: REG_DWORD Default value: 86400 seconds Value data: If you lower the Maximum TTL value in the client's DNS cache to 1 second, this gives the appearance that the client-side DNS cache has been disabled.

Value name: MaxNegativeCacheTtl

Data type: REG_DWORD Default: 900 seconds Value data: Set the value to 0 if you do not want negative responses to be cached.

  • Type the value that you want to use, and then click OK.
  • Quit Registry Editor.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM