

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

# 使用 CloudWatch 指標監控用量
<a name="CacheMetrics"></a>

ElastiCache 提供指標，可讓您監控您的叢集。您可以透過 CloudWatch 存取這些指標。如需 CloudWatch 的詳細資訊，請參閱 [CloudWatch 說明文件](https://aws.amazon.com/documentation/cloudwatch/)。

ElastiCache 提供主機層級指標 (例如 CPU 用量) 及快取引擎軟體的特定指標 (例如快取取得及快取遺失)。這些指標會以 60 秒的間隔針對每個快取節點進行測量和發佈。

**重要**  
您應該考慮在特定關鍵指標上設定 CloudWatch 警示，以便在叢集效能開始降低時收到通知。如需詳細資訊，請參閱本指南中的 [應監控哪些指標？](CacheMetrics.WhichShouldIMonitor.md)。

**Topics**
+ [主機層級指標](CacheMetrics.HostLevel.md)
+ [Valkey 和 Redis OSS 的指標](CacheMetrics.Redis.md)
+ [Memcached 的指標](CacheMetrics.Memcached.md)
+ [應監控哪些指標？](CacheMetrics.WhichShouldIMonitor.md)
+ [選擇指標統計資料與期間](CacheMetrics.ChoosingStatisticsAndPeriods.md)
+ [監控 CloudWatch 叢集和節點指標](CloudWatchMetrics.md)

# 主機層級指標
<a name="CacheMetrics.HostLevel"></a>

`AWS/ElastiCache` 命名空間包含下列個別快取節點的主機層級指標。每隔 60 秒會針對每個快取節點測量及發佈這些指標。

**另請參閱**
+ [Valkey 和 Redis OSS 的指標](CacheMetrics.Redis.md)


| 指標 | 描述 | 單位 | 
| --- | --- | --- | 
| CPUUtilization |  整部主機的 CPU 使用率百分比。由於 Valkey 和 Redis OSS 是單執行緒，我們建議您監控具有 4 個或更多 vCPUs節點的 EngineCPUUtilization 指標。 |  百分比  | 
| CPUCreditBalance | 自執行個體啟動或開始後，累積獲得的 CPU 額度數量。如果是 T2 Standard，CPUCreditBalance 也包含已產生的啟動額度。 獲得額度後，額度會在額度餘額中累積，並在支付額度時，從額度餘額中移出。額度餘額有最大值限制，它取決於執行個體大小。到達限制之後，任何獲得的新額度都會遭到捨棄。如果是 T2 Standard，啟動額度不會計入此限制。 CPUCreditBalance 中的額度可供執行個體支付以大幅提升並超越基準 CPU 使用率。 CPU 額度指標僅提供 5 分鐘頻率。 這些指標不適用於 T2 高載效能執行個體。  | 額度 (vCPU-分鐘)  | 
| CPUCreditUsage | 執行個體為 CPU 使用率花費的 CPU 額度數量。一個 CPU 額度等於一個 vCPU 以 100% 使用率執行 1 分鐘，或同等的 vCPU、使用率與時間的組合 (例如，一個 vCPU 以 50% 使用率執行 2 分鐘，或兩個 vCPU 以 25% 使用率執行 2 分鐘)。 CPU 額度指標僅提供 5 分鐘頻率。如果您要指定大於 5 分鐘的期間，請使用總和統計數字代替平均統計數字。 這些指標不適用於 T2 高載效能執行個體。  | 額度 (vCPU-分鐘)  | 
| FreeableMemory  |  主機上可用的記憶體數量。這來自於 OS 報告為可用的 RAM、緩衝區和快取。 |  位元組  | 
| NetworkBytesIn |  主機已從網路讀取的位元組數。 |  位元組  | 
| NetworkBytesOut | 執行個體在所有網路界面上送出的位元組數目。 |  位元組  | 
| NetworkPacketsIn | 執行個體在所有網路界面上收到的封包數目。此指標識別單一執行個體上的傳入流量 (封包數目)。 | 計數  | 
| NetworkPacketsOut |  執行個體在所有網路界面上送出的封包數目。此指標識別單一執行個體上的傳出流量 (封包數目)。 | 計數  | 
| NetworkBandwidthInAllowanceExceeded | 因傳入的彙總頻寬超過執行個體的上限而排入佇列或丟棄的封包數目。 | 計數  | 
| NetworkConntrackAllowanceExceeded | 因為連線追蹤超過執行個體的上限且無法建立新的連線，而丟棄的封包數目。這可能會導致傳送或傳回執行個體流量的封包遺失。 | 計數  | 
| NetworkBandwidthOutAllowanceExceeded | 因傳出的彙總頻寬超過執行個體的上限而排入佇列或丟棄的封包數目。 | 計數  | 
| NetworkPacketsPerSecondAllowanceExceeded | 因雙向每秒封包數超過執行個體的上限而排入佇列或丟棄的封包數目。 | 計數  | 
| NetworkMaxBytesIn | 每分鐘接收位元組的每秒爆量上限。 | 位元組 | 
| NetworkMaxBytesOut  | 每分鐘傳輸位元組的每秒爆量上限。 | 位元組 | 
| NetworkMaxPacketsIn | 每分鐘每秒爆量接收封包的上限。 | 計數  | 
| NetworkMaxPacketsOut | 每分鐘傳輸封包的每秒爆量上限。 | 計數  | 
| SwapUsage |  主機已使用的交換空間的量。 |  位元組  | 

# Valkey 和 Redis OSS 的指標
<a name="CacheMetrics.Redis"></a>

`Amazon ElastiCache` 命名空間包含下列 Valkey 和 Redis OSS 指標。使用 Valkey 引擎時，這些指標相同。

除了 `ReplicationLag`、`SuccessfulWriteRequestLatency`、 `EngineCPUUtilization`和 之外`SuccessfulReadRequestLatency`，這些指標衍生自 **info**命令。每個指標都是在快取模式層級進行計算。

如需 **info**命令的完整文件，請參閱 https：//[http://valkey.io/commands/info](https://valkey.io/commands/info)。

**另請參閱**
+ [主機層級指標](CacheMetrics.HostLevel.md)

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/AmazonElastiCache/latest/dg/CacheMetrics.Redis.html)

