針對登錄效能進行疑難排解

本文可協助您針對 Azure 容器登錄效能可能會遇到的問題進行疑難解答。

徵兆

可能包含下列一或多個專案:

  • 使用 Docker CLI 提取或推送映像所需的時間超過預期
  • 將映像部署至 Azure Kubernetes Service 等服務所花費的時間超過預期
  • 您無法在預期的時間內完成大量並行提取或推送作業
  • 您會看到類似 HTTP 429 的錯誤 Too many requests
  • 異地復寫登錄中的提取或推送作業花費的時間超過預期,或推送失敗併發生錯誤 Error writing blobError writing manifest

原因

  • 您的網路連線速度可能會讓登錄作業變慢 - 解決方案
  • 用戶端上的影像層壓縮或擷取速度可能很慢 - 解決方案
  • 您在登錄服務層級或環境中達到設定的限制 - 解決方案
  • 您的異地復寫登錄在附近區域有複本 - 解決方案
  • 您正在從地理上遙遠的登錄複本提取 - 解決方案

如果您無法在這裡解決問題,請參閱 進階疑難解答後續步驟 以取得其他選項。

可能的解決方案

檢查預期的網路速度

檢查您的因特網上傳和下載速度,或使用 AzureSpeed 之類的工具來測試 從裝載登錄映射層的 Azure Blob 記憶體上傳下載

請根據支援的大小上限,以及登錄服務層級支援的下載或上傳頻寬,檢查映像大小。 如果您的登錄位於基本層或標準層,請考慮升級以改善效能。

如需其他服務的映射部署,請檢查登錄和目標所在的區域。 請考慮在相同或網路關閉區域中尋找登錄和部署目標,以改善效能。

相關連結:

檢查客戶端硬體

Docker 用戶端上的磁碟類型和 CPU 可能會影響在提取或推送作業中擷取或壓縮用戶端映像層的速度。 例如,硬碟上的圖層擷取所需的時間會比固態硬碟更長。 比較提取作業,以取得來自 Azure 容器登錄和公用登錄的類似映射,例如 Docker Hub。

檢閱已設定的限制

如果您同時將多個或多個多層映射推送或提取至登錄,請檢閱登錄服務層級支援的 ReadOps 和 WriteOps 限制。 如果您的登錄位於基本層或標準層,請考慮升級以增加限制。 也請洽詢您的網路提供者,瞭解許多並行作業可能發生的網路節流。

檢閱 Docker 精靈設定,以取得用戶端上每個推送或提取作業的並行上傳或下載上限。 視需要設定較高的限制。

由於每個映射層都需要個別的登錄讀取或寫入作業,因此請檢查映射中的圖層數目。 請考慮減少影像圖層數目的策略。

相關連結:

設定異地復寫登錄

將映像推送至異地復寫登錄的 Docker 用戶端,可能不會將所有映射層及其指令清單推送至單一複寫區域。 這種情況可能是因為 Azure 流量管理員 將登錄要求路由傳送至最接近網路復寫的登錄。 如果登錄有兩個附近的復寫區域,映射層和指令清單可以散發到兩個月臺,而且當驗證指令清單時推送作業會失敗。

若要在推送映像時將 DNS 解析最佳化至最接近的複本,請在與推送作業來源相同的 Azure 區域中設定異地複寫登錄,或在 Azure 外部工作時設定最接近的區域。

若要針對異地復寫登錄的作業進行疑難解答,您也可以暫時停用 流量管理員 路由至一或多個複寫。

相關連結:

設定異地復寫登錄的 DNS

如果異地復寫登錄的提取作業看起來很慢,用戶端上的 DNS 設定可能會解析為異地遙遠的 DNS 伺服器。 在此情況量管理員 可能是將要求路由傳送至靠近 DNS 伺服器的複本,但與客戶端遙遠。 執行 或 dig 之類的nslookup工具,以判斷 流量管理員 將登錄要求路由傳送至的複本。 例如:

nslookup myregistry.azurecr.io

潛在的解決方案是設定更接近的 DNS 伺服器。

相關連結:

進階疑難排解

如果您的登錄資源許可權允許, 請檢查登錄環境的健康情況。 如果報告錯誤,請 檢閱潛在解決方案的錯誤參考

如果在 登錄中啟用資源記錄 的收集,請檢閱 ContainterRegistryRepositoryEvents 記錄檔。 此記錄會儲存推送或提取事件等作業的資訊。 查詢存放庫層級作業失敗的記錄

相關連結:

下一步

如果您無法在這裡解決問題,請參閱下列選項。