Bagikan melalui


Tarif dan batas penggunaan

Layanan Azure DevOps

Layanan Azure DevOps menggunakan multi-penyewaan untuk mengurangi biaya dan meningkatkan performa. Desain ini dapat menyebabkan masalah performa atau pemadaman ketika pengguna lain dari sumber daya bersama mengalami lonjakan konsumsi. Untuk membantu mencegah hal ini, Azure DevOps membatasi sumber daya yang dapat digunakan setiap pengguna, dan jumlah permintaan yang dapat mereka buat untuk perintah tertentu. Jika Anda melebihi batas ini, permintaan di masa mendatang dapat ditunda atau diblokir.

Pelajari lebih lanjut di batas Git dan Praktik terbaik untuk menghindari mencapai batas tarif.

Batas konsumsi global

Azure DevOps memiliki batas konsumsi global yang menunda permintaan dari pengguna individu ketika sumber daya bersama berisiko kewalahan. Batas ini membantu menghindari pemadaman ketika sumber daya bersama hampir kewalahan. Pengguna individual biasanya mengalami permintaan yang tertunda hanya ketika salah satu insiden berikut terjadi:

  • Salah satu sumber daya bersama mereka berisiko kewalahan.
  • Penggunaan pribadi mereka melebihi 200 kali konsumsi pengguna umum dalam periode lima menit bergulir.

Penundaan tergantung pada tingkat konsumsi pengguna yang berkelanjutan. Penundaan berkisar dari beberapa milidetik per permintaan hingga 30 detik. Ketika konsumsi turun ke nol atau sumber daya tidak kewalahan, penundaan berhenti dalam waktu lima menit. Jika konsumsi tetap tinggi, penundaan dapat berlanjut tanpa batas waktu untuk melindungi sumber daya.

Ketika permintaan pengguna ditunda dengan jumlah yang signifikan, pengguna menerima email dan banner peringatan di web. Untuk akun layanan build dan lainnya tanpa alamat email, anggota grup Administrator Koleksi Proyek menerima email. Untuk mengetahui informasi selengkapnya, lihat Pemantauan penggunaan.

Ketika permintaan pengguna individu diblokir, pengguna menerima respons dengan kode HTTP 429 (terlalu banyak permintaan) dan pesan yang mirip dengan yang berikut ini:

TF400733: The request has been canceled: Request was blocked due to exceeding usage of resource <resource name> in namespace <namespace ID>.

Unit Throughput di Azure DevOps

Pengguna Azure DevOps menggunakan banyak sumber daya bersama, dan tingkat konsumsi tergantung pada faktor-faktor seperti:

  • Mengunggah sejumlah besar file ke kontrol versi, yang menempatkan beban pada database dan akun penyimpanan.
  • Menjalankan kueri item kerja yang kompleks, yang meningkatkan beban database berdasarkan jumlah item kerja yang sedang dicari.
  • Menjalankan build, yang mengunduh file dari kontrol versi dan menghasilkan output log.
  • Operasi umum, yang menggunakan CPU dan memori di berbagai bagian layanan.

Untuk mengukur aktivitas ini, Azure DevOps mengekspresikan konsumsi sumber daya di unit throughput Azure DevOps (TSTUs). TSTU adalah unit beban abstrak yang mewakili perpaduan sumber daya yang berbeda, termasuk:

  • Penggunaan database—diukur terutama melalui DTU Azure SQL Database.
  • Penggunaan komputasi—CPU, memori, dan I/O dari tingkat aplikasi dan agen pekerjaan.
  • Penggunaan penyimpanan—Bandwidth Azure Storage.

Nota

TSTU sengaja bersifat abstrak. Mereka menggabungkan konsumsi sumber daya di seluruh lapisan komputasi, penyimpanan, dan database dalam infrastruktur terdistribusi. Metrik yang mendasar (CPU, memori, I/O, DTU) tidak secara langsung diekspos atau bermakna sendiri. TSTUs menyediakan cara terpadu untuk mewakili beban, sehingga lebih mudah untuk mengelola dan memantau penggunaan tanpa mengekspos kompleksitas penuh komponen sumber daya individual. Anda tidak dapat menghitung TSTUs untuk suatu tindakan menggunakan rumus, tetapi Anda dapat melihat berapa banyak TSTUs yang digunakan oleh suatu operasi di halaman pemantauan penggunaan. Beberapa operasi, seperti kueri item kerja, bervariasi dalam konsumsi saat organisasi Anda tumbuh dan berubah, sehingga Anda mungkin perlu tolok ukur secara berkala agar tetap akurat.

Saat ini, TSTU berfokus terutama pada DTU Azure SQL Database karena database merupakan sumber daya bersama yang paling mungkin terkena dampak akibat konsumsi berlebihan.

  • Satu TSTU mewakili beban rata-rata yang dihasilkan oleh pengguna Azure DevOps umum selama lima menit.
  • Aktivitas pengguna normal dapat menghasilkan lonjakan 10 TSTUs atau kurang per lima menit.
  • Lonjakan yang lebih besar tetapi lebih jarang dapat mencapai hingga 100 TSTUs.
  • Batas global adalah 200 TSTUs dalam jendela lima menit geser apa pun.

