Download presentation
Presentation is loading. Please wait.
Published byAllen Griffith Modified over 8 years ago
1
Driving Apache Traffic Server Leif Hedstrom Engineer, Yahoo Inc. leif@ogre.com zwoop@apache.org @zwoop
2
http://www.flickr.com/photos/zackbrescia/3292033740/
3
History and introduction to intermediaries Configuration Use cases
4
Origins of the software
6
Forward Proxy
7
Reverse Proxy
8
Intercepting Proxy
9
Plenty of FOSS Proxy Servers
10
Choosing an intermediary
11
SMP Scalability and performance
12
Traffic Server threads model
13
Traffic Server performance 350,000 requests / sec in production CDN -30 Gbps / second (95-percentile) Many more request handled for HTML 105,000 requests / sec with small content out of cache, for a single (lab) box 3.6Gbps out of a single box, with larger content (4x GigE NIC bonded) (all numbers from Y! CDN and lab testing).
14
HTTP/1.1 Features
15
ATSHAproxynginxSquidVarnishmod_proxy Worker Threads YNNNYY Multi-Process NYYNYY Event-driven YYYYNN? Plugin APIs YNYpartYY Forward Proxy YNNYNY Reverse Proxy YYYYYY Transp. Proxy YYNYNN Load Balancer partYYYYY Cache YNYYYY ESI soonNNYYN ICP YNNYNN Keep-Alive YNYYYY SSL YNYYNY Pipeline YNYYNY
16
Ease of use, extensible
17
http://www.flickr.com/photos/stuartpilbrow/3345896050/
18
Traffic Server making Ops easy Traffic 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
20
Configurations
21
plugin.config records.config partition.config hosting.config cache.config update.config ip_allow.config storage.config logs_xml.config parent.config remap.config icp.config
22
records.configstorage.config remap.config
23
Critical in records.config CONFIG 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
24
CONFIG proxy.config.url_remap.remap_required INT 1
25
CONFIG proxy.config.url_remap.remap_required INT 0
26
QUICK DEMO
27
Use Case: Content Delivery Network
28
CDN on the Edge
29
Traffic Server CDN configuration CONFIG proxy.config.http.server_port INT 80 CONFIG proxy.config.cache.ram_cache.size INT 4096M CONFIG proxy.config.url_remap.remap_required INT 1 map http://cdn.example.com/js http://js.example.com reverse_map http://js.example.com http://cdn.example.com/js map http://cdn.example.com/css http://css.example.com reverse_map http://css.example.com http://cdn.exampe.com/css map http://cdn.example.com/img http://img.example.com reverse_map http://img.example.com http://cdn.example.com/img /dev/sd2
30
Common enemies of performance
31
TCP 3-way Handshake
32
Congestion avoidance
33
Use case: TCP Connection Management
34
ATS Connection mgmt configuration CONFIG proxy.config.http.server_port INT 80 CONFIG proxy.config.cache.ram_cache.size INT 0 CONFIG proxy.config.url_remap.remap_required INT 1 CONFIG proxy.config.http.send_http11_requests INT 1 CONFIG proxy.config.http.share_server_sessions INT 1 CONFIG proxy.config.http.server_max_connections INT 2000 CONFIG proxy.config.http.keep_alive_no_activity_timeout_out INT 60 CONFIG proxy.config.http.transaction_no_activity_timeout_out INT 60 map http://www.example.com/ http://real-www.example.com
35
Executive Summary Understand your requirements Evaluate available solutions Building a CDN is easy Apache Traffic Server is -Fast and SMP scalable -HTTP/1.1 compliant -Battle hardened -Easy to configure and manage -Actively developed -Free as in beer
36
trafficserver.apache.org
37
The concurrency problem
38
Solution 1: Multithreading
39
Problems with multi-threading
40
Solution 2: Event Processing
41
Problems with event processors
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.