Dell Technologies VxRail:NSX 边缘节点上的 CPU 争用率高。

Summary: Dell Technologies VxRail:NSX 边缘节点上的 CPU 争用率高。需要弄清楚导致 nsx 边缘节点上 cpu 使用率过高的原因。

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

ESXi 节点上存在较高的 CPU 争用,特别是 NSX 边缘节点。
如果您启动此边缘节点,并且它使用同等成本多路径 (ECMP),则会在下一个边缘节点上发现 CPU 高争用以及高网络流量。原始恢复到正常状态。
从边缘节点本身,存在正常负载,未发现任何特定网络捕获被丢弃。


Cause

这是由高 cpu 使用率以及通过某些边缘 vnic 的高网络流量引起的。

CPU 使用情况比较:

边缘损坏
 xxx    27  454.64  471.21   43.19 2307.95    7.32   13.72  334.52    2.67    0.00    0.00    0.00
良好的边缘  
 xxx    27  240.09  225.96   20.80 2507.98    6.72    8.39  443.93    1.71    0.00    0.00    0.00


CPU 运行百分比:

边缘损坏
  ID      GID NAME             NWLD   %USED    %RUN    %SYS   %WAIT %VMWAIT    %RDY   %IDLE  %OVRLP   %CSTP  %MLMTD  %SWPWT
16580792 16580792 xxx            27  454.64  471.21   43.19 2307.95    7.32   13.72  334.52    2.67    0.00    0.00    0.00
   
良好的边缘
  ID      GID NAME             NWLD   %USED    %RUN    %SYS   %WAIT %VMWAIT    %RDY   %IDLE  %OVRLP   %CSTP  %MLMTD  %SWPWT
10908367 10908367 xxx            27  240.09  225.96   20.80 2507.98    6.72    8.39  443.93    1.71    0.00    0.00    0.00


RX 和 TX 的网络端口比较:
PORT-ID USED-BY                         TEAM-PNIC DNAME              PKTTX/s  MbTX/s   PSZTX    PKTRX/s  MbRX/s   PSZRX %DRPTX %DRPRX
50331714 2666974:xxx.eth2               vmnic2 DvsPortset-1        519615.172729.88  688.00  128623.96  694.32  707.00   0.00   0.00
50331715 2666974:xxx.eth1               vmnic3 DvsPortset-1        76622.01  523.06  894.00  230747.221126.70  640.00   0.00   0.00
50331716 2666974:xxx.eth0               vmnic6 DvsPortset-1        51422.12  168.87  430.00  312557.221691.50  709.00   0.00   0.00
PORT-ID USED-BY                         TEAM-PNIC DNAME              PKTTX/s  MbTX/s   PSZTX    PKTRX/s  MbRX/s   PSZRX %DRPTX %DRPRX
50331744 1752165:xxx.eth2               vmnic3 DvsPortset-1        42856.22  238.49  729.00   50329.21  262.45  683.00   0.00   0.00
50331745 1752165:xxx.eth1               vmnic7 DvsPortset-1        22069.93   91.24  541.00   20044.33   96.35  630.00   0.00   0.00
50331746 1752165:xxx.eth0               vmnic2 DvsPortset-1        27771.00  169.72  801.00   23548.13  144.95  806.00   0.00   0.00

每秒软件包比较:

边缘损坏
    "rxqueue": { "count": 4, "details": [
    {"intridx": 0, "pps": 30175, "mbps": 203.9, "errs": 0.0},
    {"intridx": 1, "pps": 17175, "mbps": 61.1, "errs": 0.0},
    {"intridx": 2, "pps": 15626, "mbps": 51.4, "errs": 0.0},
    {"intridx": 3, "pps": 14596, "mbps": 57.4, "errs": 0.0} ]},
  "txqueue": { "count": 4, "details": [
    {"intridx": 0, "pps": 121634, "mbps": 828.2, "errs": 0.0},
    {"intridx": 1, "pps": 105483, "mbps": 708.5, "errs": 0.0},
    {"intridx": 2, "pps": 137687, "mbps": 1087.9, "errs": 0.0},
    {"intridx": 3, "pps": 116488, "mbps": 831.6, "errs": 0.0} ]},

