Linux Foundation – End User Summit May 1, 2012 Precision ... · Time From PTP Master on network...

Preview:

Citation preview

© 2009 IBM Corporation

Precision Time Protocol, andSub-Microsecond SynchronizationMike KravetzIBM Linux Technology Centerkravetz@us.ibm.com

Linux Foundation – End User Summit May 1, 2012

© 2012 IBM Corporation

Agenda

● Background/History leading to Precision Time Protocol

● Results of Experimentation

● Building out a Complete PTP Solution

© 2012 IBM Corporation

IBM LTC Low Latency Team Involvement With PTP

Customer Queries

RealTime Linux Suitable for Financial Environments?

High Frequency Trading?

IBM LTC RealTime Team

Real requirement is Low Latency, rather than RealTime

Customer Queries

Time Synchronization in Financial Environments?

IBM Low Latency Team

Exploration of Precision Time Protocol

© 2012 IBM Corporation

High Frequency Trading Environment

Market Feeds

Network Switch

Feed Handlers

Algorithm Engines

Trade Management

© 2012 IBM Corporation

Time Synchronization

Current Methods

Synced External Clocks● GPS or Similar time source attached to each system● New Connection Infrastructure● New Management Issues● Expense

Network Time Protocol – NTP● Linux/Unix Standard

● Works “everywhere”● Designed for WANs● Sync Accuracy may not be good enough for Low Lat environments

Emerging Method

Precision Time Protocol - PTP● Uses existing Network Infrastructure● Designed for LANs● Targeting sub-microsecond accuracy

© 2012 IBM Corporation

GPS for Time Synchronization (Receiver per-System)

© 2012 IBM Corporation

GPS for Time Synchronization (Distribute Signal)

© 2012 IBM Corporation

Network Time Protocol

© 2012 IBM Corporation

USER SPACE

KERNEL

HARDWARE

NTPD

SYSTEMCLOCK

ADAPTER

NETWORK

SYSTEM CALL API

NetworkStack

Time From Network Time Sources

Network Time Protocol – The Original Standard

NTP

● Hierarchical Time Distribution amongst hosts● Intended for synchronization of hosts on WAN● Designed to sync clocks within a few milliseconds● Poll interval 64 sec default 8 sec min

● (a lifetime at fast LAN timeframes)● User space daemon slews system clock

● (slow operation, e.g. adjtime())● Network latencies, scheduling latencies, clock drift, kernel preemption, all introduce inaccuracies

Jitter Source

adjtime()

NTP CLIENT

gettime()

© 2012 IBM Corporation

USER SPACE

KERNEL

HARDWARE

NTPD

SYSTEMCLOCK

ADAPTER

NETWORK

SYSTEM CALL API

Network Stack

Time From Network Time Sources

Network Time Protocol – The Current Standard

Current Implementation

● SO_TIMESTAMP socket option● Time noted in Network Stack (or lower)

Jitter Source

adjtimex()

NTP CLIENT

timestampfrom packet

© 2012 IBM Corporation

Measuring Clock Deltas – A Example of Perfect

Environment

● Protocol Used● Load

Stats

● Beginning 15 minutes after start● Range : 0 to 0 nanoseconds● Mean : 0.0● StdDev: 0.0

© 2012 IBM Corporation

Network Time Protocol – LAN (minimal load)

Environment

● Simple 10Gb LAN for NTP traffic● Poll interval 8 sec● Minimal CPU and Network Activity

Stats

● Beginning 15 minutes after start● Range : -9 to 11 microseconds● Mean : 0.154792● StdDev: 3.352142

© 2012 IBM Corporation

Adding CPU Load

Kernel Build

while true; domake cleanmake -j 32

done

© 2012 IBM Corporation

Network Time Protocol – LAN (CPU load)

Environment

● Simple 10Gb LAN for NTP traffic● Poll interval 8 sec● Heavy CPU Activity, Minimal Network Activity

Stats

● Beginning 15 minutes after start● Range : -108 to 21 microseconds● Mean : 0.335034● StdDev: 6.050032

© 2012 IBM Corporation

Precision Time Protocol (PTP)

© 2012 IBM Corporation

Precision Time Protocol (PTP)

Assumptions

● Master to Slave Transit time = equals = Slave to Master Transit Time● Delays (Transit times) Remain Constant● Master and Slave can accurately compute time to send or receive messages.

© 2012 IBM Corporation

USERSPACE

KERNEL

HARDWARE

PTPD

ADAPTER

NETWORK

SYSTEM CALL API

NetworkStack

Time From PTP Master on network

Precision Time Protocol (PTP) – SW Only Implementation

PTP – SW Only

● Intended for host synchronization in LANs● Hierarchical Time Distribution● Slaves sync to Master● Master syncs to GPS or similar time source● Query for time sync default is 1 sec● Uses timestamps on packets to compute latency information

Sources of jitter similar to NTP● Packets timestamped in Network stack● Socket option SO_TIMESTAMP

Requires● Linux kernel 2.6.30 or later● OpenSource PTP daemon

Jitter Source

SYSTEMCLOCK

PTP CLIENT

© 2012 IBM Corporation

Precision Time Protocol SW Only – LAN (Minimal Load)

Environment

●Simple 10Gb LAN for PTP traffic● Sync interval 1 sec● Minimal CPU and Network Activity

Stats

● Beginning 15 minutes after start● Range : -783 to 807 nanoseconds● Mean : 18.975601 ● StdDev: 248.732998

© 2012 IBM Corporation

Precision Time Protocol SW Only – LAN (CPU Load)

Environment

●Simple 10Gb LAN for PTP traffic● Sync Interval 1 sec● Heavy CPU Activity, Minimal Network Activity

Stats

● Beginning 15 minutes after start● Range : -45917 to 199103 ns● Mean : -48.299971● StdDev: 5793.242824

© 2012 IBM Corporation

Adding Network Load

0

1000

2000

3000

4000

5000

6000

7000

8000

SCP and NETPERF

while true; do netperf -l 1 -H 10.0.0.11 # 7.2Gb (1 Second) scp -l 102400 to.11 10.0.0.11:work # 100Mb (10 Seconds)done

© 2012 IBM Corporation

Precision Time Protocol SW Only – LAN (CPU & Net Load)

Environment

●Simple 10Gb LAN for PTP traffic● Sync interval 1 sec● Heavy CPU and Network Activity

Stats

● Range : -115106 to 578730 ns● Mean : -0.637253● StdDev: 13670.112245● Delay Updates Aborted : 13507

© 2012 IBM Corporation

USER SPACE

KERNEL

HARDWARE

PTPD

ADAPTER

NETWORK

SYSTEM CALL API

Precision Time Protocol (PTP) - Adapter TimeStamp Support

PTP - Adapter Support

● Network adapter timestamps packets● Adapter has separate clock

● Closer to events, less jitter● Socket SO_TIMESTAMP

● Hardware option● microsecond or better synchronization

Requires● Linux kernel 2.6.30 or later● Adapter with PTP support● PTP daemon modified for HW timestamping

Jitter Source

Time From Master Sources

HW packet timestamp

adjtimex()

NetworkStack

SYSTEMCLOCK

© 2012 IBM Corporation

New Problem – Multiple Clocks on Same System

Clock on Adapter

Provides TimeStamp for:● Incoming Packets● Outgoing Packets

System Clock

Provided view of Time to:● Kernel● Applications

© 2012 IBM Corporation

USER SPACE

KERNEL

HARDWARE

PTPD

ADAPTER (Clock)

SYSTEM CALL API

Multiple PTP Domains

Jitter Source

Time From Master Sources

adjtimex()new API

NetworkStack

SYSTEMCLOCK

PTP Adapter Clock Domain PTP System Clock Domain

© 2012 IBM Corporation

USER SPACE

KERNEL

HARDWARE

PTPD

ADAPTER

NETWORK

Linux PTP Clock Support - Future Direction

PTP – Linux PTP Clock support

● Framework for Accessing PTP Clocks● User API for PTP clock access● PTP daemon access PTP Clocks in standard way● No need for special daemons● Applications can use PTP clock

Requires● Current Linux kernel 3.0.+● Driver for PTP clock● PTP daemon modified for PTP Clock

Time From Master Sources

HW packet timestamp

NetworkStack

SYSTEM CLOCK

ANYAPPLICATION

PTP Clock API

© 2012 IBM Corporation

PTP Adapter Clock – LAN (Minimal Load)

Environment

● Adapter Clock deltas from Master● Simple 10Gb LAN for NTP traffic● Sync interval 1 sec● Minimal CPU and Network Activity

Stats

●Beginning 15 minutes after start● Range : -59 to 60 nanoseconds● Mean : 0.061463● StdDev: 16.908153

© 2012 IBM Corporation

PTP System Clock (from Adapter) – LAN (Minimal Load)

Environment

● System Clock deltas from Adapter● Simple 10Gb LAN for NTP traffic● Sync interval 1 sec● Minimal CPU and Network Activity

Stats

● Beginning 15 minutes after start● Range : -438 to 336 nanoseconds● Mean : 9.825280● StdDev: 89.881447

© 2012 IBM Corporation

PTP System Clock (from Master) – LAN (Minimal Load)

Environment

● System Clock deltas from Master● Simple 10Gb LAN for NTP traffic● Sync interval 1 sec● Minimal CPU and Network Activity

Stats

● Beginning 15 minutes after start● Range : -431 to 350 nanoseconds● Mean : 9.600230● StdDev: 89.695492

© 2012 IBM Corporation

PTP Adapter Clock – LAN (CPU Load)

Environment

● Adapter Clock deltas from Master● Simple 10Gb LAN for NTP traffic● Sync interval 1 sec● Heavy CPU Activity, Min Net Activity

Stats

● Beginning 15 minutes after start● Range : -58 to 63 nanoseconds● Mean : -0.052723● StdDev: 17.305986

© 2012 IBM Corporation

PTP System Clock (from Adapter) – LAN (CPU Load)

Environment

● System Clock deltas from Adapter● Simple 10Gb LAN for NTP traffic● Sync interval 1 sec● Heavy CPU Activity, Min Net Activity

Stats

● Beginning 15 minutes after start● Range : -391 to 211 nanoseconds● Mean : 3.450447● StdDev: 55.813730

© 2012 IBM Corporation

PTP System Clock (from Master) – LAN (CPU Load)

Environment

● System Clock deltas from Master● Simple 10Gb LAN for NTP traffic● Sync interval 1 sec● Heavy CPU Activity, Min Net Activity

Stats

● Beginning 15 minutes after start● Range : -395 to 232 nanoseconds● Mean : 3.259316● StdDev: 57.199593

© 2012 IBM Corporation

PTP Adapter Clock – LAN (CPU & Net Load)

Environment

● Adapter Clock deltas from Master● Simple 10Gb LAN for NTP traffic● Sync interval 1 sec● Heavy CPU Activity, Heavy Net Activity

Stats

● Beginning 15 minutes after start● Range : -64 to 80 nanoseconds● Mean : -0.031430● StdDev: 17.836507

© 2012 IBM Corporation

PTP System Clock (from Adapter) – LAN (CPU & NET Load)

Environment

● System Clock deltas from Adapter● Simple 10Gb LAN for NTP traffic● Sync interval 1 sec● Heavy CPU Activity, Heavy Net Activity

Stats

● Beginning 15 minutes after start● Range : -308 to 169 nanoseconds● Mean : 0.631878● StdDev: 39.611248

© 2012 IBM Corporation

PTP System Clock (from Master) – LAN (CPU & NET Load)

Environment

● System Clock deltas from Master● Simple 10Gb LAN for NTP traffic● Sync interval 1 sec● Heavy CPU Activity, Heavy Net Activity

Stats

● Beginning 15 minutes after start● Range : -326 to 178 nanoseconds● Merge : 0.586328● StdDev: 42.471485

© 2012 IBM Corporation

Same Test – Bad Network Cable

Environment

● Bad Network Cable● Do not try at home :)

Stats

● Range -7,320,339 to 82,032,290 ns● Packets delayed up to 5,444,813 ns

© 2012 IBM Corporation

PTPD SLAVE

ADAPTER

PTP – Transparent Clock/Switch Support Addressing Jitter in the LAN

SWITCH

Transparent

Transit Time Correction

ADAPTER

PTP – Transparent Clock

● Accounts for Switch delays● Delay time used by PTP algorithms

Requires● Switch with PTP Transparent Clock Support

SYSTEMCLOCK

Jitter Source

PTP MASTER

© 2012 IBM Corporation

PTP – Boundary Clock/Switch Support. Bridging Multiple LANs

SWITCH(Transparent)

PTP MASTER

PTP – Boundary Clock

● Multiple PTP ports● Slave on one LAN/ port● Master on one LAN/PTP port● Ideal topology minimizes Boundary Clock Traversals

Requires● Switch with PTP Boundary Clock Support

PTP SLAVE

PTP SLAVE

PTP SLAVE

SWITCH(Transparent)

PTP SLAVE

PTP SLAVE

PTP SLAVE

SWITCH(Boundary)

Slave Master

© 2012 IBM Corporation

Acknowledgments

■ Solarflare Corporation– PSFN5322F 10GbE Adapters with PTP Support

■ Symmetricom Corporation– SyncServer S350 Time Server with PTP support

© 2012 IBM Corporation

Legal Statement

■ This work represents the view of the author and does not necessarily represent the view of IBM.

■ IBM is a registered trademark of International Business Machines Corporation in the United States and/or other countries.

■ UNIX is a registered trademark of The Open Group in the United States and other countries

■ Linux is a registered trademark of Linus Torvalds.

■ Other company, product, and service names may be trademarks or service marks of others.

Recommended