Apache Traffic Comcast Evan Zelkowitz

Slides:



Advertisements
Similar presentations
Kit Chan ATS Lua Plugin Kit Chan Hi, My name is kit.
Advertisements

MCDST : Supporting Users and Troubleshooting a Microsoft Windows XP Operating System Chapter 3: Upgrading from a Previous Version of Windows.
Catalog: Batch delete old Patron Records How to conduct global/batch updates to records – patron Adding Faculty and Patron/Student Records Manually Standardizing.
1 The World Wide Web. 2  Web Fundamentals  Pages are defined by the Hypertext Markup Language (HTML) and contain text, graphics, audio, video and software.
Chapter 27 Q and A Victor Norman IS333 Spring 2015.
Introducing VMware vSphere 5.0
NovaBACKUP 10 xSP Technical Training By: Nathan Fouarge
TCP Sockets Reliable Communication. TCP As mentioned before, TCP sits on top of other layers (IP, hardware) and implements Reliability In-order delivery.
SYN407D: Image Management made easy with Provisioning Services 6.0
Session 10 Windows Platform Eng. Dina Alkhoudari.
London April 2005 London April 2005 Creating Eyeblaster Ads The Rich Media Platform The Rich Media Platform Eyeblaster.
London April 2005 London April 2005 Creating Eyeblaster Ads The Rich Media Platform The Rich Media Platform Eyeblaster.
CNIT 133 Interactive Web Pags – JavaScript and AJAX JavaScript Environment.
Microsoft Office Outlook 2013 Microsoft Office Outlook 2013 Courseware # 3252 Lesson 6: Organizing Information.
Diagnostic Pathfinder for Instructors. Diagnostic Pathfinder Local File vs. Database Normal operations Expert operations Admin operations.
Understanding Allocations Brian Chizever Cognos Corporation.
The Alternative Larry Moore. 5 Nodes and Variant Input File Sizes Hadoop Alternative.
Chapter 10 Chapter 10: Managing the Distributed File System, Disk Quotas, and Software Installation.
LinuxChix Apache. Serving Webpages The layer 7 protocol (HTTP) is what our browsers talk to get us the websites we can't seem to live without. HTTP is.
] COREY PEARSON [ ASUG INSTALLATION MEMBER MEMBER SINCE: 2008 CHAVONE JACOBS [ ASUG INSTALLATION MEMBER MEMBER SINCE: 2003 ALLAN FISHER [ ASUG INSTALLATION.
ASP-2-1 SERVER AND CLIENT SIDE SCRITPING Colorado Technical University IT420 Tim Peterson.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
John Rushford Apache Traffic Server Multi-Site Origin and Secondary Consistent Hash Feature John Rushford
Hands-On Microsoft Windows Server 2008 Chapter 7 Configuring and Managing Data Storage.
Your current Moodle 1.9 Minimum Requirements Ability to do a TEST RUN! Upgrading Moodle to Version 2 By Ramzan Jabbar Doncaster College for the Deaf By.
1 RIC 2009 Symbolic Nuclear Analysis Package - SNAP version 1.0: Features and Applications Chester Gingrich RES/DSA/CDB 3/12/09.
Emdeon Office Batch Management Services This document provides detailed information on Batch Import Services and other Batch features.
Mahara-Moodle Integration Iñaki Arenaza This work licensed under the conditions of “Creative Commons Attribution-Share Alike 3.0 Spain License”
Networking Objectives Understand what the following policies will contain – Disaster recovery – Backup – Archiving – Acceptable use – failover.
Installing Windows 7 Lesson 2.
LINGO TUTORIAL.
Autodesk Dev Days 2015 The road ahead DevDays 2015
Alcatel-Lucent Security Products Configuration Example Series
Jonathan Walpole Computer Science Portland State University
Training Documentation – Replacing GSPR with RFQ 2.0
Metro Mirror, Global Copy, and Global Mirror Quick Reference
Chapter 5: Enhancing Your Output with ODS
SAP Business One B1iF Training
draft-ietf-simple-message-sessions-00 Ben Campbell
MCTS Guide to Microsoft Windows 7
Reviewing Documents Guided Lesson.
The Good,The Bad,And The Ugly: Working with OVM
Connection changes in Scribe Starting with version 7.9.0
Experience with jemalloc
Web Caching? Web Caching:.
B+-Trees.
Intro to PHP & Variables
TwinEngines Discharges
Central Document Library Quick Reference User Guide View User Guide
Lesson 1: Introduction to Trifacta Wrangler
Ansible and Zabbix Rushikesh Prabhune (Software Technical Consultant)
ECONOMETRICS ii – spring 2018
Microsoft Word Reviewing Documents.
NIMAC for Publishers & Vendors: Delivering Files
Lesson 1: Introduction to Trifacta Wrangler
(Includes setup) FAQ ON DOCUMENTS (Includes setup)
ETS Submission Process for New Project Applications
Should I Transition to .NET Core? Will it hurt?
What’s changed in the Shibboleth 1.2 Origin
Exploring the Power of EPDM Tasks - Working with and Developing Tasks in EPDM By: Marc Young XLM Solutions
What’s New in Time & Attendance
TSConfig & Lua Config Better together
Exploring the Power of EPDM Tasks Working with and Developing Tasks in SolidWorks Enterprise PDM (EPDM) By: Marc Young xLM Solutions
Inside a PMI Online Course
Outline System architecture Current work Experiments Next Steps
(Includes setup) FAQ ON DOCUMENTS (Includes setup)
Enhanced agent workspace for messaging
How to install and manage exchange server 2010 OP Saklani.
Presentation transcript:

Apache Traffic Server @ Comcast Evan Zelkowitz

Upgrading to ATS 7.x

Pitfalls Logging changes (convert to lua format) Traffic_line to traffic_ctl (use new command) Cacheurl to cachekey (use new plugin) Changed Parameters For logging changes had to add logic to traffic ops. If it sees a logging.config file then it will treat it as a lua format vs the old xml formatted logs_xml file. It still takes all the same parameters as the xml it just formats them into the new format For traffic line, it has been deprecated officially in 7. traffic ctl has existed since 6 so it was safe at this point to just change all of ort to use ctl instead Cacheurl being deprecated was a much bigger issue Finally there were about 20 configuration parameters either removed or changed. I have linked to the ATS version 7 migration document at the end of this that details those

Logging Config Changes Uses existing logs_xml.config conventions TO now understands “logging.config”. This triggers TO to output a LUA formatted config file using the same parameters Can use the same parameter values, assign to logging.config file

traffic_line to traffic_ctl Traffic_line officially removed in 7.x Ort will now use traffic_ctl. This exists in 6/5.x as well This makes ort not backwards compatible past 5.x

Cacheurl to Cachekey Cacheurl is deprecated in 6.x, removed in 7.x Cachekey in 6.x is usable though some patches are needed to support everything used in cacheurl (included in migration doc) Change from single regex to parameter usages Can create compatible Cachekeys that match Cacheurl regex keys (Thanks to Gancho Tenev)

Cachekey examples http://example.net/(.*) http://example-cdn.net/$1 http://example.net/(.*) http://example-cdn.net/$1 Simple host replacement http://([^?]+)(?:?|$) http://example-cdn.net/$1 Special case that includes the original host in the key, i.e. http://example-cdn.net/example.net/...(path).. Also note the s?, both http/https will use the same key http://example.net/([^?]+)(?:\?|$) http://example- cdn.net/$1 Strips off params but leaves the path @plugin=cachekey.so @pparam=--separator= @pparam=--static-prefix=http://example- cdn.net/ @plugin=cachekey.so @pparam=--separator= @pparam=--remove-all-params=true @pparam=-- remove-path=true @pparam=--capture-prefix- uri=/https?:\/\/([^?]*)/http:\/\/example- cdn.net\/$1/ @plugin=cachekey.so @pparam=--remove-all- params=true @pparam=--separator= @pparam=-- static-prefix=http://example-cdn.net/

Highly recommended to test with the ATS xdebug plugin to ensure you are matching your new cachekeys to your old cacheurl values “-H 'X-Debug: X-Cache-Key’”

ATS Enhancements

Traffic_ctl parent usage (John Rushford and Vijay Mamidi Next Hop) Parent caches are defined in parent.config by delivery service Parent state (up/down) is per line or delivery service in parent.config The http state machine marks down a parent due to connection errors or timeouts. Parent selection will return a parent for retry once the retry window has elapsed and the parent is marked up if a retry is successful. There is no way to manually control the state of parents. Today parents are removed from parent.config when maintenance must occur. We brought in support that John Rushford added to the ATS master branch where now you can mark parents up or down via traffic_ctl

# traffic_ctl host status odol-atsmid-den-07.denver.comcast.net # traffic_ctl host up odol-atsmid-den-07.denver.comcast.net host_status.odol-atsmid-den-07.denver.comcast.net 1 # traffic_ctl host down odol-atsmid-den-07.denver.comcast.net There can be a slight delay between changing states as it propagates through ATS Using traffic_ctl to mark down a parent is global across all remaps. Parent selection will not choose that parent again until you mark it back up States appear in the stats_over_http. Lists all parents up/down states Also available from traffic_ctl, /opt/trafficserver/bin/traffic_ctl metric match host_status Can do multiple hosts on a single command as well On master branch of ATS but pick-able back to 7.x

Jemalloc (Thanks to Kit Chan) Current tools are slow (10x to 20x degradation). Not really possible to use in production Some need recompilation Hard to debug on large scale, can take days-weeks for a problem to show up

Simple Script to do a preload with the jemalloc library: #!/bin/sh prefix=/usr exec_prefix=/usr libdir=/usr/lib64 MALLOC_CONF="prof:true,prof_prefix:/tmp/jeprof.out,lg_prof_interval:33,lg_prof_sample:20" LD_PRELOAD=${libdir}/libjemalloc.so.2 export LD_PRELOAD export MALLOC_CONF /opt/trafficserver/bin/traffic_server $@ This samples every 2^20 – 1mb, Does file dumps ~2^32 – 4GB Change proxy.config.proxy_binary to match the script name We setup a cronjob to clean up any dumps older than 2 weeks Most dumps ~150-200k, we usually see them every few hours during normal usage Can use dot to generate a pdf

Jemalloc memory tracking Here we have a side by side of the graphical jemalloc output. You can see memory use values by largest hitters. So here we lost 5gb in ~20hrs. You cant really see the full tree but those inline allocations if you follow them up came from a parent config reconfigure call. So this helped us pinpoint fairly quickly that there was something not being free'd whenever we would do a reconfig of the parents or even just touch the parent.config file. This helped us find the issue fairly quick and has since been sent upstream in to both the 6.x, 7.x, and master branches of ATS.

Very helpful in finding plugin memory issues Can help in other areas as shown Freelist can be problematic. Jemalloc does not understand the freelist so you can see it marks all the ‘memalign’ as lost memory when its just being held in the freelist Similar syntax to gperftools

Jemalloc ATS presentation: https://cwiki.apache.org/confluence/download/attachments/70255385/ATSSummit_jemalloc.pptx?version=1&modificationDate=1508884895000&api=v2 Traffic Control Migration Doc: http://traffic-control-cdn.readthedocs.io/en/latest/admin/traffic_ops/migration_from_20_to_22.html ATS Cachekey Documentation: https://docs.trafficserver.apache.org/en/latest/admin-guide/plugins/cachekey.en.html ATS v7 Upgrade Notes: https://cwiki.apache.org/confluence/display/TS/Upgrading+to+v7.0

Questions?