Memecahkan masalah kinerja registri

Artikel ini membantu Anda memecahkan masalah yang mungkin Anda temui saat masuk ke registri kontainer Azure.

Gejala

Dapat mencakup satu atau lebih hal berikut:

  • Penarikan atau pendorongan gambar dengan Docker CLI membutuhkan waktu lebih lama dari yang diharapkan
  • Penyebaran gambar ke layanan seperti Azure Kubernetes Service membutuhkan waktu lebih lama dari yang diharapkan
  • Anda tidak dapat menyelesaikan sejumlah besar operasi tarik atau dorong bersamaan dalam waktu yang diharapkan
  • Anda melihat kesalahan HTTP 429 yang mirip dengan Too many requests
  • Operasi tarik atau dorong dalam registri yang direplikasi secara geografis membutuhkan waktu lebih lama dari yang diperkirakan, atau pendorongan gagal dengan kesalahan Error writing blob atau Error writing manifest

Penyebab

  • Kecepatan koneksi jaringan Anda dapat memperlambat operasi registri - solusi
  • Kompresi lapisan gambar atau ekstraksi dari klien mungkin lambat - solusi
  • Anda mencapai batas yang dikonfigurasi di tingkat layanan registri atau lingkungan Anda - solusi
  • Registri replikasi geografis Anda memiliki replika di wilayah terdekat - solusi
  • Anda menarik dari replika registri yang jauh secara geografis - solusi

Jika masalah Anda tiidak teratasi di sini, lihat Pemecahan masalah tingkat lanjut dan Langkah berikutnya untuk opsi lainnya.

Potensi solusi

Periksa kecepatan jaringan yang diinginkan

Periksa kecepatan pengunggahan dan pengunduhan internet Anda, atau gunakan alat seperti AzureSpeed untuk menguji pengunggahan dan pengunduhan dari penyimpanan blob Azure, yang meng-hosting lapisan gambar registri.

Periksa ukuran gambar Anda terhadap ukuran maksimum yang didukung dan bandwidth unduhan atau unggahan yang didukung untuk tingkat layanan registri Anda. Jika registri Anda berada di tingkat Dasar atau Standar, pertimbangkan untuk memutakhirkannya untuk meningkatkan kinerja.

Untuk penyebaran gambar ke layanan lain, periksa wilayah tempat registri dan target berada. Pertimbangkan untuk menemukan registri dan target penyebaran di wilayah yang sama atau dekat jaringan untuk meningkatkan kinerja.

Tautan terkait:

Memeriksa perangkat keras klien

Jenis disk dan CPU pada klien docker dapat mempengaruhi kecepatan mengekstrak atau mengompresi lapisan gambar pada klien sebagai bagian dari operasi penarikan atau pendorongan. Misalnya, ekstraksi lapisan pada hard disk drive akan memakan waktu lebih lama dibanding solid-state disk (SSD). Bandingkan operasi penarikan untuk gambar yang sebanding dari registri kontainer Azure Anda dan registri publik seperti Docker Hub.

Meninjau batas yang dikonfigurasi

Jika Anda secara bersamaan mendorong atau menarik beberapa atau banyak gambar berlapis ke registri Anda, tinjau batas ReadOps dan WriteOps yang didukung untuk tingkat layanan registri. Jika registri Anda berada di tingkat Dasar atau Standar, pertimbangkan untuk memutakhirkannya untuk meningkatkan batasan. Periksa juga dengan penyedia jaringan Anda tentang pembatasan jaringan yang mungkin terjadi dengan banyak operasi bersamaan.

Tinjau konfigurasi daemon Docker Anda untuk unggahan atau unduhan maksimum secara bersamaan untuk setiap operasi pendorongan atau penarikan pada klien. Konfigurasikan batas yang lebih tinggi jika diperlukan.

Karena setiap lapisan gambar memerlukan registri terpisah yang membaca atau menulis operasi, periksa jumlah lapisan dalam gambar Anda. Pertimbangkan strategi untuk mengurangi jumlah lapisan gambar.

Tautan terkait:

Mengkonfigurasi registri yang direplikasi secara geografis

Klien Docker yang mendorong gambar ke registri yang direplikasi secara geografis mungkin tidak mendorong semua lapisan gambar dan manifesnya ke satu wilayah yang direplikasi. Situasi ini dapat terjadi karena Azure Traffic Manager merutekan permintaan registri ke registri yang paling dekat dengan jaringan yang direplikasi. Jika registri memiliki dua wilayah replikasi terdekat, lapisan gambar dan manifes dapat didistribusikan ke dua situs, dan operasi pendorongan gagal saat manifes divalidasi.

Untuk mengoptimalkan resolusi DNS ke replika terdekat saat mendorong gambar, konfigurasikan registri yang direplikasi secara geografis di wilayah Azure yang sama dengan sumber operasi pendorongan, atau wilayah terdekat saat bekerja di luar Azure.

Untuk memecahkan masalah operasi dengan registri yang direplikasi secara geografis, Anda mungkin ingin menonaktifkan sementara perutean Traffic Manager untuk satu atau beberapa replikasi.

Tautan terkait:

Mengkonfigurasi DNS untuk registri yang direplikasi secara geografis

Jika operasi penarikan dari registri yang direplikasi geografis terasa lambat, konfigurasi DNS pada klien mungkin dilakukan di server DNS yang jauh secara geografis. Dalam hal ini, Traffic Manager mungkin merutekan permintaan ke replika yang dekat dengan server DNS tetapi jauh dari klien. Jalankan alat seperti nslookup atau dig (di Linux) untuk menentukan replika tempat Traffic Manager merutekan permintaan registri. Misalnya:

nslookup myregistry.azurecr.io

Solusi potensialnya adalah mengkonfigurasi server DNS yang lebih dekat.

Tautan terkait:

Pemecahan masalah tingkat lanjut

Jika izin Anda untuk sumber daya registri memungkinkan, periksa kesehatan lingkungan registri. Jika kesalahan dilaporkan, tinjau referensi kesalahan untuk mendapatkan solusi potensial.

Jika kumpulan log sumber daya diaktifkan di registri, tinjau log ContainterRegistryLoginEvents. Log ini menyimpan informasi untuk operasi seperti pendorongan atau penarikan peristiwa. Kueri log untuk kegagalan operasi tingkat repositori.

Tautan terkait:

Langkah berikutnya

Jika masalah Anda tidak terselesaikan di sini, lihat opsi berikut.