良好的边缘
    "rxqueue": { "count": 4, "details": [
    {"intridx": 0, "pps": 22388, "mbps": 115.1, "errs": 0.0},
    {"intridx": 1, "pps": 54248, "mbps": 497.1, "errs": 0.0},
    {"intridx": 2, "pps": 67004, "mbps": 650.2, "errs": 0.0},
    {"intridx": 3, "pps": 22688, "mbps": 118.8, "errs": 0.0} ]},
  "txqueue": { "count": 4, "details": [
    {"intridx": 0, "pps": 21222, "mbps": 125.0, "errs": 0.0},
    {"intridx": 1, "pps": 46125, "mbps": 384.3, "errs": 0.0},
    {"intridx": 2, "pps": 22771, "mbps": 131.7, "errs": 0.0},
    {"intridx": 3, "pps": 29040, "mbps": 162.0, "errs": 0.0} ]},


边缘节点上针对特定 vnic 的网络流量较高。在用作网关的边缘虚拟机上捕获运行导致高流量的特定应用程序。
下面是最后一个 wireshark 信息。

WireShark_Output.png



 
 
 

Resolution

要解决此问题:
  • 如果某个特定应用程序在特定端口上生成高网络流量,请联系应用程序团队。
  • 查看网络组件的设计,以避免在特定节点上生成大量流量。

使用以下故障排除工作流查找问题的原因。

1.启用边缘节点工程模式以捕获系统负载并使用根模式运行顶部。
/home/secureall/secureall/sem/WEB-INF/classes/GetSpockEdgePassword.sh edge-xx (edge-xx could be found on nsx manager GUI)
logon console of edge node with admin->enable>debug engineeringmode enable->st en-> 

2.捕获有关 ESXi 节点的 esxtop 信息。最好比较运行正常边缘节点的 ESXi 节点和运行有问题的边缘节点的 ESXi 节点的结果。
 
A.“ esxtop” — 在已迁移的 ESXi 主机上运行。
B。“esxtop”后跟“n” — 在已迁移的 ESXi 主机上运行。
C。使用有问题的虚拟机的当前 GID 对每个 CPU 核心数据进行“esxtop”。获取 GID 值,按“E”并输入 GID 编号。
D。查看有关此特定边缘虚拟机的所有数据。

3.运行 Net stats 以获取统计信息。检查输出上数据包每秒统计信息的统计信息,并将其与运行正常边缘节点的 ESXi 节点进行比较。
 
'net-stats -A -t WwQqihVvh -i 5 -n 2' - run on the migrated ESXi host and got following high figure
  "txqueue": { "count": 4, "details": [
    {"intridx": 0, "pps": 121634, "mbps": 828.2, "errs": 0.0},
    {"intridx": 1, "pps": 105483, "mbps": 708.5, "errs": 0.0},
    {"intridx": 2, "pps": 137687, "mbps": 1087.9, "errs": 0.0},
    {"intridx": 3, "pps": 116488, "mbps": 831.6, "errs": 0.0} ]},

4.使用 Wireshark 网络软件确定生成流量最多的应用程序。
 
A.在 ESXi 主机 shell 上,使用“net-stats -l ”命令获取 ESG 虚拟机的交换机端口详细信息。请注意相关边缘虚拟机的 vnic 的交换机端口。这使您能够知道通过此 vnic 流动的流量类型。
 
B. 对所有相关的交换机端口逐个执行数据包捕获一分钟,并将其保存在 .pcap 文件中。根据您的设置更改。
pktcap-uw --switchport  --capture VnicTx,VnicRx -o /vmfs/volumes//.pcap

5.将所有收集 .pcap 软件包信息放入 wireshark 中,以按时间顺序生成总体报告。通过确定其源 IP 地址和目标 IP 地址,找出大多数流量来自的端口。

6.ECMP 环境下存在一些负载流量。它使用 ECMP 哈希固定到边缘节点。如果重新加载/重新部署 ESG,则会将其移至另一个 ESG。之后,将此流量移动到的 ESG 开始报告高 CPU 使用率。
默认情况下,流量在所有 ECMP 对之间分布,基于其内部哈希算法,该算法使用两个 tuple (srcIP+dstIP)。因此,所有端口 TCP/1556 流量不会固定到一个特定的边缘。
在我们的实例中,src 和 dst IP 之间的密集备份流量固定到此边缘,导致 ESXi 为该流量的此 ESG 虚拟机提供更多 CPU 周期。正因如此,我们看到 ESXi/vCenter 级别的 CPU 利用率很高,但在 ESG 的来宾操作系统内,CPU 利用率是正常的。因此,总体而言,这也是预期的行为。

Affected Products

VxRail Appliance Family, VxRail Appliance Series
Article Properties
Article Number: 000202066
Article Type: Solution
Last Modified: 16 May 2023
Version:  3
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.