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
– ……