JavaScript is required to for searching.
跳过导航链接
退出打印视图
在 Oracle Solaris 11.1 中使用虚拟网络     Oracle Solaris 11.1 Information Library (简体中文)
为本文档评分
search filter icon
search icon

文档信息

前言

1.  Oracle Solaris 中的网络虚拟化和资源管理

2.  在 Oracle Solaris 中创建和管理虚拟网络

3.  在 Oracle Solaris 中管理网络资源

使用客户机、传送环和接收环

MAC 客户机和环分配

VLAN 中的环分配

环分配的数据链路属性

使用接收环和传送环的命令

获取和解释环信息

显示数据链路的环分配功能

显示数据链路上的环使用和环分配

如何配置客户机并分配环

使用池和 CPU

如何为数据链路配置 CPU 池

如何将 CPU 分配给链路

管理流上的资源

如何配置流

4.  监视 Oracle Solaris 中的网络通信和资源使用情况

索引

请告诉我们如何提高我们的文档:
过于简略
不易阅读或难以理解
重要信息缺失
错误的内容
需要翻译的版本
其他
Your rating has been updated
感谢您的反馈!

您的反馈将非常有助于我们提供更好的文档。 您是否愿意参与我们的内容改进并提供进一步的意见?

使用池和 CPU

通过 pool 链路属性,您可将网络处理绑定到 CPU 池。使用此属性,您可以更好地整合区域中的网络资源管理与 CPU 绑定和管理。在 Oracle Solaris 中,区域管理包括使用 zonecfgpoolcfg 命令将非网络处理与 CPU 资源池绑定。要指定相同的资源池以便同时管理网络处理,请使用 dladm set-linkprop 命令来配置链路的 pool 属性。然后您将该链路指定给该区域。

通过设置链路的 pool 属性并将该链路指定为一个区域的网络接口,该链路将同时绑定到该区域的池。如果该区域被设置为专用区域,则未指定给该区域的其他数据链路不再能够使用池中的 CPU 资源。


注 - 可以设置一个单独的属性 cpu 来将特定 CPU 指定给数据链路。cpupool 这两个属性是互斥的。您不能为给定数据链路同时设置这两个属性。要使用 cpu 属性将 CPU 资源指定给数据链路,请参见如何将 CPU 分配给链路


有关区域中池的更多信息,请参见《Oracle Solaris 11.1 管理:Oracle Solaris Zones、Oracle Solaris 10 Zones 和资源管理》中的第 13  章 "创建和管理资源池(任务)"。有关创建池以及将 CPU 集指定给池的更多信息,请参阅 poolcfg(1M) 手册页。

下图显示将 pool 属性指定给数据链路时池的工作原理。

图 3-1 指定给一个区域的 VNIC 的 pool 属性

image:说明指定给区域的 CPU 池的图形。

在图中,系统有八个 CPU。如果系统上没有配置池,则所有 CPU 都属于缺省池并由全局区域使用。不过,在本示例中,已创建 pool99 池,其中包含 CPU 3CPU 4。该池与专用区域 zone1 相关联。如果 pool99 被设置为 vnic1 的一个属性,则 pool99 变为专用于管理 vnic1 的网络处理。在将 vnic1 指定为 zone1 的网络接口后,pool99 中的 CPU 将被保留,用于管理 zone1 的网络和非网络处理。

pool 属性在本质上是动态的。可以使用一个 CPU 范围配置区域池,内核确定将哪些 CPU 指定给该池的 CPU 集。对池的更改会自动针对数据链路实现,从而简化了该链路的池管理。相反,通过使用 cpu 属性将特定 CPU 指定给链路时会要求您指定要分配的 CPU。每次要更改池的 CPU 组成时,您必须设置 cpu 属性。

例如,假定使图 3-1 中的系统 CPU 4 处于脱机状态。由于 pool 属性是动态的,软件会自动将另一个 CPU 与池相关联。因此,会保留池的两个 CPU 的初始配置。对于 vnic1,此更改是透明的。调整后的配置如下图所示。

图 3-2 pool 属性的自动重新配置

image:显示池动态配置的图形。

其他与池相关的属性显示有关数据链路的 CPU 使用或 CPU 池的信息。这些属性是只读属性,不能由管理员设置。

