“ovs-dpctl show”命令是什么意思?

What does the ‘ovs-dpctl show’ command means?

当我执行'ovs-dpctl show'命令时,我得到:

$ ovs-dpctl show
system@ovs-system:
    lookups: hit:37994604 missed:218759 lost:0
    flows: 5
    masks: hit:39862430 total:5 hit/pkt:1.04
    port 0: ovs-system (internal)
    port 1: vbr0 (internal)
    port 2: gre_sys (gre)
    port 3: net2

我检索了一些解释:

[-s | --statistics] show [dp...]
              Prints a summary of configured datapaths, including their  data‐
              path  numbers  and  a  list of ports connected to each datapath.
              (The local port is identified as port 0.)  If -s or --statistics
              is specified, then packet and byte counters are also printed for
              each port.

              The datapath numbers consists of flow stats and mega  flow  mask
              stats.

              The  "lookups"  row  displays three stats related to flow lookup
              triggered by processing incoming packets in the datapath.  "hit"
              displays number of packets matches existing flows. "missed" dis‐
              plays the number of packets not matching any existing  flow  and
              require  user space processing.  "lost" displays number of pack‐
              ets destined for user space process but subsequently dropped be‐
              fore  reaching  userspace. The sum of "hit" and "miss" equals to
              the total number of packets datapath processed.

              The "flows" row displays the number of flows in datapath.

              The "masks" row displays the mega flow mask stats. This  row  is
              omitted  for datapath not implementing mega flow. "hit" displays
              the total number of masks visited for matching incoming packets.
              "total" displays number of masks in the datapath. "hit/pkt" dis‐
              plays the average number of masks visited per packet; the  ratio
              between "hit" and total number of packets processed by the data‐
              path.

              If one or more datapaths  are  specified,  information  on  only
              those  datapaths  are  displayed.  Otherwise, ovs-dpctl displays
              information about all configured datapaths.

我的问题是:

  1. 传入数据包的总数是否等于 (lookups.hit + lookups.missed)?
  2. 如果传入数据包总数等于 (lookups.hit + lookups.missed),为什么masks.hit的值是:39862430 大于 (lookups.hit:37994604 + lookups.missed:218759)?
  3. 为什么masks.hit/pkt比率大于1?什么是合理的 什么区间的值?
  1. Is the total number of incoming packets equal to (lookups.hit + lookups.missed)?

是的。 (加上 lookups.lost 除了我看到这对你来说是零。)

  1. If the total number of incoming packets is equal to (lookups.hit + lookups.missed), why is the value of masks.hit:39862430 greater than (lookups.hit:37994604 + lookups.missed:218759)?

masks.hit 是执行的散列 table 查找的数量 处理所有已处理的数据包。给定的数据包可能 最多需要 masks.total 次查找。

  1. Why is the masks.hit/pkt ratio greater than 1? What is the reasonable value in what interval?

比率不能小于 1.00,因为这意味着 处理数据包甚至不需要一次查找。的比例 1.04 非常好,因为这意味着大多数数据包都经过处理 只有一次查找。比率越高越差。

作者:Ben Pfaff (blp@ovn.org)