Go to main content

Managing Network Virtualization and Network Resources in Oracle® Solaris 11.4

Exit Print View

Updated: November 2020
 
 

Managing Pools and CPUs

Oracle Solaris supports two properties, pool and cpus, to manage resources for tasks beyond network processes. Use the cpus property to assign specific CPUs to a datalink.

If you are managing resources while working with non-global zones, use the pool property instead. This property enables you to integrate network resource management with CPU allocation and zone administration.

For example, you use the zone commands zonecfg and poolcfg to configure a pool of resources for zones. To dedicate that same pool to also manage network processes, then you configure the datalink's pool property. When the datalink with the configured pool is assigned to a non-global zone's network interface, then the datalink is bound to the zone's pool. If you set the zone to be exclusive, then CPU resources in the pool can no longer be used by other links that are not assigned to the zone.

See Chapter 13, Creating and Administering Resource Pools Tasks in Administering Resource Management in Oracle Solaris 11.4 and the poolcfg(8) man page.


Note -  The cpus and pool properties are mutually exclusive. You cannot set both properties for a given datalink.

The following figure shows how pools work when the pool property is assigned to a datalink.

Figure 22  pool Property of a VNIC Assigned to a Zone

image:Graphic that illustrates a pool of CPUs assigned to a zone.

The figure shows a system with eight CPUs. When no pools are configured, all the CPUs belong to the default pool and are used by the global zone. In the figure, pool99 is created and consists of CPU 3 and CPU 4. The pool is associated with zone1, an exclusive zone. If pool99 is set as a property of vnic1, then pool99 becomes dedicated to also manage vnic1's networking processes. After vnic1 is assigned to be zone1's network interface, the CPUs in pool99 are reserved to manage both networking and non-networking processes of zone1.

The pool property is dynamic in nature. Zone pools can be configured with a range of CPUs, and the kernel determines which CPUs are assigned to the pool's CPU set. Changes to the pool are automatically implemented for the datalink. In contrast, assigning specific CPUs to the link by using the cpu property requires you to specify the CPU to be assigned. You have to set the cpu property every time you want to change the CPU components of the pool.

For example, suppose that the system CPU 4 in pool Property of a VNIC Assigned to a Zone is taken offline. Because the pool property is dynamic, the software automatically associates an additional CPU with the pool. Hence, the pool's original configuration of two CPUs is preserved. For vnic1, the change is transparent. The updated configuration is shown in the following figure.

Figure 23  Automatic Reconfiguration of the pool Property

image:Graphic showing dynamic reconfiguration of pools.

When you display datalink property information for pool and cpus, the EFFECTIVE column in the output shows the corresponding pool and CPU resources that are used for network processes, as shown in this example:

$ dladm show-linkprop -p cpus
LINK  PROPERTY  PERM  VALUE  EFFECTIVE  DEFAULT  POSSIBLE
net0  cpus      rw    --     0-63       --       --

$ dladm show-linkprop -p pool
LINK   PROPERTY  PERM  VALUE  EFFECTIVE     DEFAULT  POSSIBLE
vnic1  pool      rw    --     pool99         --       --

If you are configuring a non-global zone's resources, use the appropriate zonecfg or poolcfg commands rather than directly configuring the datalink's cpus or pool properties. When you bind the datalink to the zone and then reboot the zone, these datalinks are automatically set according to the zone configurations. These settings are then reported under the EFFECTIVE column, even though their VALUE column shows empty fields.