290 likes | 501 Views
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.
E N D
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 LAN Internet Client Data Data Proxy Software
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.) LAN Internet Client Page requested by client Data Data Search Results Search Request Proxy Handler Functions 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 Internet mod_disk_cache Apache Request handler mod_proxy Client
URL Request Block Diagram Fetch from cache Cache found Receive URL request Search in PCE database Handle request Cache not found Bring to cache Update PCE database
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 Apache PCE card Host TCP/IP TCP/IP
Messaging Model • In this model we using Win32 API to pipe IPC messaging. Client Apache PCE card TCP/IP Win32 API Messaging
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).
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 • ……