**EngineCPUUtilization 可用性**  
AWS下列區域適用於所有支援的節點類型。


| 區域 | 區域名稱 | 
| --- | --- | 
| us-east-2 | 美國東部 (俄亥俄) | 
| us-east-1 | 美國東部 (維吉尼亞北部) | 
| us-west-1 | 美國西部 (加利佛尼亞北部) | 
| us-west-2 | 美國西部 (奧勒岡) | 
| ap-northeast-1 | 亞太地區 (東京) | 
| ap-northeast-2 | 亞太地區 (首爾) | 
| ap-northeast-3 | 亞太地區 (大阪) | 
| ap-east-1 | 亞太地區 (香港) | 
| ap-south-1 | Asia Pacific (Mumbai) | 
| ap-southeast-1 | 亞太地區 (新加坡) | 
| ap-southeast-2 | 亞太地區 (悉尼) | 
| ap-southeast-3 | 亞太地區 (雅加達) | 
| ca-central-1 | 加拿大 (中部) | 
| cn-north-1 | 中國 (北京) | 
| cn-northwest-2 | 中國 (寧夏) | 
| me-south-1 | Middle East (Bahrain) | 
| eu-central-1 | 歐洲 (法蘭克福) | 
| eu-west-1 | 歐洲 (愛爾蘭) | 
| eu-west-2 | 歐洲 (倫敦) | 
| eu-west-3 | 歐洲 (巴黎) | 
| eu-south-1 | 歐洲 (米蘭) | 
| af-south-1 | 非洲 (開普敦) | 
| eu-north-1 | 歐洲 (斯德哥爾摩) | 
| sa-east-1 | 南美洲 (聖保羅) | 
| us-gov-west-1 | AWS GovCloud （美國西部） | 
| us-gov-east-1 | AWS GovCloud （美國東部） | 

這些是來自 **info commandstats** 的特定命令類型彙整。commandstats 區段提供以命令類型為基礎的統計資料，包括呼叫次數、這些命令所耗用的總 CPU 時間，以及每個命令執行所耗用的平均 CPU。對於每個命令類型，都會新增下列行：`cmdstat_XXX: calls=XXX,usec=XXX,usec_per_call=XXX`。

