Proxy Server

advertisement

Proxy Server based Proxy Cache

Engine

Perfomed by: Leonid Romanovsky

Olga Fomenko

Intructor: Konstantin Sinyuk

Project Goals

 Find appropriate proxy software.

 Integrate Proxy Cache Engine (PCE card) into proxy server software.

 Test PCE card in initial configuration.

 Improve performance of PCE card to achieve the maximum in test environment.

 Make system and OS optimization to resolve possible bottlenecks.

Proxy Description

Internet

Data

Proxy Software

Data

Client

LAN

Proxy Advantages

 Stores internet pages locally.

 Reducing the amount of data transferred on external links.

 Efficient use of external bandwidth.

PCE Card Description

 The Proxy Cache Engine project attempts to overcome the known proxy cache limitations and resolve in hardware existing system bottlenecks.

 Proxy Cache Engine project was performed in High Speed Digital Systems

Lab by Artyom Borzin and Stas Lapchev.

FOR MORE INFO...

Read Proxy Cache Engine final report on High Speed Digital Systems

Lab site.

PCE Card Description(cont.)

Internet

Client

LAN

Data

Proxy Handler

Functions

Page requested by client

Search

Results

Data

Search

Request Client Handler

Functions

Proxy cache engine (PCE) unit

Proxy Software-Competitive

Analysis

 Competitors

– Jigsaw

 Strengths

– The server uses an object-oriented approach when it comes to the storage of files and the processing of incoming requests, making it both more efficient and easily extensible.

 Weaknesses

– Developed under Java,which limited in optimization by Java Virtual Machine.

Proxy Software-Competitive

Analysis(cont.)

 Competitors

– Squid Web Proxy Cache

 Strengths

– One of the most popular proxy software in the world.

– Test environment is very simple.

 Weaknesses

– Developed for UNIX.

– Sophisticated design.

– No support in module development model.

Proxy Software-Competitive

Analysis(cont.)

 Competitors

– Apache HTTP Server 1.3

 Strengths

– Developed in module development model.

– Simple API.

 Weaknesses

– Has one module for proxy and cache methods.

– Contains number not needed modules.

Proxy Software-Competitive

Analysis(cont.)

 Competitors

– Apache HTTP Server 2.0

 Strengths

– Developed in module development model.

– Simple API.

– Has separated modules for proxy and cache.

 Weaknesses

– Contains number not needed modules.

General Request Block Diagram

Apache 2.0.43

Web Interface/

Win32 API

PCE card

Client mod_disk_cache

Apache

Request handler mod_proxy

Internet

URL Request Block Diagram

Receive

URL request

Fetch from cache

Cache found

Search in

PCE database

Cache not found

Bring to cache

Update PCE database

Handle request

PCE Card Integration

 PCE card was integrated using two models to solve multithreaded problem in PCE card driver*:

– Socket model

– Messaging model

*- PCE card driver has no support in multithreaded and multiprocessing

Models Description

 Socket model

– Supports IPC* in network level

– User-Friendly

 Messaging model

– Supports IPC in pipeline level

– OS oriented

* IPC – Inter-Process Communication

Socket Model

 In this model we can distribute PCE card on number computers to allow parallel workload.

Client

TCP/IP

Apache

TCP/IP

PCE card

Host

Messaging Model

 In this model we using Win32 API to pipe IPC messaging.

Client

TCP/IP

Apache

Win32 API Messaging

PCE card

Testing Methods

 Simple PCE card test

– Small number of requests from single client.

 Advanced PCE card test

– Massive load of requests from number of clients.

Simple PCE Card Test Tools

 Developed utility to call debug mode.

 Visual Studio

Debugger to give online view of all variables.

Advanced PCE Card Test Tools

 Developed test system which allow multithreaded load from number of clients*.

 Developed link generating tool to collect link database for test system.

* Code name of this system is Crawler

Crawler Description

 Link generating module

– Receives start point URL and link call depth.

– Developed on Perl.

 Link load module

– Receives the link database file ,number of threads to simulate.

– Returns average response time.

– Developed on Perl.

Statistics

 According to SPECWEB99 parameters for the web server testing are

– Average response time per connections.

– Throughput ops/sec (operation is any activity on server side).

Average Response Time

Statistics original

Socket card

Socket s im ulator

Mes s aging

50 40 30 20 number of threaads

10 1

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0

Throughput

 Average time for pure PCE card driver is 1 millisecond.

 Average time from starting PCE card request to the end of request is 15 millisecond in Apache.

OS Optimization

 To achieve maximum performance from operating system, was chosen

Windows XP Embedded (WXE), and built operating system image especially for our needs.

OS Optimization Summary

 Advantages:

– Significant Improvements in overall system performance.

– Allow “ Black box ” system.

 Disadvantages:

– No additional Apache performance.

Difficulty

 PCE card driver has no support in multithreading.

 Limited info returned from PCE card.

 No programming documentation for

Apache 2.X.

 Bugs in all layers.

 It was mainly research project.

Proposition

 Rewrite PCE card driver for native support multithreading.

 For production write new model for

Apache and don ’ t rewrite existing modules.

 Custom developed proxy will be preferred.

Summary

 This project shows the advantages of proxy server based on PCE card, which reduce load from CPU.

 The forecast is that the next generation of proxy servers will use

CRC computing devices, like PCE card, in distributed model.

Thank To

 All people that supported us in this project

– Eli Shoshan

– Konstantin Sinyuk

– Stas Lapchev

– Artyom Borzin

– Boris Kogan

– ……

Download