Hi Dave, Thanks for your inputs..
I just experimenting based on your inputs.. when i push < 7Gbps i don't see
any packet losses on dpdk side and the vector/call is still ~1.1. As you
mentioned <2.0,means has lot of room left..
then i just increased the traffic to achieve bit rate of about 8gbps to 9
gbps and started seeing dpdk packet drops. ( "rx missed" in show hardware
as well as "drops" in show interfaces.
can you tel me, what i have missed here and why dpdk is dropping , even
though system has lot of cpu space?
Also pls guide me to understand why vectors/call is not increasing ?
here is the full o/p
*root@ubuntu:~# vppctl sh ha*
Name Idx Link Hardware
TenGigabitEthernet3/0/0 5 up TenGigabitEthernet3/0/0
Ethernet address 14:02:ec:73:ea:d0
Intel X710/XL710 Family
carrier up full duplex speed 10000 mtu 9216
tx frames ok 159
tx bytes ok 9540
rx frames ok 3429247504
rx bytes ok 4501655515148
rx missed 22942665
rx multicast frames ok 193
extended stats:
rx good packets 3429247703
tx good packets 159
rx good bytes 4501655766820
tx good bytes 9540
rx unicast packets 3452190013
rx multicast packets 193
rx broadcast packets 3
rx unknown protocol packets 3452190211
tx unicast packets 159
rx size 64 packets 161
rx size 128 to 255 packets 193
rx size 1024 to 1522 packets 3452189888
tx size 64 packets 159
TenGigabitEthernet3/0/1 6 up TenGigabitEthernet3/0/1
Ethernet address 14:02:ec:73:ea:d8
Intel X710/XL710 Family
carrier up full duplex speed 10000 mtu 9216
tx frames ok 3389859164
tx bytes ok 4298341418744
rx frames ok 194
rx bytes ok 36344
rx multicast frames ok 193
extended stats:
rx good packets 194
tx good packets 3389859164
rx good bytes 36344
tx good bytes 4298341418744
rx unicast packets 1
rx multicast packets 193
rx unknown protocol packets 194
tx unicast packets 3389859163
tx broadcast packets 1
rx size 64 packets 1
rx size 128 to 255 packets 193
tx size 64 packets 1
tx size 1024 to 1522 packets 3389859163
local0 0 down local0
local
pg/stream-0 1 down pg/stream-0
Packet generator
pg/stream-1 2 down pg/stream-1
Packet generator
pg/stream-2 3 down pg/stream-2
Packet generator
pg/stream-3 4 down pg/stream-3
Packet generator
root@ubuntu:~# vppctl sh int
Name Idx State Counter
Count
TenGigabitEthernet3/0/0 5 up rx packets
3430406350
rx bytes
4473249467216
tx
packets 159
tx
bytes 9540
drops 36931507
punts 193
ip4
3430405997
rx-miss 22942665
TenGigabitEthernet3/0/1 6 up rx
packets 194
rx
bytes 36344
tx packets
3393474491
tx bytes
4302925653362
drops 1
punts 193
tx-error 2460933
local0 0 down
pg/stream-0 1 down
pg/stream-1 2 down
pg/stream-2 3 down
pg/stream-3 4 down
*root@ubuntu:~# vppctl sh run*
Time 5785.1, average vectors/node 1.14, last 128 main loops 0.00 per node
0.00
vector rates in 5.9342e5, out 5.8661e5, drop 6.3839e3, punt 6.6723e-2
Name State
Calls Vectors Suspends Clocks Vectors/Call
TenGigabitEthernet3/0/0-output active 159
159 0 4.92e2 1.00
TenGigabitEthernet3/0/0-tx active
159 159 0 1.43e3 1.00
TenGigabitEthernet3/0/1-output active 2984620677
3396056360 0 1.09e2 1.14
TenGigabitEthernet3/0/1-tx active 2984620677
3393593938 0 1.70e2 1.14
admin-up-down-process event wait
0 0 1 1.94e3 0.00
api-rx-from-ring active
0 0 61782 2.34e5 0.00
arp-input active
160 160 0 1.53e4 1.00
cdp-process any wait
0 0 2053 1.18e3 0.00
cnat-db-scanner any wait
0 0 1 2.46e3 0.00
dhcp-client-process any wait
0 0 58 4.27e3 0.00
dpdk-input polling 13176087868
3432988412 0 1.11e3 .26
dpdk-process any wait
0 0 1913 5.30e7 0.00
error-drop active 35376992
36931508 0 1.17e2 1.04
error-punt active
386 386 0 3.86e3 1.00
ethernet-input active 546
546 0 3.69e3 1.00
flow-report-process any wait 0
0 1 3.23e3 0.00
gmon-process time wait 0
0 1157 1.77e6 0.00
interface-output active 159
159 0 1.57e3 1.00
ip4-arp active
1 1 0 2.83e4 1.00
ip4-input-no-checksum active 3019924799
3432987866 0 2.04e2 1.14
ip4-local active 3019924799
3432987866 0 1.42e2 1.14
ip4-lookup active 6004545476
6829044226 0 1.73e2 1.14
ip4-rewrite-transit active 2984620676
3396056359 0 1.19e2 1.14
ip4-udp-lookup active 3019924799
3432987866 0 1.18e2 1.14
ip6-icmp-neighbor-discovery-ev any wait 0
0 5784 1.67e3 0.00
mynode_lookup active 3019924799
3432987866 0 4.06e2 1.14
mynode_input active 3019924799
3432987866 0 1.20e2 1.14
startup-config-process done 1
0 1 1.24e4 0.00
unix-epoll-input polling 5253384335
0 0 3.92e2 0.00
vhost-user-process any wait 0
0 1 3.29e4 0.00
vpe-link-state-process event wait 0
0 3 1.57e4 0.00
vpe-oam-process any wait 0
0 2836 1.75e3 0.00
vpe-route-resolver-process any wait 0
0 58 5.19e3 0.00
*root@ubuntu:~# vppctl sh err*
Count Node Reason
-896881608 mynode_lookup MPGU packet processed
36931506 mynode_lookup MPGU session does not
exists
-859950102 mpgu_gtpu_input GTPU packet processed
1 ip4-arp ARP requests sent
387 ethernet-input unknown ethernet type
159 arp-input ARP replies sent
1 arp-input ARP replies received
2464079 TenGigabitEthernet3/0/1-tx Tx packet drops (dpdk tx
failure)
root@ubuntu:~#
Thanks
Sakthivel S
On Tue, Jul 25, 2017 at 8:26 PM, Dave Barach (dbarach) <[email protected]>
wrote:
> A vector size less than 2 indicates a *ton* of headroom. You shouldn’t
> drop packets - except due to I/O bottlenecks - at a vector size
> significantly less than 150.
>
>
>
> Rough, off-the cuff guesses [for production images, on “reasonable”
> hardware]: vector size < 2 should be good for O(100kpps). Vector size 150
> should be good for O(5mpps).
>
>
>
> Thanks… Dave
>
>
>
> P.S. The clocks/pkt figures below look like they may be from a
> TAG=vpp_debug image... Or not. It’s hard to tell at 20 KPPS...
>
>
>
> *From:* SAKTHIVEL ANAND S [mailto:[email protected]]
> *Sent:* Tuesday, July 25, 2017 9:20 AM
> *To:* Dave Barach (dbarach) <[email protected]>
> *Cc:* chenxndsc <[email protected]>; vpp-dev <[email protected]>
>
> *Subject:* Re: [vpp-dev] 回复: vpp cpu usage utility
>
>
>
> Thanks Dave..
>
> I am on vpp16.06 and after adding my nodes I get the following in “vppctl
> show r”.
>
> One thing I observe (as expected) is when I push more traffic to see
> higher "Vectors/Call" the Clocks value of nodes reduces.
>
> Now question is neither clocks or Vectors/Call indicate that still some
> processing power is left.
>
>
>
> By the way, what is prevailing vector size and per-node vector size in the
> below output?
>
> < last 128 main loops 0.00 per node 0.00> What are these values and why
> these are zeros?
>
>
>
> Thanks in advance.
>
>
>
> root@ubuntu:~# vppctl show run
> Time 1678.2, average vectors/node 1.45, last 128 main loops 0.00 per node
> 0.00
> vector rates in 1.9800e4, out 1.9337e4, drop 4.6368e2, punt 6.9123e-2
> Name State
> Calls Vectors Suspends Clocks Vectors/Call
> GigabitEthernet13/0/0-output active 117
> 117 0 2.71e3 1.00
> GigabitEthernet13/0/0-tx active 117
> 117 0 1.94e4 1.00
> GigabitEthernet1b/0/0-output active 22450924
> 32449638 0 1.26e3 1.45
> GigabitEthernet1b/0/0-tx active 22450924
> 32449638 0 3.64e3 1.45
> arp-input active
> 21064 22591 0 2.61e4 1.07
> dpdk-input polling 388349175
> 33227874 0 2.54e4 .09
> dpdk-process any wait
> 0 0 560 2.09e5 0.00
> error-drop active
> 709544 778129 0 2.25e3 1.09
> error-punt active
> 116 116 0 1.16e4 1.00
> ethernet-input active
> 27238 28772 0 5.35e3 1.06
> interface-output active
> 88 88 0 4.86e3 1.00
> ip4-arp active
> 15 16 0 3.63e4 1.07
> ip4-classify active
> 1600 1603 0 1.04e4 1.00
> ip4-input-no-checksum active 22854016
> 33199102 0 1.79e3 1.45
> ip4-local active
> 22841621 33173678 0 1.29e3 1.45
> ip4-lookup active 45295061
> 65626189 0 1.51e3 1.45
> ip4-lookup-multicast active 10723
> 22451 0 1.95e3 2.09
> ip4-miss active 12074
> 23802 0 1.37e3 1.97
> ip4-rewrite-transit active 22450827
> 32449541 0 1.47e3 1.45
> ip4-udp-lookup active 22841621
> 33173678 0 1.29e3 1.45
> llc-input active
> 3393 3394 0 4.01e3 1.00
> mynode_lookup active 22841621
> 33173678 0 1.89e3 1.45
> mynode_input active 22841621
> 33173678 0 1.49e3 1.45
> unix-epoll-input polling
> 365372525 0 0 3.36e3 0.00
>
> --------------------------
>
> -Sakthivel S OM
>
>
>
> On Mon, Jul 17, 2017 at 11:25 PM, Dave Barach (dbarach) <[email protected]>
> wrote:
>
> The “show runtime” command displays the prevailing vector size, and
> per-node vector sizes.
>
>
>
> Those stats are reasonably equivalent to a vector engine load average.
>
>
>
> Thanks… Dave
>
>
>
> *From:* [email protected] [mailto:[email protected]] *On
> Behalf Of *SAKTHIVEL ANAND S
> *Sent:* Monday, July 17, 2017 12:57 PM
> *To:* chenxndsc <[email protected]>; vpp-dev <[email protected]>
> *Subject:* Re: [vpp-dev] 回复: vpp cpu usage utility
>
>
>
> Thanks chenxndsc for the response.
>
>
>
> Yes, the polling shall take the 100% CPU. My question is related to know
> how much more load a core can take more.
>
> For e.g. Lets say along with normal dpdk polling, if a core processeses
> few sessions, how much CPU it takes in processing sessions apart from
> polling. This is required to know how many sessions a can handle and hence
> how many cores are needed to handle desired number of sessions?
>
>
>
> -Sakthivel Ss
>
>
>
> On 17-Jul-2017 21:08, "chenxndsc" <[email protected]> wrote:
>
> hello ANAND
> 100% is the real cpu utilization, because VPP use POLL mode, if you know
> how DPDK works, you gotta to know it better.
>
> 来自我的华为手机
>
>
>
> -------- 原始邮件 --------
> 主题:[vpp-dev] vpp cpu usage utility
> 发件人:SAKTHIVEL ANAND S
> 收件人:vpp-dev
> 抄送:
>
> Hi
>
> I am working on an use case where i just want to measure CPU usage of vpp
> task.
>
> Linux "TOP" command shows 100% cpu always (even though there is no active
> processing in it,since it is running on closed/tight loop).
>
> Is there any way to measure "real/actual" cpu usage of VPP task?
>
> My setup: Ubuntu 16.04 with VPP16.06
>
>
> --
>
> Thanks in advance
> Sakthivel S OM
>
>
>
>
> --
>
> Thanks
> Sakthivel S OM
>
--
Thanks
Sakthivel S OM
_______________________________________________
vpp-dev mailing list
[email protected]
https://lists.fd.io/mailman/listinfo/vpp-dev