下列延遲指標使用 [INFO](https://valkey.io/commands/info) 的 commandstats 統計資料計算。它們的計算方式如下：`delta(usec)/delta(calls)`。`delta` 計算為一分鐘內的差異。延遲定義為 ElastiCache 處理命令所需要的 CPU 時間。請注意，對於使用資料分層的叢集，從 SSD 擷取項目所需要的時間並未包含在這些量測中。

如需可用命令的完整清單，請參閱 Valkey 文件中的[命令](https://valkey.io/commands)。


| 指標  | Description  | 單位  | 
| --- | --- | --- | 
| ClusterBasedCmds | 叢集類型命令總數。這透過加總對叢集 (cluster slot、 cluster info等） 採取行動的所有命令，衍生自 commandstats統計資料。 | 計數 | 
| ClusterBasedCmdsLatency | 以叢集為基礎之命令的延遲。 | 微秒 | 
| EvalBasedCmds | 以 eval 為基礎之命令的命令總數。這是透過加總 commandstats eval、 衍生自 統計資料evalsha。 | 計數 | 
| EvalBasedCmdsLatency | 以 eval 為基礎之命令的延遲。 | 微秒 | 
| GeoSpatialBasedCmds | 以 geospatial- 為基礎的之命令的命令總數。這是衍生自 commandstats 統計資料。加總了下列 geo 類型的所有命令而得出：geoadd、geodist、geohash、geopos、georadius 及 georadiusbymember。 | 計數 | 
| GeoSpatialBasedCmdsLatency | 以 geospatial 為基礎之命令的延遲。 | 微秒 | 
| GetTypeCmds | read-only 類型命令的總數。這是透過加總所有read-only類型命令 commandstats (get、hget、lrange、 scard等） 衍生自 統計資料。 | 計數 | 
|  GetTypeCmdsLatency |  讀取命令的延遲。 | 微秒 | 
| HashBasedCmds | 雜湊類型命令總數。這透過加總對一或多個雜湊 (hget、hkeys、hdel、 等） hvals執行動作的所有命令，衍生自 commandstats統計資料。 | 計數 | 
|  HashBasedCmdsLatency |  以 hash 為基礎之命令的延遲。 | 微秒 | 
| HyperLogLogBasedCmds | 以 HyperLogLog 為基礎的命令總數。這透過加總所有pf類型的命令 (pfadd、pfmerge、 pfcount等），衍生自 commandstats統計資料。 | 計數 | 
|  HyperLogLogBasedCmdsLatency |  以 HyperLogLog 為基礎之命令的延遲。 | 微秒 | 
| JsonBasedCmds | JSON 命令的總數，包括讀取和寫入命令。這透過加總對 JSON commandstats 金鑰作用的所有 JSON 命令，衍生自 統計資料。 | 計數 | 
| JsonBasedCmdsLatency | 所有 JSON 命令的延遲，包括讀取和寫入命令。 | 微秒 | 
| JsonBasedGetCmds | JSON 唯讀命令的總數。這透過加總對 JSON commandstats 金鑰作用的所有 JSON 讀取命令，衍生自 統計資料。 | 計數 | 
| JsonBasedGetCmdsLatency | JSON 唯讀命令的延遲。 | 微秒 | 
| JsonBasedSetCmds | JSON 寫入命令的總數。這透過加總對 JSON commandstats 金鑰作用的所有 JSON 寫入命令，衍生自 統計資料。 | 計數 | 
| JsonBasedSetCmdsLatency | JSON 寫入命令的延遲。 | 微秒 | 
| KeyBasedCmds | 金鑰類型命令總數。這透過加總在多個資料結構 (del、rename、 等） expire中對一或多個索引鍵執行動作的所有命令，衍生自 commandstats統計資料。 | 計數 | 
|  KeyBasedCmdsLatency |  以 key 為基礎之命令的延遲。 | 微秒 | 
| ListBasedCmds | 清單類型命令總數。這透過加總對一或多個清單 (lindex、lrange、ltrim、 等） lpush執行動作的所有命令，衍生自 commandstats統計資料。 | 計數 | 
|  ListBasedCmdsLatency |  以 list 為基礎之命令的延遲。 | 微秒 | 
| NonKeyTypeCmds | 非金鑰型命令的總數。這透過加總所有不對金鑰採取行動的命令，例如 acldbsize或 ，衍生自 commandstats統計資料info。 | 計數 | 
| NonKeyTypeCmdsLatency | 非金鑰型命令的延遲。 | 微秒 | 
| PubSubBasedCmds | pub/sub 功能的命令總數。這透過加總用於 pub/sub 功能的所有命令，衍生自commandstats統計資料：psubscribe、publish、pubsub、punsubscribessubscribe、sunsubscribe、spublish、 subscribe和 unsubscribe。 | 計數 | 
| PubSubBasedCmdsLatency | 以 pub/sub 為基礎之命令的延遲。 | 微秒 | 
| SetBasedCmds | 集合類型命令總數。這透過加總對一或多個集合 (scard、sdiff、sunion、 等） sadd執行動作的所有命令，衍生自 commandstats統計資料。 | 計數 | 
|  SetBasedCmdsLatency |  以 set 為基礎之命令的延遲。 | 微秒 | 
| SetTypeCmds | write 類型命令的總數。這透過加總在資料 (set、hset、lpop、 等） sadd上操作的所有命令mutative類型，衍生自 commandstats統計資料。 | 計數 | 
|  SetTypeCmdsLatency |  寫入命令的延遲。 | 微秒 | 
| SortedSetBasedCmds | 有序集合類型命令總數。這透過加總對一或多個已排序集合 (zcount、zrange、zadd、 等） zrank執行動作的所有命令，衍生自 commandstats統計資料。 | 計數 | 
|  SortedSetBasedCmdsLatency |  以 sorted 為基礎之命令的延遲。 | 微秒 | 
| StringBasedCmds | 字串類型命令總數。這透過加總對一或多個字串 (strlen、setrange、 等） setex執行動作的所有命令，衍生自 commandstats統計資料。 | 計數 | 
|  StringBasedCmdsLatency |  以 string 為基礎之命令延遲。 | 微秒 | 
| StreamBasedCmds | 串流類型命令總數。這透過加總對一或多個串流資料類型 (xrange、xlen、xdel、 等） xadd執行動作的所有命令，衍生自 commandstats統計資料。 | 計數 | 
|  StreamBasedCmdsLatency |  以 stream 為基礎之命令的延遲。 | 微秒 | 
| SearchBasedCmds | 搜尋命令的總數，包括讀取和寫入命令。這透過加總所有搜尋命令，衍生自 commandstats 統計資料。 | 計數 | 
| SearchBasedCmdsLatency | 所有搜尋命令的延遲，包括讀取和寫入命令。 | 微秒 | 
| SearchBasedGetCmds | 搜尋唯讀命令的總數。這是透過加總所有搜尋讀取命令，衍生自 commandstats 統計資料。 | 計數 | 
| SearchBasedGetCmdsLatency | 搜尋唯讀命令的延遲。 | 微秒 | 
| SearchBasedSetCmds | 搜尋寫入命令的總數。這是透過加總所有搜尋寫入命令，衍生自 commandstats 統計資料。 | 計數 | 
| SearchBasedSetCmdsLatency | 搜尋寫入命令的延遲。 | 微秒 | 

# Memcached 的指標
<a name="CacheMetrics.Memcached"></a>

`AWS/ElastiCache` 命名空間包含下列 Memcached 指標。

 AWS/ElastiCache 命名空間包含下列衍生自 Memcached stats 命令的指標。每個指標都是在快取模式層級進行計算。

**另請參閱**
+ [主機層級指標](CacheMetrics.HostLevel.md)


| 指標  | 描述  | 單位  | 
| --- | --- | --- | 
| BytesReadIntoMemcached | 快取節點從網路讀取的位元組數。 | 位元組 | 
| BytesUsedForCacheItems | 用於存放快取項目的位元組數。 | 位元組 | 
| BytesWrittenOutFromMemcached | 快取節點寫入至網路的位元組數。 | 位元組 | 
| CasBadval | 快取已接收到且 Cas 值與已儲存的 Cas 值不匹配的 CAS (檢查與設定) 請求的數量。 | 計數 | 
| CasHits | 快取已接收到，其請求的金鑰已找到且 Cas 值匹配的 Cas 請求的數量。 | 計數 | 
| CasMisses | 快取已接收到其請求的金鑰未找到的 Cas 請求的數量。  | 計數 | 
| CmdFlush | 快取已接收到的 flush 命令的數量。 | 計數 | 
| CmdGet | 快取已接收到的 get 命令的數量。 | 計數 | 
| CmdSet | 快取接收到的 set 命令數量。 | 計數 | 
| CurrConnections | 即時連接至快取的連接數量計數。ElastiCache 使用 2 到 3 個連線來監控叢集。 除了以上之外，memcached 會建立一些內部連線，等於用於節點類型的兩倍執行緒。各種節點類型的執行緒計數，可於 `Nodetype Specific Parameters` 適用的參數群組中查看。 連線總數是用戶端連線、監控的連線和以上提及的內部連線的總和。  | 計數 | 
| CurrItems | 目前儲存於快取的項目數量計數。 | 計數 | 
| DecrHits | 在請求的金鑰已找到的情況下，快取接收到的減少請求的數量。 | 計數 | 
| DecrMisses | 在請求的金鑰未找到的情況下，快取接收到的減少請求的數量。 | 計數 | 
| DeleteHits | 在請求的金鑰已找到的情況下，快取接收到的刪除請求的數量。 | 計數 | 
| DeleteMisses | 在請求的金鑰未找到的情況下，快取接收到的刪除請求的數量。 | 計數 | 
| Evictions | 快取已移除以提供空間給新的寫入的未逾期項目的數量。 | 計數 | 
| GetHits | 在請求的金鑰已找到的情況下，快取接收到的取得請求的數量。 | 計數 | 
| GetMisses | 快取已接收到其請求的金鑰未找到的取得請求的數量。 | 計數 | 
| IncrHits | 在請求的金鑰已找到的情況下，快取接收到的增加請求的數量。 | 計數 | 
| IncrMisses | 在請求的金鑰未找到的情況下，快取接收到的增加請求的數量。 | 計數 | 
| Reclaimed | 快取已移除以提供空間給新的寫入的逾期項目的數量。 | 計數 | 

針對 Memcached 1.4.14 提供以下額外的指標。


| 指標  | 描述  | 單位  | 
| --- | --- | --- | 
| BytesUsedForHash | 雜湊表目前使用的位元組數量。 | 位元組 | 
| CmdConfigGet | 累積的 config get 請求的數量。 | 計數 | 
| CmdConfigSet | 累積的 config set 請求的數量。 | 計數 | 
| CmdTouch | 累積的 touch 請求的數量。 | 計數 | 
| CurrConfig | 目前已儲存的組態的數量。 | 計數 | 
| EvictedUnfetched | 從最近最少使用且在設定後皆未被碰觸的快取 (LRU) 移出的有效項目的數量。 | 計數 | 
| ExpiredUnfetched | 從設定後皆未被碰觸的 LRU 回收的逾期項目的數量。 | 計數 | 
| SlabsMoved | 已移除的 slab 頁面的總數。 | 計數 | 
| TouchHits | 已被碰觸並賦予新的過期時間的金鑰的數量。 | 計數 | 
| TouchMisses | 已被碰觸但未被找到的項目的數量。 | 計數 | 

 AWS/ElastiCache 命名空間包含下列計算的快取層級指標。


| 指標  | 描述  | 單位  | 
| --- | --- | --- | 
| NewConnections | 快取已接收到的新連線的數量。這是衍伸自藉由記錄 total\$1connections 在一段期間內的變更而獲得的 memcached total\$1connections 統計資訊。由於為 ElastiCache 保留連線，因此這一律至少為 1。 | 計數 | 
| NewItems | 快取已儲存的新項目的數量。這是衍伸自藉由記錄 total\$1items 在一段期間內的變更而獲得的 memcached total\$1items 統計資訊。 | 計數 | 
| UnusedMemory | 未被資料使用的記憶體量。這是衍伸自 Memcached 統計資訊 limit\$1maxbytes 和藉由減去 limit\$1maxbytes 位元組而獲得的。 由於除了資料會使用記憶體之外，Memcached 額外負荷也會使用記憶體，因此不應將 UnusedMemory 視為可供其他資料使用的記憶體量。即使您還有一些未使用的記憶體，也可能會遇到被移出的情形。 如需詳細資訊，請參閱 [Memcached 項目記憶體使用量](https://web.archive.org/web/20190422040715/https://www.deplication.net/2016/02/memcached-item-memory-usage/)。  | 位元組 | 

# 應監控哪些指標？
<a name="CacheMetrics.WhichShouldIMonitor"></a>

以下 CloudWatch 指標可提供 ElastiCache 效能的深入分析。在大多數的案例中，我們建議您為這些指標設定 CloudWatch 警示，讓您可以在發生效能問題前先採取修正動作。

**Topics**
+ [CPUUtilization](#metrics-cpu-utilization)
+ [EngineCPUUtilization](#metrics-engine-cpu-utilization)
+ [SwapUsage (Valkey 和 Redis OSS)](#metrics-swap-usage)
+ [移出](#metrics-evictions)
+ [CurrConnections](#metrics-curr-connections)
+ [記憶體 (Valkey 和 Redis OSS)](#metrics-memory)
+ [網路](#metrics-network)
+ [延遲](#metrics-latency)
+ [複寫](#metrics-replication)
+ [流量管理 (Valkey 和 Redis OSS)](#traffic-management)

## CPUUtilization
<a name="metrics-cpu-utilization"></a>

此為主機層級指標，以百分比報告。如需詳細資訊，請參閱[主機層級指標](CacheMetrics.HostLevel.md)。

**Valkey 和 Redis OSS**

 對於具有 2 個或以下 vCPU 的小型節點類型，請使用 `CPUUtilization ` 指標來監控工作負載。

一般而言，我們建議您將閾值設為您可用 CPU 的 90%。由於 Valkey 和 Redis OSS 都是單執行緒，因此實際閾值應該計算為節點總容量的一小部分。例如，假設您使用擁有二核心的節點類型。在此情況下，CPUUtilization 的閾值將為 90/2 或 45%。

您將需要根據您所使用快取節點中的核心數，來判斷您自己的閾值。如果您超過此閾值，且主要工作負載來自讀取請求，請新增僅供讀取複本來擴展叢集。若主要工作負載是來自寫入請求，取決於您的叢集組態，我們建議您：
+ **Valkey 或 Redis OSS （停用叢集模式） 叢集：**使用較大的快取執行個體類型擴展。
+ **Valkey 或 Redis OSS （啟用叢集模式） 叢集：**新增更多碎片，將寫入工作負載分散到更多主節點。

**提示**  
與其使用主機層級指標 `CPUUtilization`，Valkey 和 Redis OSS 使用者可以使用指標 `EngineCPUUtilization`，這會報告 Valkey 或 Redis OSS 引擎核心上的用量百分比。若要查看此指標是否在您的節點上可用，以及詳細資訊，請參閱 [Valkey 和 Redis OSS 的指標](CacheMetrics.Redis.md)。

對於具有 4vCPUs或更多的較大節點類型，您可能需要使用 `EngineCPUUtilization` 指標，該指標會報告 Valkey 或 Redis OSS 引擎核心上的用量百分比。若要查看此指標是否可在您的節點上使用，以及如需詳細資訊，請參閱 [Redis OSS 的指標](CacheMetrics.Redis.md)。

**Memcached**

因為 Memcached 為多執行緒，此指標可高達 90%。如果您超過此閾值，請使用較大的快取節點類型來擴展叢集，或新增更多快取節點來擴展叢集。

## EngineCPUUtilization
<a name="metrics-engine-cpu-utilization"></a>

對於具有 4vCPUs或更多的較大節點類型，您可能需要使用 `EngineCPUUtilization` 指標，該指標會報告 Redis OSS 引擎核心上的用量百分比。若要查看此指標是否可在您的節點上使用，以及如需詳細資訊，請參閱 [Valkey 和 Redis OSS 的指標](CacheMetrics.Redis.md)。

如需詳細資訊，請參閱[使用 Amazon CloudWatch 監控 Amazon ElastiCache for Redis OSS 最佳實務 Amazon CloudWatch](https://aws.amazon.com/blogs/database/monitoring-best-practices-with-amazon-elasticache-for-redis-using-amazon-cloudwatch/)的 **CPUs** 一節。

## SwapUsage (Valkey 和 Redis OSS)
<a name="metrics-swap-usage"></a>

此為主機層級指標，以位元組報告。如需詳細資訊，請參閱[主機層級指標](CacheMetrics.HostLevel.md)。

`FreeableMemory` CloudWatch 指標接近 0 (亦即低於 100MB) 或 `SwapUsage` 指標大於 `FreeableMemory` 指標表示節點處於記憶體壓力之下。如果發生此情況，請見下列主題：
+ [確保您有足夠的記憶體來建立 Valkey 或 Redis OSS 快照](BestPractices.BGSAVE.md)
+ [管理 Valkey 和 Redis OSS 的預留記憶體](redis-memory-management.md)

## 移出
<a name="metrics-evictions"></a>

此為快取引擎指標。建議您根據應用程式需求，親自判斷此指標的警示閾值。

如果您使用 Memcached 並超過您選擇的閾值，請使用較大的節點類型來擴展叢集，或新增更多節點來擴展叢集。

## CurrConnections
<a name="metrics-curr-connections"></a>

此為快取引擎指標。建議您根據應用程式需求，親自判斷此指標的警示閾值。

*CurrConnections* 的數字增加，可能表示您的應用程式發生問題。您需要調查應用程式行為才能處理此問題。

如需詳細資訊，請參閱[使用 Amazon CloudWatch 監控 Amazon ElastiCache for Redis OSS 最佳實務 Amazon CloudWatch](https://aws.amazon.com/blogs/database/monitoring-best-practices-with-amazon-elasticache-for-redis-using-amazon-cloudwatch/)的**連線**一節。

## 記憶體 (Valkey 和 Redis OSS)
<a name="metrics-memory"></a>

記憶體是 Valkey 和 Redis OSS 的核心層面。為避免資料遺失以及因應資料集的未來成長而調整，了解叢集的記憶體使用率是必要的。有關節點記憶體使用率的統計資料，請參閱 [INFO](https://valkey.io/commands/info) 命令的記憶體區段。

如需詳細資訊，請參閱[使用 Amazon CloudWatch 監控 Amazon ElastiCache for Redis OSS 最佳實務 Amazon CloudWatch](https://aws.amazon.com/blogs/database/monitoring-best-practices-with-amazon-elasticache-for-redis-using-amazon-cloudwatch/)的**記憶體**一節。

## 網路
<a name="metrics-network"></a>

叢集網路頻寬容量的決定因素之一，是您選取的節點類型。如需節點網路容量的詳細資訊，請參閱 [Amazon ElastiCache 定價](https://aws.amazon.com/elasticache/pricing/)。

如需詳細資訊，請參閱[使用 Amazon CloudWatch 監控 Amazon ElastiCache for Redis OSS 最佳實務 Amazon CloudWatch](https://aws.amazon.com/blogs/database/monitoring-best-practices-with-amazon-elasticache-for-redis-using-amazon-cloudwatch/)**的網路**一節。

## 延遲
<a name="metrics-latency"></a>

可根據所需的精細程度，以各種方式接近 ElastiCache for Valkey 執行個體的回應時間。造成 ElastiCache for Valkey 整體伺服器端回應時間的關鍵階段是命令預處理、命令執行和命令後處理。

 衍生自 Valkey [INFO](https://valkey.io/commands/info) 命令的命令特定延遲指標，例如 GetTypeCmdsLatency 和 SetTypeCmdsLatency 指標，特別著重於執行 Valkey 命令的核心命令邏輯。如果您的使用案例是判斷命令執行時間或每個資料結構的彙總延遲，這些指標會很有幫助。

ElastiCache for Valkey 引擎回應請求所需的延遲指標`SuccessfulWriteRequestLatency`和`SuccessfulReadRequestLatency`測量總時間。

**注意**  
在 Valkey 用戶端上啟用 CLIENT REPLY 的情況下使用 Valkey 管道時，可能會發生 `SuccessfulWriteRequestLatency`和 `SuccessfulReadRequestLatency`指標的膨脹值。Valkey pipeline 是一種透過一次發出多個命令來改善效能的技術，無需等待對每個個別命令的回應。為了避免膨脹值，建議您使用 [CLIENT REPLY OFF](https://valkey.io/commands/client-reply/) 將 Valkey 用戶端設定為管道命令。

如需詳細資訊，請參閱[使用 Amazon CloudWatch 監控 Amazon ElastiCache 最佳實務 Amazon CloudWatch](https://aws.amazon.com/blogs/database/monitoring-best-practices-with-amazon-elasticache-for-redis-using-amazon-cloudwatch/)的**延遲**一節。

## 複寫
<a name="metrics-replication"></a>

遭複寫的資料量可透過 `ReplicationBytes` 指標顯示。雖然此指標代表複寫群組上的寫入負載，但並沒有提供複寫運作狀態的深入分析。針對這個用途，您可以使用 `ReplicationLag` 指標。

如需詳細資訊，請參閱[使用 Amazon CloudWatch 監控 Amazon ElastiCache for Redis OSS 最佳實務 Amazon CloudWatch](https://aws.amazon.com/blogs/database/monitoring-best-practices-with-amazon-elasticache-for-redis-using-amazon-cloudwatch/)的**複寫**一節。

## 流量管理 (Valkey 和 Redis OSS)
<a name="traffic-management"></a>

 當傳送給節點的傳入命令超過 Valkey 或 Redis OSS 可處理的數目時，ElastiCache for Redis OSS 會自動管理節點的流量。這樣做是為了讓引擎保持最佳運作狀態和穩定性。

 若在節點上主動管理流量，則指標 `TrafficManagementActive` 會發出資料點 1。這表示節點的規模可能不足以因應所提供的工作負載。如果此指標長時間維持 1，請評估叢集，以決定是否需要縱向擴展或橫向擴展。

 如需詳細資訊，請參閱[指標](CacheMetrics.Redis.md)頁面上的 `TrafficManagementActive` 指標。

# 選擇指標統計資料與期間
<a name="CacheMetrics.ChoosingStatisticsAndPeriods"></a>

雖然 CloudWatch 允許您為每個指標選擇任何統計數字及期間，並非所有組合都有用。例如，CPUUtilization 的平均值 (Average)、最小值 (Minimum)、最大值 (Maximum) 統計資料相當有用，但總和 (Sum) 統計資料則否。

所有 ElastiCache 樣本都會針對個別快取節點在 60 秒期間進行發佈。針對任何 60 秒期間，快取節點指標僅會包含一個單一樣本。

如需如何擷取您快取節點指標的進一步資訊，請參閱[監控 CloudWatch 叢集和節點指標](CloudWatchMetrics.md)。

# 監控 CloudWatch 叢集和節點指標
<a name="CloudWatchMetrics"></a>

ElastiCache 已與 CloudWatch 整合，因此您可以收集各種指標。您可以使用 CloudWatch 來監控這些指標。

**注意**  
下列範例需使用 CloudWatch 命令列工具。如需 CloudWatch 和下載開發人員工具的詳細資訊，請參閱 [CloudWatch 產品頁面](https://aws.amazon.com/cloudwatch)。

下列程序說明如何使用 CloudWatch 來收集過去一小時叢集的儲存空間統計資料。

**注意**  
以下範例提供的 `StartTime` 和 `EndTime` 值僅做為說明之用。您必須將快取節點的開始和結束時間值替代為適合的值。

如需 ElastiCache 配額的相關資訊，請參閱適用於 ElastiCache 的 [AWS服務配額](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_elasticache)。

## 監控 CloudWatch 叢集和節點指標 (主控台)
<a name="CloudWatchMetrics.CON"></a>

 **為快取叢集收集 CPU 使用率統計資料** 

1. 登入AWS 管理主控台並開啟位於 https：//[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/) 的 ElastiCache 主控台。

1. 選取您要檢視其指標的快取節點。
**注意**  
選取 20 個以上的節點時，會停用主控台上的指標檢視。

   1. 在AWS管理主控台的**快取叢集**頁面上，按一下一或多個叢集的名稱。

      叢集的詳細資訊頁面隨即出現。

   1. 按一下視窗頂端的 **Nodes (節點)** 標籤。

   1. 在詳細資訊視窗上的 **Nodes (節點)** 標籤，選取您要檢視其指標的快取節點。

      主控台視窗底部會顯示可用的 CloudWatch 指標清單。

   1. 按一下 **CPU Utilization (CPU 使用率)** 指標。

      隨即開啟 CloudWatch 主控台，並顯示您選取的指標。若要變更顯示的指標，可以使用 **Statistic (統計數字)** 和 **Period (期間)** 下拉式清單方塊和 **Time Range (時間範圍)** 索引標籤。

## 使用 CloudWatch CLI 監控 CloudWatch 叢集和節點指標
<a name="CloudWatchMetrics.CLI"></a>

 **為快取叢集收集 CPU 使用率統計資料** 
+ 針對 Linux、macOS 或 Unix：

  ```
  aws cloudwatch get-metric-statistics \
      --namespace AWS/ElastiCache \
      --metric-name CPUUtilization \
      --dimensions='[{"Name":"CacheClusterId","Value":"test"},{"Name":"CacheNodeId","Value":"0001"}]' \					
      --statistics=Average \
      --start-time 2018-07-05T00:00:00 \
      --end-time 2018-07-06T00:00:00 \
      --period=3600
  ```

  針對 Windows：

  ```
  aws cloudwatch get-metric-statistics ^
      --namespace AWS/ElastiCache ^
      --metric-name CPUUtilization ^
      --dimensions='[{"Name":"CacheClusterId","Value":"test"},{"Name":"CacheNodeId","Value":"0001"}]' ^
      --statistics=Average ^
      --start-time 2018-07-05T00:00:00 ^
      --end-time 2018-07-06T00:00:00 ^
      --period=3600
  ```

## 使用 CloudWatch API 監控 CloudWatch 叢集和節點指標
<a name="CloudWatchMetrics.API"></a>

 **為快取叢集收集 CPU 使用率統計資料** 
+ 使用下列參數呼叫 CloudWatch API `GetMetricStatistics` (請注意，顯示的開始和結束時間僅為範例；您必須將其替代為適當的開始和結束時間)：
  + `Statistics.member.1``=Average`
  + `Namespace``=AWS/ElastiCache`
  + `StartTime``=2013-07-05T00:00:00`
  + `EndTime``=2013-07-06T00:00:00`
  + `Period``=60`
  + `MeasureName``=CPUUtilization`
  + `Dimensions``=CacheClusterId=mycachecluster,CacheNodeId=0002`  
**Example**  

  ```
   1. http://monitoring.amazonaws.com/
   2.     ?Action=GetMetricStatistics
   3.     &SignatureVersion=4
   4.     &Version=2014-12-01
   5.     &StartTime=2018-07-05T00:00:00
   6.     &EndTime=2018-07-06T23:59:00
   7.     &Period=3600
   8.     &Statistics.member.1=Average
   9.     &Dimensions.member.1="CacheClusterId=mycachecluster"
  10.     &Dimensions.member.2="CacheNodeId=0002"
  11.     &Namespace=&AWS;/ElastiCache
  12.     &MeasureName=CPUUtilization						
  13.     &Timestamp=2018-07-07T17%3A48%3A21.746Z
  14.     &AWS;AccessKeyId=<&AWS; Access Key ID>
  15.     &Signature=<Signature>
  ```