oscon 2010 - ats
Post on 08-May-2015
3.048 Views
Preview:
DESCRIPTION
TRANSCRIPT
Driving Apache Traffic Server
Leif HedstromEngineer, Yahoo Inc.
leif@ogre.comzwoop@apache.org
@zwoop
http://www.flickr.com/photos/zackbrescia/3292033740/
History and introduction to intermediaries
Configuration
Use cases
Origins of the software
Forward Proxy
Reverse Proxy
Intercepting Proxy
Plenty of FOSS Proxy Servers
Choosing an intermediary
SMP Scalability and performance
Traffic Server threads model
Traffic Server performance350,000 requests / sec in production CDN
- 30 Gbps / second (95-percentile)Many more request handled for HTML105,000 requests / sec with small content
out of cache, for a single (lab) box3.6Gbps out of a single box, with larger
content (4x GigE NIC bonded)
(all numbers from Y! CDN and lab testing).
HTTP/1.1 Features
ATS HAproxy nginx Squid Varnish mod_proxy
Worker Threads Y N N N Y Y
Multi-Process N Y Y N Y Y
Event-driven Y Y Y Y N N?
Plugin APIs Y N Y part Y Y
Forward Proxy Y N N Y N Y
Reverse Proxy Y Y Y Y Y Y
Transp. Proxy Y Y N Y N N
Load Balancer part Y Y Y Y Y
Cache Y N Y Y Y Y
ESI soon N N Y Y N
ICP Y N N Y N N
Keep-Alive Y N Y Y Y Y
SSL Y N Y Y N Y
Pipeline Y N Y Y N Y
Ease of use, extensible
http://www.flickr.com/photos/stuartpilbrow/3345896050/
Traffic Server making Ops easyTraffic Server will restart automatically if it
crashes
Traffic Server will kill itself if it isn’t responding
Traffic Server can reload most configurations without server restarts
Adding plugins is a matter of dropping in the shared object, and restarting
Stats and configurations are accessible via command line utilities
Configurations
Critical in records.configCONFIG proxy.config.exec_thread.autoconfig INT 1
CONFIG proxy.config.exec_thread.autoconfig.scale FLOAT 2.0
CONFIG proxy.config.exec_thread.limit INT 2
CONFIG proxy.config.http.server_port INT 8080
CONFIG proxy.config.http.cache.http INT 1
CONFIG proxy.config.cache.ram_cache.size INT 512M
CONFIG proxy.config.reverse_proxy.enabled INT 1
CONFIG proxy.config.url_remap.remap_required INT 1
CONFIG proxy.config.url_remap.pristine_host_hdr INT 0
CONFIG proxy.config.ssl.enabled INT 0
CONFIG proxy.config.ssl.server.cert.filename STRING server.pem
CONFIG proxy.config.url_remap.remap_required INT 1
CONFIG proxy.config.url_remap.remap_required INT 0
QUICK DEMO
Use Case: Content Delivery Network
CDN on the Edge
Traffic Server CDN configuration
CONFIG proxy.config.http.server_port INT 80CONFIG proxy.config.cache.ram_cache.size INT 4096MCONFIG proxy.config.url_remap.remap_required INT 1
map http://cdn.example.com/js http://js.example.comreverse_map http://js.example.com http://cdn.example.com/js
map http://cdn.example.com/css http://css.example.comreverse_map http://css.example.com http://cdn.exampe.com/css
map http://cdn.example.com/img http://img.example.comreverse_map http://img.example.com http://cdn.example.com/img
/dev/sd2
Common enemies of performance
TCP 3-way Handshake
Congestion avoidance
Use case: TCP Connection Management
ATS Connection mgmt configuration
CONFIG proxy.config.http.server_port INT 80CONFIG proxy.config.cache.ram_cache.size INT 0CONFIG proxy.config.url_remap.remap_required INT 1
CONFIG proxy.config.http.send_http11_requests INT 1CONFIG proxy.config.http.share_server_sessions INT 1CONFIG proxy.config.http.server_max_connections INT 2000
CONFIG proxy.config.http.keep_alive_no_activity_timeout_out INT 60CONFIG proxy.config.http.transaction_no_activity_timeout_out INT 60
map http://www.example.com/ http://real-www.example.com
Executive Summary Understand your requirements
Evaluate available solutions
Building a CDN is easy
Apache Traffic Server is
- Fast and SMP scalable
- Battle hardened
- HTTP/1.1 compliant
- Easy to configure and manage
- Actively developed
- Free as in beer! (Now lets go have some)
trafficserver.apache.org
The concurrency problem
Solution 1: Multithreading
Problems with multi-threading
Solution 2: Event Processing
Problems with event processors
top related