监控 Amazon EC2 上的 Elastic Fabric Adapter
您可以使用以下功能监控 Elastic Fabric Adapters 的性能。
Amazon EC2 实例的 EFA 驱动程序指标
Elastic Fabric Adapter(EFA)驱动程序会发布多个来自挂载了 EFA 接口的实例的指标。您可以使用这些指标来排查应用程序性能问题、为工作负载选择合适的集群大小、主动计划扩缩活动以及对应用程序进行基准测试,以确定是否最大限度利用了实例上可用的 EFA 性能。
可用的 EFA 驱动程序指标
ENA 驱动程序会实时向实例发布以下指标。这些指标提供了自实例启动或上次驱动程序重置以来的累计错误数以及所挂载 EFA 设备发送、接收或丢弃的数据包数。
指标 | 描述 |
---|---|
tx_bytes |
传输的字节数。 单位:字节 |
rx_bytes |
收到的字节数。 单位:字节 |
tx_pkts |
传输的数据包数。 单位:计数 |
rx_pkts |
收到的数据包数。 单位:计数 |
rx_drops |
收到但随后丢弃的数据包数。 单位:计数 |
send_bytes |
使用发送操作发送的字节数。 单位:字节 |
recv_bytes |
通过发送操作收到的字节数。 单位:字节 |
send_wrs |
使用发送操作发送的数据包数。 单位:计数 |
recv_wrs |
通过发送操作收到的数据包数。 单位:计数 |
rdma_write_wrs |
已完成的 rdma 写入操作数。 单位:计数 |
rdma_read_wrs |
已完成的 rdma 读取操作数。 单位:计数 |
rdma_write_bytes |
其他实例通过 rdma 写入操作写入的字节数。 单位:字节 |
rdma_read_bytes |
通过 rdma 读取操作收到的字节数。 单位:字节 |
rdma_write_wr_err |
出现本地或远程错误的 rdma 写入操作数。 单位:计数 |
rdma_read_wr_err |
出现本地或远程错误的 rdma 读取操作数。 单位:计数 |
rdma_read_resp_bytes |
为响应 rdma 读取操作而发送的字节数。 单位:字节 |
rdma_write_recv_bytes |
通过 rdma 写入操作收到的字节数。 单位:字节 |
检索实例的 EFA 驱动程序指标
您可以使用 rdma-tool
$
rdma -p statistic show
link rdmap0s31/1 tx_bytes 0 tx_pkts 0 rx_bytes 0 rx_pkts 0 rx_drops 0 send_bytes 0 send_wrs 0 recv_bytes 0 recv_wrs 0 rdma_read_wrs 0 rdma_read_bytes 0 rdma_read_wr_err 0 rdma_read_resp_bytes 0 rdma_write_wrs 0 rdma_write_bytes 0 rdma_write_wr_err 0
您也可以使用以下命令从 sys 文件中检索挂载到实例的每个 EFA 接口的指标。
$
more /sys/class/infiniband/device_number
/ports/port_number
/hw_counters/* | cat
例如
$
more /sys/class/infiniband/rdmap0s31/ports/1/hw_counters/* | cat
:::::::::::::: /sys/class/infiniband/rdmap0s31/ports/1/hw_counters/lifespan :::::::::::::: 12 :::::::::::::: /sys/class/infiniband/rdmap0s31/ports/1/hw_counters/rdma_read_bytes :::::::::::::: 0 :::::::::::::: /sys/class/infiniband/rdmap0s31/ports/1/hw_counters/rdma_read_resp_bytes :::::::::::::: 0 :::::::::::::: /sys/class/infiniband/rdmap0s31/ports/1/hw_counters/rdma_read_wr_err :::::::::::::: 0 :::::::::::::: /sys/class/infiniband/rdmap0s31/ports/1/hw_counters/rdma_read_wrs :::::::::::::: 0 :::::::::::::: /sys/class/infiniband/rdmap0s31/ports/1/hw_counters/rdma_write_bytes :::::::::::::: 0 :::::::::::::: /sys/class/infiniband/rdmap0s31/ports/1/hw_counters/rdma_write_recv_bytes :::::::::::::: 0 :::::::::::::: /sys/class/infiniband/rdmap0s31/ports/1/hw_counters/rdma_write_wr_err :::::::::::::: 0 :::::::::::::: /sys/class/infiniband/rdmap0s31/ports/1/hw_counters/rdma_write_wrs :::::::::::::: 0 :::::::::::::: /sys/class/infiniband/rdmap0s31/ports/1/hw_counters/recv_bytes :::::::::::::: 0 :::::::::::::: /sys/class/infiniband/rdmap0s31/ports/1/hw_counters/recv_wrs :::::::::::::: 0 :::::::::::::: /sys/class/infiniband/rdmap0s31/ports/1/hw_counters/rx_bytes :::::::::::::: 0 :::::::::::::: /sys/class/infiniband/rdmap0s31/ports/1/hw_counters/rx_drops :::::::::::::: 0 :::::::::::::: /sys/class/infiniband/rdmap0s31/ports/1/hw_counters/rx_pkts :::::::::::::: 0 :::::::::::::: /sys/class/infiniband/rdmap0s31/ports/1/hw_counters/send_bytes :::::::::::::: 0 :::::::::::::: /sys/class/infiniband/rdmap0s31/ports/1/hw_counters/send_wrs :::::::::::::: 0 :::::::::::::: /sys/class/infiniband/rdmap0s31/ports/1/hw_counters/tx_bytes :::::::::::::: 0 :::::::::::::: /sys/class/infiniband/rdmap0s31/ports/1/hw_counters/tx_pkts :::::::::::::: 0
Amazon VPC 流日志
您可以创建 Amazon VPC 流日志以捕获有关进出 EFA 的流量的信息。流日志数据可以发布到 Amazon CloudWatch Logs 和 Amazon S3。在创建流日志后,您可以在所选的目标中检索和查看其数据。有关更多信息,请参阅《Amazon VPC 用户指南》中的 VPC 流日志。
您可以使用为弹性网络接口创建流日志的相同方式为 EFA 创建流日志。有关更多信息,请参阅《Amazon VPC 用户指南》中的创建流日志。
在流日志条目中,EFA 流量由 srcAddress
和 destAddress
标识,二者都格式化为 MAC 地址,如以下示例中所示。
version accountId eniId srcAddress destAddress sourcePort destPort protocol packets bytes start end action log-status
2 3794735123 eni-10000001 01:23:45:67:89:ab 05:23:45:67:89:ab - - - 9 5689 1521232534 1524512343 ACCEPT OK
Amazon CloudWatch
如果在 Amazon EKS 集群中使用 EFA,则可以使用 CloudWatch Container Insights 监控您的 EFA。有关更多信息,请参阅《Amazon CloudWatch 用户指南》中的 Amazon EKS 和 Kubernetes Container Insights 指标。