diff options
| author | Justin Pettit <jpettit@nicira.com> | 2014-04-28 14:25:06 -0700 |
|---|---|---|
| committer | Justin Pettit <jpettit@nicira.com> | 2014-07-25 12:05:20 -0700 |
| commit | 816f3bca9f5d23a0cf3b2ec922382f72b7b1b0d6 (patch) | |
| tree | d0c40aa9be6af9ab84fb2d0b93d8152787806861 /vswitchd/vswitch.xml | |
| parent | df0e5f55763289e37f90d1f2464423f07478f372 (diff) | |
| download | openvswitch-elephant.tar.gz | |
Initial check-in of kernel-based elephant flow detection.elephant
Areas to work on:
- Doesn't populate "elephant-flows" field.
- Doesn't properly handle tunnels.
- Doesn't have clean way to query elephant table.
- Double-check locking.
- Should use names instead of number for mechanism.
- When changing detection mechanism, should clear old table.
- Breaks unit tests
Diffstat (limited to 'vswitchd/vswitch.xml')
| -rw-r--r-- | vswitchd/vswitch.xml | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/vswitchd/vswitch.xml b/vswitchd/vswitch.xml index d47fc1a6e..18cf7db35 100644 --- a/vswitchd/vswitch.xml +++ b/vswitchd/vswitch.xml @@ -480,6 +480,75 @@ </column> </group> + <group title="Elephant Flow Detection"> + <p> + The conventional wisdom is that majority of flows in the + datacenter are short (mice), yet the majority of packets belong to + a few long-lived flows (elephants). Mice are often associated + with bursty, latency sensitive apps whereas elephants tend to be + large transfers in which throughput is far more important than + latency. + </p> + + <p> + Open vSwitch has the ability to distinguish elephant flows and + identify them through the database or mark them. Elephants are + identified by the combination of their duration and number of + bytes. + </p> + + <column name="other_config" key="elephant-mech"> + The mechanism used to detect elephants. It may be set to one of + the following: + <dl> + <dt><code>0</code></dt> + <dd>Disable elephant detection.</dd> + + <dt><code>1</code></dt> + <dd>Bytes. A flow is declared an elephant based on a + threshold of the total number of bytes sent. <ref + column="other_config" key="elephant-arg1"/> specifies the + number of bytes. <ref column="other_config" + key="elephant-arg2"/> specifies the number of seconds that the + flow must exist before being declared an elephant; set to + <code>0</code> for immediate detection when the byte threshold + is crossed.</dd> + + <dt><code>2</code></dt> + <dd>TSO. A flow is declared an elephant based on the segment + size. <ref column="other_config" key="elephant-arg1"/> + specifies the size of the segment. <ref column="other_config" + key="elephant-arg2"/> specifies the required number of + segments of the configured size that must be seen. + </dd> + </dl> + </column> + + <column name="other_config" key="elephant-arg1"> + First argument to elephant mechanism. The arguments are + described in <ref column="other_config" key="elephant-mech"/>. + </column> + + <column name="other_config" key="elephant-arg2"> + Second argument to elephant mechanism. The arguments are + described in <ref column="other_config" key="elephant-mech"/>. + </column> + + <column name="other_config" key="elephant-dscp"> + When an elephant flow is detected sets the DSCP value to use on + the wire for packets matching that flow. Not setting the key or + using a value of -1 will leave elephant flows unmarked. + </column> + + <column name="elephant_flows"> + <code>xxx Not currently supported xxx</code> + The <code>elephants</code> column contains key-value pairs that + report elephant flows. The key is a description of the flow, + and the value is size of the flow in bytes. These are updated + periodically (currently, every 5 seconds). + </column> + </group> + <group title="OpenFlow Configuration"> <column name="controller"> <p> |
