Manual Chapter : 3-DNS Admin Guide, v4.6.2: Working with Quality of Service

Applies To:

Show Versions Show Versions

3-DNS Controller versions 1.x - 4.x

  • 4.6.4, 4.6.3, 4.6.2
Manual Chapter

8

Working with Quality of Service



Overview of Quality of Service

The Quality of Service mode is a dynamic load balancing mode that includes a configurable combination of the Round Trip Time (RTT), Completion Rate, Packet Rate, Topology, Hops, Link Capacity, VS Capacity, and Kilobytes/Second (KBPS) modes. The Quality of Service mode is based on an equation that takes each of these performance factors into account. When the 3-DNS Controller selects a virtual server, it chooses the server with the best overall score.

The Quality of Service mode has default settings that make it easy to use: simply specify Quality of Service as your preferred load balancing mode. There is no need to configure Quality of Service, but if you want to change the settings, you can customize the equation to put more or less weight on each individual factor. The following topics explain how to use and adjust the various settings.


Understanding QOS coefficients

Table 8.1 lists each Quality of Service (QOS) coefficient, its scale, a likely upper limit for each, and whether a higher or lower value is more efficient.

Coefficient

How measured

Default value

Example
upper limit

Higher or lower?

Packet rate

Packets per second

1

700

Lower

Round trip time

Microseconds

50

2,000,000

Lower

Completion rate

Percentage of successfully transferred packets (0-100%)

5

100%

Higher

Topology

Score that defines network proximity by comparing server and LDNS IP addresses (0-232)

0

100

Higher

Hops

Number of intermediate systems transitions (hops)

0

64

Lower

Link Capacity

Bandwidth usage

30

2,000,000

Higher

VS capacity

Number of nodes up

0

20

Higher

Kilobytes/second

Kilobytes per second throughput

3

15000

Lower

If you change the default QOS coefficients, keep the following issues in mind.

  • Scale
    The raw metrics for each coefficient are not on the same scale. For example, completion rate is measured in percentages, while the packet rate is measured in packets per second.
  • Normalization
    The 3-DNS Controller normalizes the raw metrics to values in the range of 0 to10. As the QOS value is calculated, a high measurement for completion rate is good, because a high percentage of completed connections are being made, but a high value for packet rate is not desirable because the packet rate load balancing mode attempts to find a virtual server that is not overly taxed at the moment.
  • Emphasis
    You can adjust coefficients to emphasize one normalized metric over another. For example, by changing the coefficients to the values shown in Figure 8.1 , you are putting the most emphasis on completion rate.

    Figure 8.1 QOS coefficients emphasizing completion rate


    globals {
    qos_coeff_rtt 50
    qos_coeff_completion_rate 100
    qos_coeff_packet_rate 1
    qos_coeff_topology 0
    qos_coeff_hops 0
    qos_coeff_lcs
    qos_coeff_vs_capacity 0
    qos_coeff_kbps 0
    }

    In the preceding example, if the completion rates for two virtual servers are close, the virtual server with the best packet rate is chosen. If both the completion rates and the packet rates are close, the round trip time (RTT) breaks the tie. In this example, the metrics for Topology, Hops, Link Capacity, VS Capacity, and Kilobytes/Second modes are not used in determining how to distribute connections.


Customizing the QOS equation

You can customize the QOS equation globally, meaning that the equation applies to all wide IPs that use the Quality of Service mode. You can also customize individual wide IPs, in which case the global QOS equation settings are overwritten.

To modify global QOS coefficients using the Configuration utility

  1. In the navigation pane, click System.
    The System - General screen opens.
  2. On the toolbar, click Load Balancing.
    The System - Load Balancing screen opens.
  3. Define the global QOS coefficients in the Round Trip Time, Completion Rate, Hops, BIG-IP Packet Rate, Topology, Link Capacity, VS Capacity, and Kilobytes/Second boxes.
  4. Click Update.

To modify QOS coefficients for a specific wide IP using the Configuration utility

  1. In the navigation pane, click Wide IPs.
  2. In the Wide IP column, click a wide IP name.
    The Modify Wide IP screen opens.
  3. On the toolbar, click Modify Pool.
    The Modify Wide IP Pools screen opens.
  4. In the Pool Name column, click the name of a pool.
    The Modify Load Balancing screen opens.
  5. Define the wide IP's QOS coefficients in the Round Trip Time, Completion Rate, Hops, BIG-IP Packet Rate, Topology, Link Capacity, VS Capacity, and Kilobytes/Second boxes.
  6. Click Update.

