客戶端:ClientWrite - Amazon Aurora

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

客戶端:ClientWrite

Client:ClientWrite 事件表示 Aurora PostgreSQL 正在等待將資料寫入用戶端。

支援的引擎版本

Aurora PostgreSQL 第 10 版及更新版本支援此等待事件資訊。

Context

用戶端程序必須先讀取從 Aurora PostgreSQL 資料庫叢集收到的所有資料,叢集才能傳送更多資料。叢集將更多資料傳送至用戶端之前等待的時間是 Client:ClientWrite 事件。

Aurora PostgreSQL 資料庫叢集與用戶端之間的網路輸送量減少可能造成此事件。用戶端的 CPU 壓力和網路飽和也可能造成此事件。CPU 壓力表示 CPU 耗盡,但有任務正在等待 CPU 時間。網路飽和表示資料庫與用戶端之間的網路傳送太多資料,應付不來。

等待變多的可能原因

Client:ClientWrite 事件出現在最常等待名單中的常見原因包括:

網路延遲較久

Aurora PostgreSQL 資料庫叢集與用戶端之間的網路延遲可能變長。網路延遲較久會導致用戶端需要更多時間來接收資料。

用戶端的負載增加

用戶端可能面臨 CPU 壓力或網路飽和。用戶端的負載增加會延遲從 Aurora PostgreSQL 資料庫叢集接收資料。

傳送大量資料給用戶端

Aurora PostgreSQL 資料庫叢集可能將大量資料傳送至用戶端。用戶端可能來不及接收叢集傳送的資料。例如,複製大型資料表這種活動可能導致 Client:ClientWrite 事件增加。

動作

根據等待事件的原因,我們會建議不同的動作。

將用戶端放在與叢集相同的可用區域和 VPC 子網路中

若要縮短網路延遲並增加網路輸送量,請將用戶端放在與 Aurora PostgreSQL 資料庫叢集相同的可用區域和 Virtual Private Cloud (VPC) 子網路中。

使用最新一代的執行個體

在某些情況下,您使用的資料庫執行個體類別可能不支援 Jumbo Frame。如果您在 Amazon EC2 上執行應用程式,請考慮為用戶端使用最新一代的執行個體。此外,在用戶端作業系統上設定最大傳輸單位 (MTU)。此技術可以減少網路往返次數並增加網路輸送量。如需詳細資訊,請參閱 Amazon EC2 使用者指南中的巨型框架 (9001 MTU)

如需資料庫執行個體類別的相關資訊,請參閱 Amazon Aurora 數據庫實例類。若要決定等同於 Amazon EC2 執行個體類型的資料庫執行個體類別,請在 Amazon EC2 執行個體類型名稱前面加上 db.。例如,r5.8xlarge Amazon EC2 執行個體等同於 db.r5.8xlarge 資料庫執行個體類別。

減少傳送至用戶端的資料量

可能的話,請調整應用程式,以減少 Aurora PostgreSQL 資料庫叢集傳送至用戶端的資料量。這樣調整可以減輕用戶端的 CPU 和網路爭用情形。

擴展用戶端

使用 Amazon CloudWatch 或其他主機指標,判斷您的用戶端目前是否受到 CPU 或網路頻寬的限制,或兩者都受到限制。如果用戶端受到限制,請相應地擴展用戶端。