为了管理区域的 CPU 资源,设置数据链路的 pool 属性通常不作为初始步骤执行。更常见的是使用命令(如 zonecfgpoolcfg)将区域配置为使用资源池。cpupool 链路属性本身并未设置。在这种情况下,当引导区域时,会根据区域配置自动设置这些数据链路的 pool-effectivecpus-effective 属性。缺省池显示在 pool-effective 下,同时由系统选择 cpus-effective 的值。因此,如果使用 dladm show-linkprop 命令,则 poolcpu 属性将为空,而 pool-effectivecpus-effective 属性将包含值。

要为网络处理绑定区域的 CPU 池,您还可以直接设置数据链路的 poolcpu 属性。配置这些属性后,它们的值也会反映在 pool-effectivecpus-effective 属性中。但是请注意,通常不使用此替代步骤来管理区域的网络资源。

如何为数据链路配置 CPU 池

与其他链路属性一样,数据链路的 pool 属性可以在创建链路时设置,也可以稍后在链路需要进一步配置时设置。

要在创建 VNIC 时设置 pool 属性,请使用以下语法:

# dladm create-vnic -p pool=pool-name -l link vnic

要设置现有 VNIC 的 pool 属性,使用以下语法:

# dladm setlinkprop -p pool=pool-name vnic

以下过程介绍了如何为 VNIC 配置 CPU 池。

开始之前

您必须完成以下事项:

  1. 将链路的 pool 属性设置为您为区域创建的 CPU 池。根据是否存在 VNIC,执行以下步骤之一:
    • 如果尚未创建 VNIC,使用以下语法:

      # dladm create-vnic -l link -p pool=pool vnic

      其中 pool 指为区域创建的池的名称。

    • 如果 VNIC 存在,请使用以下语法:

      # dladm setlinkprop -p pool=pool vnic
  2. 将一个区域设置为使用 VNIC。
    zonecfg>zoneid:net> set physical=vnic

示例 3-6 将链路的 CPU 池指定给具有专用 IP 类型的区域

本示例说明如何将池指定给区域的数据链路。该方案基于图 3-1 中的配置。本示例假定已为区域配置一个名为 pool99 的 CPU 池。然后将该池指定给一个 VNIC。最后,将非全局区域 zone1 设置为使用该 VNIC 作为网络接口。

# dladm create-vnic -l net1 -p pool99 vnic1

# zonecfg -c zone1
zonecfg:zone1> set ip-type=exclusive
zonecfg:zone1> add net
zonecfg:zone1>net> set physical=vnic1
zonecfg:zone1>net> end
zonecfg:zone1> exit

如何将 CPU 分配给链路

以下过程说明如何通过配置 cpu 属性,指定特定 CPU 来处理数据链路上的通信流量。

  1. 检查接口的 CPU 指定。
    # dladm show-linkprop -p cpus link

    缺省情况下,没有将 CPU 指定给任何特定接口。因此,命令输出中的参数 VALUE 将不包含任何条目。

  2. 列出中断和与中断相关联的 CPU。
    # echo ::interrupts | mdb -k

    输出将列出系统上每个链路的参数,包括 CPU 数量。

  3. 将 CPU 指定给链路。

    这些 CPU 可以包括与链路的中断相关联的 CPU。

    # dladm set-linkprop -p cpus=cpu1,cpu2,... link

    其中 cpu1 是要指定给该链路的 CPU 编号。您可以为链路指定多个专用 CPU。

  4. 检查链路中断来验证新的 CPU 指定。
    # echo ::interrupts | mdb -k
  5. (可选的)显示与链路相关联的 CPU。
    # dladm show-linkprop -p cpus link

示例 3-7 将 CPU 分配给链路

此示例说明如何将特定 CPU 指定给数据链路 net0

请注意由不同的命令生成的输出中的以下信息。为清楚起见,重要信息在输出中强调显示。

# dladm show-linkprop -p cpus net0
LINK          PROPERTY     PERM     VALUE     DEFAULT     POSSIBLE
net0     cpus         rw       --        --          --

# echo ::interrupts | mdb -k
Device  Shared   Type   MSG #   State   INO    Mondo   Pil   CPU
net#0   no       MSI    2       enbl    0x1a   0x1a    6     18

# dladm set-linkprop -p cpus=14,18,19,20 net0

# dladm show-linkprop -p cpus net0
LINK   PROPERTY   PERM   VALUE        DEFAULT   POSSIBLE
net0   cpus       rw     14,18,19,20  --        --

所有支持线程(包括中断)现在只限于新指定的 CPU 集。

另请参见

有关显示如何使用流以及如何分配系统资源(包括 CPU 和 CPU 池)以在虚拟网络中处理网络通信的示例,请参见示例 3-8