To assign global QOS coefficients from the command line

  1. Type the following command to ensure that the configuration files contain the same information as the memory cache.

    3ndc dumpdb

  2. Open the wideip.conf file in a text editor (either vi or pico).
  3. Locate or add the globals statement. The globals statement should be at the top of the file.
  4. Refer to the example syntax shown in Figure 8.2 to define a global QOS equation. Note that Figure 8.2 shows the default values for the QOS coefficients.
  5. Save and close the file.
  6. Commit the changes to the configuration by typing:

    3ndc reload

Figure 8.2 Sample global QOS equation


globals {
qos_coeff_rtt 50
qos_coeff_completion_rate 5
qos_coeff_packet_rate 1
qos_coeff_topology 0
qos_coeff_hops 0
qos_coeff_lcs 30
qos_coeff_vs_capacity 0
qos_coeff_kbps 0
}
 

To assign QOS coefficients for a specific wide IP from the command line

  1. Type the following command to ensure that the configuration files contain the same information as the memory cache.

    3ndc dumpdb

  2. Open the wideip.conf file in a text editor (either vi or pico).
  3. Locate or add the globals statement. The globals statement should be at the top of the file.
  4. Refer to the example syntax shown in Figure 8.3 to define a wide IP's QOS equation. Figure 8.3 displays a wide IP definition that overrides the global QOS equation settings shown in Figure 8.2 .
  5. Save and close the file.
  6. Commit the changes to the configuration by typing:

    3ndc reload

Figure 8.3 QOS coefficient settings that override the global QOS settings


wideip {
address 192.168.101.50
service "http"
name "www.wip.siterequest.com"
ttl 60 // increase the domain default ttl
qos_coeff {
rtt 21
hops 0
completion_rate 7
packet_rate 5
topology 1
vs_capacity 0
kbps 0
}
pool {
name "Pool_1"
ratio 2 // applies to pool_lbmode == ratio
preferred qos
alternate ratio
address 192.168.101.50 ratio 2
address 192.168.102.50 ratio 1
address 192.168.103.50 ratio 1
}
pool {
name "Pool_2"
ratio 1
preferred rr
address 192.168.102.60 ratio 2
address 192.168.103.60 ratio 1
}
}

Using the Dynamic Ratio option

When the Dynamic Ratio option is turned on, the 3-DNS Controller treats QOS scores as ratios, and it uses each server in proportion to the ratio determined by the QOS calculation. When the Dynamic Ratio option is turned off (the default), the 3-DNS Controller uses only the server with the highest QOS score for load balancing, (in which case it is a winner-takes-all situation) until the metrics information is refreshed.

To turn on the Dynamic Ratio option using the Configuration utility

  1. In the navigation pane, click Wide IPs.
  2. In the Wide IP column, click a wide IP name.
    The Modify Wide IP screen opens.
  3. On the toolbar, click Modify Pool.
    The Modify Wide IP Pools screen opens.
  4. In the Pool Name column, click the name of a pool.
    The Modify Load Balancing screen opens.
  5. Check Use Dynamic Ratio.
  6. Click Update.

To turn on the Dynamic Ratio option from the command line

  1. To ensure that the configuration files contain the same information as the memory cache, type the following command:

    3ndc dumpdb

  2. Open the wideip.conf file in a text editor (either vi or pico).
  3. Locate the wideip statement and the pool definition you want to edit.
  4. Add the syntax (shown in bold in Figure 8.4 ) to the pool definition.
  5. Save and close the file.
  6. Commit the changes to the configuration by typing:

    3ndc reload

    Figure 8.4 Enabling dynamic ratio in a pool configuration


    pool {
    name <"pool_name">
    [ ratio <pool_ratio> ]
    dynamic_ratio yes
    [ rr_ldns < yes | no > ]
    [ rr_ldns_limit <number> ]
    [ preferred < completion_rate | ga | hops | kbps | leastconn | packet_rate | qos | random | ratio | return_to_dns | rr |
    rtt | static_persist | topology | vs_capacity | null > ]
    [ alternate < ga | kbps | null | random | ratio | return_to_dns | rr | static_persist | topology | vs_capacity > ]
    [ fallback < completion_rate | ga | hops | kbps | leastconn |
    packet_rate | qos | random | ratio | return_to_dns | rr | rtt | static_persist | topology | vs_capacity | null > ]
    address <vs_addr>[:<port>] [ratio <weight>]
    }
    }