

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在 Amazon EC2 上監控彈性布料轉接器
<a name="efa-working-monitor"></a>

您可以使用下列功能來監控 Elastic Fabric Adapter 的效能。

**Topics**
+ [Amazon EC2 執行個體的 EFA 驅動程式指標](#efa-driver-metrics)
+ [Amazon VPC 流程日誌](#efa-flowlog)
+ [Amazon CloudWatch](#efa-cloudwatch)

## Amazon EC2 執行個體的 EFA 驅動程式指標
<a name="efa-driver-metrics"></a>

Elastic Fabric Adapter (EFA) 驅動程式會從已連接 EFA 介面的執行個體中實時發佈多個指標。可以使用這些指標來進行執行個體效能和聯網問題的故障診對、為工作負載選擇正確的叢集大小、主動計劃擴展活動，以及基準化分析應用程式，以判斷其是否能夠最大化執行個體上的可用效能。

**Topics**
+ [可用的 EFA 驅動程式指標](#available-efa-metrics)
+ [擷取執行個體的 EFA 驅動程式指標](#view-efa-driver-metrics)

### 可用的 EFA 驅動程式指標
<a name="available-efa-metrics"></a>

ENA 驅動程式會即時將下列指標交付至執行個體。其提供從執行個體啟動或上次驅動程式重設以來，所連接之 EFA 裝置傳送、接收、傳輸或捨棄的累計錯誤、連線事件和封包或位元組數量。


| 指標 | Description | 支援的執行個體類型 | 
| --- | --- | --- | 
| tx\$1bytes |  已傳輸的位元組數目。 單位：位元組  | 支援 EFA 的所有執行個體類型 | 
| rx\$1bytes |  接收的位元組數量。 單位：位元組  | 支援 EFA 的所有執行個體類型 | 
| tx\$1pkts |  代理程式傳輸的封包數目。 單位：計數  | 支援 EFA 的所有執行個體類型 | 
| rx\$1pkts |  接收的封包數量。 單位：計數  | 支援 EFA 的所有執行個體類型 | 
| rx\$1drops |  收到然後捨棄的封包數量。 單位：計數  | 支援 EFA 的所有執行個體類型 | 
| send\$1bytes |  使用傳送操作傳送的位元組數。 單位：位元組  | 支援 EFA 的所有執行個體類型 | 
| recv\$1bytes |  傳送操作收到的位元組數。 單位：位元組  | 支援 EFA 的所有執行個體類型 | 
| send\$1wrs |  使用傳送操作傳送的封包數量。 單位：計數  | 支援 EFA 的所有執行個體類型 | 
| recv\$1wrs |  傳送操作收到的封包數量。 單位：計數  | 支援 EFA 的所有執行個體類型 | 
| rdma\$1write\$1wrs |  已完成的 rdma 寫入操作數目。 單位：計數  | 支援 EFA 的所有執行個體類型 | 
| rdma\$1read\$1wrs |  已完成的 rdma 讀取操作數目。 單位：計數  | 支援 EFA 的所有執行個體類型 | 
| rdma\$1write\$1bytes |  其他執行個體使用 rdma 寫入操作寫入其中的位元組數。 單位：位元組  | 支援 EFA 的所有執行個體類型 | 
| rdma\$1read\$1bytes |  使用 rdma 讀取操作收到的位元組數。 單位：位元組  | 支援 EFA 的所有執行個體類型 | 
| rdma\$1write\$1wr\$1err |  發生本機或遠端錯誤的 rdma 寫入操作數目。 單位：計數  | 支援 EFA 的所有執行個體類型 | 
| rdma\$1read\$1wr\$1err |  發生本機或遠端錯誤的 rdma 讀取操作數目。 單位：計數  | 支援 EFA 的所有執行個體類型 | 
| rdma\$1read\$1resp\$1bytes |  回應 rdma 讀取操作而傳送的位元組數。 單位：位元組  | 支援 EFA 的所有執行個體類型 | 
| rdma\$1write\$1recv\$1bytes |  rdma 寫入操作收到的位元組數。 單位：位元組  | 支援 EFA 的所有執行個體類型 | 
| retrans\$1bytes |  重新傳輸的 EFA SRD 位元組數。 單位：計數  | 支援 EFA 的 Nitro v4 和更新版本的執行個體類型 | 
| retrans\$1pkts |  重新傳輸的 EFA SRD 封包數目。 單位：位元組  | 支援 EFA 的 Nitro v4 和更新版本的執行個體類型 | 
| retrans\$1timeout\$1events |  EFA SRD 流量逾時並導致網路路徑變更的次數。 單位：計數  | 支援 EFA 的 Nitro v4 和更新版本的執行個體類型 | 
| impaired\$1remote\$1conn\$1events |  EFA SRD 連線進入受損狀態的次數，導致輸送量速率限制降低。 單位：計數  | 支援 EFA 的 Nitro v4 和更新版本的執行個體類型 | 
| unresponsive\$1remote\$1events |  EFA SRD 遠端連線沒有回應的次數。 單位：計數  | 支援 EFA 的 Nitro v4 和更新版本的執行個體類型 | 

如需有關支援 EFA 的執行個體類型詳細資訊，請參閱 [支援的執行個體類型](efa.md#efa-instance-types)。

### 擷取執行個體的 EFA 驅動程式指標
<a name="view-efa-driver-metrics"></a>

您可以使用 [rdma-tool](https://man7.org/linux/man-pages/man8/rdma.8.html) 命令列工具來擷取連接至執行個體之所有 EFA 介面的指標，如下所示：

```
$ 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
    retrans_bytes 0
    retrans_pkts 0
    retrans_timeout_events 0
    unresponsive_remote_events 0
    impaired_remote_conn_events 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
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/retrans_bytes
::::::::::::::
0
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/retrans_pkts
::::::::::::::
0
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/retrans_timeout_events
::::::::::::::
0
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/unresponsive_remote_events
::::::::::::::
0
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/impaired_remote_conn_events
::::::::::::::
0
```

## Amazon VPC 流程日誌
<a name="efa-flowlog"></a>

您可以建立 Amazon VPC 流程日誌，以擷取進出 EFA 的流量的相關資訊。現在流程日誌資料可發佈至 Amazon CloudWatch Logs 與 Amazon S3。建立流量日誌之後，您可以在選擇的目的地中擷取及檢視其資料。如需詳細資訊，請參閱「Amazon VPC 使用者指南」**中的 [VPC 流程日誌](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html)。

就像為彈性網絡介面建立流程日誌，您以同樣的方式為 EFA 建立流程日誌。如需詳細資訊，請參閱「Amazon VPC 使用者指南」**中的[建立流量日誌](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-flow-logs.html#create-flow-log)。

在流程日誌項目中，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
<a name="efa-cloudwatch"></a>

如果您在 Amazon EKS 叢集中使用 EFA，您可以使用 CloudWatch Container Insights 監控 EFAs。Amazon CloudWatch Container Insights 支援所有 [EFA 驅動程式指標](#efa-driver-metrics)，但 `retrans_bytes`、`retrans_pkts`、`retrans_timeout_events`、`unresponsive_remote_events` 和 `impaired_remote_conn_events` 除外。

如需詳細資訊，請參閱「Amazon CloudWatch 使用者指南」**中的 [Amazon ECS Container Insights 指標](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Container-Insights-metrics-enhanced-EKS.html#Container-Insights-metrics-EFA)。