Praktik terbaik

  • Hormati header Retry-After: Jika Anda menerimanya dalam respons, tunggu waktu yang ditentukan sebelum mengirim permintaan lain. Respons masih mengembalikan HTTP 200, sehingga logika coba lagi tidak diperlukan.
  • Pantau header X-RateLimit: Jika tersedia, lacak X-RateLimit-Remaining dan X-RateLimit-Limit untuk memperkirakan seberapa cepat Anda mendekati batas. Ini memungkinkan klien Anda memuluskan lonjakan permintaan dan menghindari penundaan paksa.

Nota

Identitas yang digunakan oleh alat dan aplikasi untuk diintegrasikan dengan Azure DevOps terkadang memerlukan tingkat dan batas penggunaan yang lebih tinggi di luar batas konsumsi yang diizinkan. Tingkatkan batas ini dengan menetapkan tingkat akses Paket Dasar + Pengujian ke identitas yang digunakan aplikasi Anda. Setelah Anda tidak lagi memerlukan batas tarif yang lebih tinggi, kembali ke tingkat akses sebelumnya. Anda dikenakan biaya untuk tingkat akses Dasar + Rencana Pengujian hanya selama durasi yang ditetapkan untuk identitas tersebut. Identitas yang sudah menetapkan langganan Visual Studio Enterprise tidak dapat ditetapkan tingkat akses Paket Dasar + Uji hingga Anda menghapus langganan.

Rantai Pengolahan

Pembatasan tarif berfungsi dengan cara yang sama untuk Azure Pipelines. Setiap alur adalah entitas individual, dan konsumsi sumber dayanya dilacak secara terpisah. Bahkan, jika agen build menggunakan hosting sendiri, agen build tersebut menghasilkan beban dengan mengkloning dan mengirim log.

Ada batas 200 TSTU untuk setiap saluran dalam jendela geser selama 5 menit. Batas ini cocok dengan batas konsumsi global untuk pengguna. Jika penundaan pembatasan tarif atau memblokir alur, Anda akan melihat pesan di log terlampir.

Pengalaman klien API

Ketika permintaan ditunda atau diblokir, Azure DevOps mengembalikan header respons untuk membantu klien API bereaksi. Meskipun tidak sepenuhnya standar, header ini secara luas sejalan dengan layanan populer lainnya.

Tabel berikut mencantumkan header yang tersedia dan apa artinya. Kecuali untuk X-RateLimit-Delay, semua header ini dikirim sebelum permintaan mulai tertunda. Desain ini memungkinkan klien secara proaktif memperlambat laju permintaan mereka.

Nama Header

Deskripsi


Retry-After

Header yang ditentukan oleh RFC 6585 dikirim untuk memberi tahu Anda berapa lama harus menunggu sebelum mengirim permintaan berikutnya agar tidak melebihi ambang batas deteksi. Unit: detik.


X-RateLimit-Resource

Header kustom yang menunjukkan layanan dan jenis ambang batas yang tercapai. Jenis ambang batas dan nama layanan mungkin bervariasi dari waktu ke waktu dan tanpa peringatan. Sebaiknya tampilkan string ini kepada manusia, tetapi tidak mengandalkannya untuk komputasi.


X-RateLimit-Delay

Berapa lama permintaan tertunda. Unit: detik dengan hingga tiga tempat desimal (milidetik).


X-RateLimit-Limit

Jumlah total TSTU yang diizinkan sebelum pemberlakuan penundaan.


X-RateLimit-Remaining

Jumlah TSTUs yang tersisa sebelum penundaan dimulai. Jika permintaan sudah tertunda atau diblokir, itu adalah 0.


X-RateLimit-Reset

Waktu ketika, jika semua konsumsi sumber daya segera berhenti, penggunaan yang dilacak kembali ke 0 TSTUs. Dinyatakan dalam waktu epoch Unix.


Pelacakan kerja, proses, & batas proyek

Azure DevOps membatasi jumlah proyek yang dapat Anda miliki di organisasi dan jumlah tim yang dapat Anda miliki di setiap proyek. Ada juga batasan untuk item kerja, kueri, backlog, papan tulis, dasbor, dan sebagainya. Untuk informasi selengkapnya, lihat Pelacakan kerja, proses, dan batas proyek.

Situs Wiki

Selain batas repositori yang biasa, file wiki dalam proyek bisa hingga 25 MB.

Koneksi layanan

Tidak ada batasan per proyek untuk membuat koneksi layanan. Namun, batasan mungkin diberlakukan melalui ID Microsoft Entra. Untuk informasi lebih lanjut, baca artikel berikut: