Skip to content

Instantly share code, notes, and snippets.

@pcolazurdo
Last active January 25, 2021 09:14
Show Gist options
  • Save pcolazurdo/02c552dc59e54b0039655cc8476c3aba to your computer and use it in GitHub Desktop.
Save pcolazurdo/02c552dc59e54b0039655cc8476c3aba to your computer and use it in GitHub Desktop.
Deep Tracing - what happens in a container when you run ping 8.8.8.8
# Docker Analysis
docker run -it -d --rm python top
sudo nsenter -n -t $(pgrep top) perf trace --no-syscalls --event 'net:*' ping 8.8.8.8 -c2 >/tmp/output.txt
grep -oP "net:.+:dev=.+? " /tmp/output.txt
# Instance Analysis
sudo perf trace --no-syscalls --event 'net:*' ping 8.8.8.8 -c2 2>/tmp/output.txt
grep -oP "net:.+:dev=.+? " /tmp/output.txt
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
     0.000 net:net_dev_queue:dev=eth0 skbaddr=0xffff888131f3e100 len=42)
     0.008 net:net_dev_start_xmit:dev=eth0 queue_mapping=0 skbaddr=0xffff888131f3e100 vlan_tagged=0 vlan_proto=0x0000 vlan_tci=0x0000 protocol=0x0806 ip_summed=0 len=42 data_len=0 network_offset=14 transport_offset_valid=0 transport_offset=65533 tx_flags=0 gso_size=0 gso_segs=0 gso_type=0)
     0.013 net:netif_rx:dev=veth8a240a6 skbaddr=0xffff888131f3e100 len=28)
     0.016 net:net_dev_xmit:dev=eth0 skbaddr=0xffff888131f3e100 len=42 rc=0)
     0.020 net:netif_receive_skb:dev=veth8a240a6 skbaddr=0xffff888131f3e100 len=28)
     0.029 net:netif_receive_skb_entry:dev=docker0 napi_id=0x2 queue_mapping=0 skbaddr=0xffff888131f3e100 vlan_tagged=0 vlan_proto=0x0000 vlan_tci=0x0000 protocol=0x0806 ip_summed=0 hash=0x00000000 l4_hash=0 len=28 data_len=0 truesize=768 mac_header_valid=1 mac_header=-14 nr_frags=0 gso_size=0 gso_type=0)
     0.032 net:netif_receive_skb:64 bytes from 8.8.8.8: icmp_seq=1 ttl=52 time=1.71 ms
dev=docker0 skbaddr=0xffff888131f3e100 len=28)
     0.042 net:net_dev_queue:dev=docker0 skbaddr=0xffff888131f3ee00 len=42)
     0.045 net:net_dev_start_xmit:dev=docker0 queue_mapping=0 skbaddr=0xffff888131f3ee00 vlan_tagged=0 vlan_proto=0x0000 vlan_tci=0x0000 protocol=0x0806 ip_summed=0 len=42 data_len=0 network_offset=14 transport_offset_valid=0 transport_offset=65533 tx_flags=0 gso_size=0 gso_segs=0 gso_type=0)
     0.049 net:net_dev_queue:dev=veth8a240a6 skbaddr=0xffff888131f3ee00 len=42)
     0.052 net:net_dev_start_xmit:dev=veth8a240a6 queue_mapping=0 skbaddr=0xffff888131f3ee00 vlan_tagged=0 vlan_proto=0x0000 vlan_tci=0x0000 protocol=0x0806 ip_summed=0 len=42 data_len=0 network_offset=14 transport_offset_valid=0 transport_offset=65533 tx_flags=0 gso_size=0 gso_segs=0 gso_type=0)
     0.055 net:netif_rx:dev=eth0 skbaddr=0xffff888131f3ee00 len=28)
     0.057 net:net_dev_xmit:dev=veth8a240a6 skbaddr=0xffff888131f3ee00 len=42 rc=0)
     0.060 net:net_dev_xmit:dev=docker0 skbaddr=0xffff888131f3ee00 len=42 rc=0)
     0.062 net:netif_receive_skb:dev=eth0 skbaddr=0xffff888131f3ee00 len=28)
     0.066 net:net_dev_queue:dev=eth0 skbaddr=0xffff888131f3e000 len=98)
     0.068 net:net_dev_start_xmit:dev=eth0 queue_mapping=0 skbaddr=0xffff888131f3e000 vlan_tagged=0 vlan_proto=0x0000 vlan_tci=0x0000 protocol=0x0800 ip_summed=0 len=98 data_len=0 network_offset=14 transport_offset_valid=1 transport_offset=34 tx_flags=0 gso_size=0 gso_segs=0 gso_type=0)
     0.071 net:netif_rx:dev=veth8a240a6 skbaddr=0xffff888131f3e000 len=84)
     0.073 net:net_dev_xmit:dev=eth0 skbaddr=0xffff888131f3e000 len=98 rc=0)
     0.076 net:netif_receive_skb:dev=veth8a240a6 skbaddr=0xffff888131f3e000 len=84)
     0.090 net:netif_receive_skb_entry:dev=docker0 napi_id=0x2 queue_mapping=0 skbaddr=0xffff888131f3e000 vlan_tagged=0 vlan_proto=0x0000 vlan_tci=0x0000 protocol=0x0800 ip_summed=2 hash=0x00000000 l4_hash=0 len=84 data_len=0 truesize=768 mac_header_valid=1 mac_header=-14 nr_frags=0 gso_size=0 gso_type=0)
     0.092 net:netif_receive_skb:dev=docker0 skbaddr=0xffff888131f3e000 len=84)
     0.106 net:net_dev_queue:dev=eth0 skbaddr=0xffff888131f3e000 len=98)
     0.109 net:net_dev_start_xmit:dev=eth0 queue_mapping=1 skbaddr=0xffff888131f3e000 vlan_tagged=0 vlan_proto=0x0000 vlan_tci=0x0000 protocol=0x0800 ip_summed=0 len=98 data_len=0 network_offset=14 transport_offset_valid=1 transport_offset=34 tx_flags=0 gso_size=0 gso_segs=0 gso_type=0)
     0.112 net:net_dev_xmit:dev=eth0 skbaddr=0xffff888131f3e000 len=98 rc=0)
  1001.962 net:net_dev_queue:dev=eth0 skbaddr=0xffff888134590e00 len=98)
  1002.043 net:net_dev_start_xmit:dev=eth0 queue_mapping=0 skbaddr=0xffff888134590e00 vlan_tagged=0 vlan_proto=0x0000 vlan_tci=0x0000 protocol=0x0800 ip_summed=0 len=98 data_len=0 network_offset=14 transport_offset_valid=1 transport_offset=34 tx_flags=0 gso_size=0 gso_segs=0 gso_type=0)
  1002.048 net:netif_rx:dev=veth8a240a6 skbaddr=0xffff888134590e00 len=84)
  1002.051 net:net_dev_xmit:dev=eth0 skbaddr=0xffff888134590e00 len=98 rc=0)
  1002.056 net:netif_receive_skb:dev=veth8a240a6 skbaddr=0xffff888134590e00 len=84)
  1002.070 net:netif_receive_skb_entry:dev=docker0 napi_id=0x2 queue_mapping=0 skbaddr=0xffff888134590e00 vlan_tagged=0 vlan_proto=0x0000 vlan_tci=0x0000 protocol=0x0800 ip_summed=2 hash=0x00000000 l4_hash=0 len=84 data_len=0 truesize=768 mac_header_valid=1 mac_header=-14 nr_frags=0 gso_size=0 gso_type=0)
  1002.072 net:netif_receive_skb:dev=docker0 skbaddr=0xffff888134590e00 len=84)
  1002.088 net:net_dev_queue:dev=eth0 skbaddr=0xffff888134590e00 len=98)
  1002.093 net:net_dev_start_xmit:dev=eth0 queue_mapping=1 skbaddr=0xffff888134590e00 vlan_tagged=0 vlan_proto=0x0000 vlan_tci=0x0000 protocol=0x0800 ip_summed=0 len=98 data_len=0 network_offset=14 transport_offset_valid=1 transport_offset=34 tx_flags=0 gso_size=0 gso_segs=0 gso_type=0)
  1002.098 net:net_dev_xmit:dev=eth0 skbaddr=0xffff888134590e00 len=98 rc=0)
64 bytes from 8.8.8.8: icmp_seq=2 ttl=52 time=1.46 ms

--- 8.8.8.8 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 1.465/1.587/1.710/0.128 ms

Results

net:net_dev_queue:dev=eth0
net:net_dev_start_xmit:dev=eth0
net:netif_rx:dev=veth8a240a6
net:net_dev_xmit:dev=eth0
net:netif_receive_skb:dev=veth8a240a6
net:netif_receive_skb_entry:dev=docker0
net:netif_receive_skb:dev=docker0
net:net_dev_queue:dev=eth0
net:net_dev_start_xmit:dev=eth0
net:net_dev_xmit:dev=eth0
net:net_dev_queue:dev=eth0
net:net_dev_start_xmit:dev=eth0
net:netif_rx:dev=veth8a240a6
net:net_dev_xmit:dev=eth0
net:netif_receive_skb:dev=veth8a240a6
net:netif_receive_skb_entry:dev=docker0
net:netif_receive_skb:dev=docker0
net:net_dev_queue:dev=eth0
net:net_dev_start_xmit:dev=eth0
net:net_dev_xmit:dev=eth0
net:net_dev_queue:dev=eth0
net:net_dev_start_xmit:dev=eth0
net:net_dev_xmit:dev=eth0
net:net_dev_queue:dev=eth0
net:net_dev_start_xmit:dev=eth0
net:net_dev_xmit:dev=eth0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment