web server distributor1 lecturer: dr. reuven cohen lab engineer: eng. itai dabran project...
TRANSCRIPT
Web Server Distributor 1
Lecturer: Dr. Reuven CohenLab Engineer: Eng. Itai DabranProject Supervisor: Daniel Segal
Authors: Rony Fuks Yossi Peery Gil Sasson Fall 2000/1
Computer Science Department
Technion- Israel Institute of Technology
The Laboratory of Computer Communications and Networking
Web Server Distributor 2
Motivations High PerformancesHigh Performances E-Commerce, B2B, B2C, DotComE-Commerce, B2B, B2C, DotCom Hardware Technology Vs. Internet GrowthHardware Technology Vs. Internet Growth
How to Distribute ? How to Distribute ? Answer ……Answer …… Web Server DistributorWeb Server Distributor
Web Server Distributor 5
Server Monitoring
Internal MonitoringInternal Monitoring
External MonitoringExternal Monitoring
ICMPICMP
TCPTCP
HTTPHTTP
Web Server Distributor 6
Server Selection
Round RobinRound Robin
Response Time Based DecisionResponse Time Based Decision
Sophisticated AlgorithmsSophisticated Algorithms
Web Server Distributor 8
Load Balancer
File Table
WS Table
Decision
Algorithms
Updates
Sampler
.
.
.
WS 1
HTTP
Client
WS n
HTTP
Client
GET =>
<=
REPLY
GET =>
<=
REPLY
Redirector
Worker ThreadWorker Thread
Worker Thread
Completion
Port Loop
OP
ACCEPT
OP
RECV
new HTTP
connects
HTTP
redirect
URI =>
<=Server IP
GUI
Our Project
Web Server Distributor 9
Our Project Redirector
Simple HTTP serverSimple HTTP server Using IO completion portsUsing IO completion ports Multi ThreadedMulti Threaded
Web Server Distributor 11
Our Project GUI
MFC GUIMFC GUI Communication with the load Communication with the load
balancer and the redirector balancer and the redirector through message tunneling through message tunneling
Web Server Distributor 12
Our Project Sampler
AlgorithmAlgorithm Sampling algorithmSampling algorithm
Completed transactionCompleted transactionIncomplete transactionIncomplete transactionNo ResponseNo Response
Web Server Distributor 13
Our Project Sampler
Code StructureCode Structure Thread Creation/DestructionThread Creation/Destruction HTTP “GET” requestHTTP “GET” request Time measurementTime measurement Sampling RatioSampling Ratio Updating InterfaceUpdating Interface
Web Server Distributor 14
Our ProjectLoad Balancer
File TableFile Table Sampling ListSampling List Web Server TableWeb Server Table Decision AlgorithmDecision Algorithm
Web Server Distributor 15
Our ProjectLoad BalancerFile Table
Input Input ini fileini file
1.1. URIURI
2.2. File SizeFile Size
3.3. Server LocationServer Location
Output Output Hash Table Hash Table
Web Server Distributor 16
Our ProjectLoad BalancerSampling List
How to check WS ?How to check WS ? Same File on Each WSSame File on Each WS Go over hash tableGo over hash table Find all files that exist on all WS Find all files that exist on all WS
Web Server Distributor 17
Our ProjectLoad BalancerWeb Server Table
WS IIP No. Get
Resp. Time
Rank Avg. Rank
Weighted Rank
No. Time Out
Cont. Time Out
B. Sent[1]
B. Sent[2]
B. Sent[3]
B. Sent[4]
Max Capac
ity
0 132.68.37.60 57 20 1 1.25 1.25 0 0 2000 1000 2541 455 30000
1 132.68.37.61 57 30 2 2.645 2.645 0 0 1254 321 2145 1455 50000
2 132.68.37.62 57 26 1 3.25 8.54 2 0 6544 8745 9574 4576 80000
3 132.68.37.63 57 Inf. Inf. 4.47 Inf. 1 0 1598 4125 2255 2145 21000
4 132.68.37.64 57 22 1 1.55 5.68 4 0 1254 6987 1200 147 15000
5 132.68.37.65 57 Inf. Inf. 1.34 Inf. 3 3 2365 1547 520 254 12000
6 132.68.37.66 57 40 3 1.24 8.97 5 0 1025 1225 10 0 14000
Web Server Distributor 18
Our ProjectLoad BalancerWeb Server Table
Ranking ProcessRanking Process Results from Sampler (wait till time out)Results from Sampler (wait till time out)
What if we didn’t receive all the file ? What if we didn’t receive all the file ? Find lowest response timeFind lowest response time Find range (lowestXfactor)Find range (lowestXfactor) Find next range (etc`)Find next range (etc`)
WS IIP Resp. Time
Rank
0 132.68.37.60 20 1
1 132.68.37.61 30 2
2 132.68.37.62 26 1
3 132.68.37.63 Inf. Inf.
4 132.68.37.64 22 1
5 132.68.37.65 Inf. Inf.
6 132.68.37.66 40 3
Web Server Distributor 19
Our ProjectLoad BalancerWeb Server Table
WS IIP Resp. Time
Rank No. Time Out
Cont. Time Out
0 132.68.37.60 20 1 0 0
1 132.68.37.61 30 2 0 0
2 132.68.37.62 26 1 2 0
3 132.68.37.63 Inf. Inf. 1 0
4 132.68.37.64 22 1 4 0
5 132.68.37.65 Inf. Inf. 3 3
6 132.68.37.66 40 3 5 0
Time OutsTime Outs No. of time outsNo. of time outs Cont. Time outsCont. Time outs
Web Server Distributor 20
Our ProjectLoad BalancerWeb Server Table
Bytes Sent CalculationBytes Sent Calculation Dividing the bytes sent by periodsDividing the bytes sent by periods
WS IIP B. Sent[1]
B. Sent[2]
B. Sent[3]
B. Sent[4]
Max Capac
ity
0 132.68.37.60 2000 1000 2541 455 30000
1 132.68.37.61 1254 321 2145 1455 50000
2 132.68.37.62 6544 8745 9574 4576 80000
3 132.68.37.63 1598 4125 2255 2145 21000
4 132.68.37.64 1254 6987 1200 147 15000
5 132.68.37.65 2365 1547 520 254 12000
6 132.68.37.66 1025 1225 10 0 14000
Web Server Distributor 21
Our ProjectLoad BalancerWeb Server Table
Dividing the bytes sent by periodsDividing the bytes sent by periods• What is the logic behindWhat is the logic behind• Calculations of Clients Distributions TimesCalculations of Clients Distributions Times
Time Line0-150 -100 -50
Web Server Distributor 22
Our ProjectLoad BalancerWeb Server Table
Weighted Rank CalculationsWeighted Rank CalculationsWeighted Rank = Weighted Rank = (F1 X Rank +(F1 X Rank + F2 X Average Rank +F2 X Average Rank + F3 X No. Time Out +F3 X No. Time Out + F4 X Cont. Time Out ) +F4 X Cont. Time Out ) +
(B1 X B.Sent[1]/Max Capacity +(B1 X B.Sent[1]/Max Capacity + B2 X B.Sent[2]/Max Capacity +B2 X B.Sent[2]/Max Capacity + B3 X B.Sent[3]/Max Capacity +B3 X B.Sent[3]/Max Capacity + B4 X B.Sent[4]/Max Capacity )B4 X B.Sent[4]/Max Capacity )
Web Server Distributor 23
Our ProjectLoad Balancer Decision Algorithm
Best Server FunctionBest Server FunctionFind lowest weighted rankFind lowest weighted rankUpdate weighted rank/Bytes sentUpdate weighted rank/Bytes sent
If lowest weighted rank = If lowest weighted rank = If Continuous Time Out If Continuous Time Out MaxContTimeOut MaxContTimeOut
Return NullReturn Null
If Continuous Time Out If Continuous Time Out << MaxContTimeOut MaxContTimeOutReturn Redirector IPReturn Redirector IP