[ovs-discuss] ovs_dpdk: dpdk-socket-mem usage question
O Mahony, Billy
billy.o.mahony at intel.com
Tue Sep 19 13:07:01 UTC 2017
Typically I reserve between 512M and 1G on each Numa.
There is no formula I am aware of for how much memory is actually required.
Fundamentally this will be determined by the maximum number and size of packets in-flight at any given time. Which is determined by the ingress packet rate, processing time in ovs and the rate and frequency at which egress queues are drained.
The maximum memory requiremnt is determined by the number of rx and tx queues and how many descriptors each has. Also longer queues (more descriptors) will protect against packet loss up to a point. So QoS/throughput also comes in to play.
On that point dpdkvhostuser ports, as far as I know, current versions of qemu have a virtio queue length fixed at compile time so these queue lengths cannot be modified by OVS at all.
In short I don't think there is any way other than testing and tuning of the dpdk application (in this case OVS) and the particular use case while monitoring internal queue usage. This should give you an idea of an acceptable maximum length for the various queues and a good first guess as to the total amount of memory required.
> -----Original Message-----
> From: ovs-dev-bounces at openvswitch.org [mailto:ovs-dev-
> bounces at openvswitch.org] On Behalf Of ???
> Sent: Wednesday, September 13, 2017 6:35 AM
> To: ovs-dev at openvswitch.org; ovs-discuss at openvswitch.org
> Subject: [ovs-dev] ovs_dpdk: dpdk-socket-mem usage question
> Hi All,
> I read below doc, and have one question:
> Comma separated list of memory to pre-allocate from hugepages on specific
> OVS+DPDK can let user to specify the needed memory using dpdk-socket-
> mem. But the question is that how to know how much memory is needed. Is
> there some algorithm on how to calculate the memory?Thanks.
> Wang Zhike
> dev mailing list
> dev at openvswitch.org
More information about the discuss