Recommended configurations

This section contains information on recommended configurations that impact MidoNet performance.

 Overview of Performance-Impacting Configuration Options

DSCP field in flow state packets

The flow state packets that Agent hosts exchange for flow state replication are marked for QoS using the type of service IP field, which is configured by the control_packet_tos MidoNet configuration option.

It defaults defaults to the DSCP (differentiated services) field being set to Expedited Forwarding. These packets should be prioritized using classifiers (ingress qdiscs) at the hosts and also by configuring the underlay network hardware accordingly.

agent.midolman configuration section in mn-conf(1)

simulation_threads - Number of threads to dedicate to packet processing

output_channels - Number of output channels to use for flow creation and packet execution. Each channel gets a dedicated thread.

input_channel_threading - The MidoNet Agent creates dedicated Netlink channels to receive packets from each datapath port. This option tunes the threading strategy for reading on those channels: one_to_many will make the Agent use a single thread for all input channels. one_to_one will make the Agent use one thread for each input channel.

agent.datapath section in mn-conf(1)

global_incoming_burst_capacity - Incoming packets are rate-limited by a Hierarchical Token Bucket (HTB) that gets refilled as packets are processed and exit the system. This setting controls the size in packets of the root bucket in the HTB. It is the number of packets that the daemon will accept in a burst (at a higher rate that it can handle) before it starts dropping packets. It’s also the maximum number of in-flight packets in the system. Changes to this value affect latency at high-throughput rates.

tunnel_incoming_burst_capacity - Tunnel ports get their own bucket in the HTB, allowing them to accumulate burst capacity if they are not sending at the max. rate. This setting controls the size in packets of that bucket.

vm_incoming_burst_capacity - Each VM port gets its own bucket in the HTB, allowing the ports to accumulate burst capacity if they are not sending at the max. rate. This setting controls the size in packets of that bucket.

agent.loggers section in mn-conf(1)

root

level - Default process-wide log level. The DEBUG setting is meant for development and troubleshooting only because it severely affects performance and is highly verbose.

midolman-env.sh

MAX_HEAP_SIZE - Total amount of memory to allocate for the JVM.

HEAP_NEWSIZE - The total amount of the JVM memory that will be dedicated to the Eden garbage-collection generation. 75% of the total is a good ballpark figure, as the Agent uses most of the memory for short-lived objects during packet processing.

 Recommended Values

 

Table 29.1. Recommended Configuration Values

FileSectionOptionComputeGatewayL4 Gateway

logback.xml

root

level

INFO

INFO

INFO

midolman-env.sh

-

MAX_HEAP_SIZE

2048M

6144M

6144M

midolman-env.sh

-

HEAP_NEWSIZE

1536M

5120M

5120M

mn-conf(1)

[agent.midolman]

simulation_threads

1

4

16

mn-conf(1)

[agent.midolman]

output_channels

1

2

2

mn-conf(1)

[agent.midolman]

input_channel_threading

one_to_many

one_to_many

one_to_many

mn-conf(1)

[agent.datapath]

global_incoming_burst_capacity

128

256

128

mn-conf(1)

[agent.datapath]

tunnel_incoming_burst_capacity

64

128

64

mn-conf(1)

[agent.datapath]

vm_incoming_burst_capacity

16

32

16


Questions? Discuss on Mailing Lists or Chat.
Found an error? Report a bug.


loading table of contents...