Bagikan melalui


Cara memilih antara throughput yang tersedia secara standar (manual) dan secara skala otomatis

BERLAKU UNTUK: NoSQL MongoDB Cassandra Gremlin Meja

Azure Cosmos DB mendukung dua jenis atau penawaran throughput yang disediakan: standar (manual) dan skala otomatis. Kedua jenis throughput cocok untuk beban kerja yang sangat penting yang membutuhkan kinerja tinggi dan berskala besar, serta didukung oleh SLA Azure Cosmos DB yang sama pada throughput, ketersediaan, latensi, dan konsistensi.

Artikel ini menjelaskan cara memilih antara throughput yang disediakan dengan skala standar (manual) dan skala otomatis untuk beban kerja Anda.

Gambaran umum jenis throughput yang tersedia

Sebelum menyelami perbedaan antara standar (manual) dan skala otomatis, penting untuk terlebih dahulu memahami cara kerja throughput yang tersedia di Azure Cosmos DB.

Saat Anda menggunakan throughput yang disediakan, Anda menetapkan throughput yang diukur dalam unit permintaan per detik (RU/s) yang diperlukan untuk beban kerja Anda. Layanan ini provisikan kapasitas yang dibutuhkan untuk mendukung persyaratan throughput. Operasi database terhadap layanan, seperti membaca, menulis, dan kueri mengonsumsi sejumlah unit permintaan (RUs). Pelajari lebih lanjut tentang unit permintaan.

Tabel berikut ini memperlihatkan perbandingan tingkat tinggi antara standar (manual) dan skala otomatis.

Deskripsi Standar (manual/tangan) Penyesuaian Otomatis
Paling cocok untuk Beban kerja dengan lalu lintas yang stabil atau dapat diprediksi Beban kerja dengan lalu lintas variabel atau tidak dapat diprediksi. Lihat kasus penggunaan skala otomatis.
Cara kerjanya Anda menyediakan sejumlah T RU/s yang statis dari waktu ke waktu, kecuali jika Anda mengubahnya secara manual. Setiap detik, Anda dapat menggunakan throughput hingga T RU/s.

Misalnya, jika Anda menetapkan standar (manual) 400 RU/s, throughput akan tetap di 400 RU/s.
Anda menetapkan RU/s tertinggi, atau maksimum Tmax yang tidak Anda inginkan untuk melebihi sistem. Sistem secara otomatis menskalakan throughput T sedemikian rupa sehingga0.1* Tmax <= T <= Tmax.

Misalnya, jika Anda menetapkan RU/s maksimum skala otomatis sebesar 4000 RU/s, sistem akan menskalakan antara 400 - 4000 RU/s.
Kapan harus menggunakannya Anda ingin mengelola kapasitas throughput (RU/s) secara manual dan menskalakan diri Anda sendiri.

Anda memiliki penggunaan RU/s yang tersedia secara tinggi dan konsisten. Dari semua jam dalam sebulan, jika Anda menetapkan provisioning RU/s T dan menggunakan jumlah penuh untuk 66% dari jam atau lebih, diperkirakan Anda akan menghemat dengan menggunakan RU/s provisioning standar (manual).

Ini didasarkan pada perbandingan antara pengaturan T dalam standar (manual) dan jumlah yang sama Tmax dalam skala otomatis.
Anda ingin Azure Cosmos DB mengelola kapasitas dan skala throughput (RU/s), berdasarkan penggunaan.

Anda memiliki penggunaan RU/s yang bersifat variabel atau sulit diprediksi. Dari semua jam dalam sebulan, jika Anda mengatur maksimum RU/s untuk skala otomatis Tmax dan menggunakan jumlah maksimum Tmax selama 66% jam atau kurang, diperkirakan Anda akan menghemat biaya dengan menggunakan skala otomatis.

Ini didasarkan pada perbandingan antara pengaturan autoscale Tmax dan jumlah yang sama T dalam throughput standar (manual).
Model tagihan Penagihan dilakukan per jam untuk RU/s yang disediakan, terlepas dari berapa banyak RU yang digunakan.

Contoh:
  • Penyediaan 400 RU/s
  • Jam 1: tidak ada permintaan
  • Jam 2: Permintaan senilai 400 RU/s


  • Untuk jam 1 dan 2, Anda akan ditagih 400 RU/s untuk kedua jam dengan tarif standar (manual).
    Penagihan dilakukan atas dasar per jam, berdasarkan RU/s tertinggi yang dicapai oleh sistem dalam satu jam.

    Contoh:
  • Penyediaan skala maksimum otomatis RU/s sebesar 4000 RU/s (berkisar antara 400 - 4000 RU/s)
  • Jam 1: sistem diskalakan hingga nilai tertinggi 3500 RU/s
  • Jam 2: sistem diturunkan skalanya hingga minimum 400 RU/s (selalu 10% dari Tmax), karena tidak ada penggunaan


  • Anda akan ditagih sebesar 3500 RU/s dalam jam 1, dan 400 RU/s pada jam 2 dengan tarif throughput yang disediakan secara otomatis. Tarif penyesuaian otomatis per RU/s adalah 1,5 kali tarif standar (manual).
    Apa yang terjadi jika Anda melebihi RU/s yang tersedia RU/s tetap statis pada apa yang disediakan. Setiap permintaan yang melebihi RU yang disediakan dalam satu detik akan dibatasi, dengan balasan yang merekomendasikan waktu untuk menunggu sebelum mencoba kembali. Anda dapat meningkatkan atau mengurangi RU/s secara manual jika diperlukan. Sistem akan menskalakan RU/s hingga RU/s maksimum skala otomatis. Setiap permintaan yang mengonsumsi lebih dari batas maksimum RU/s skala otomatis dalam satu detik akan dibatasi laju pengirimannya, dengan respons yang merekomendasikan durasi penundaan sebelum mencoba lagi.

    Memahami pola lalu lintas Anda

    Aplikasi baru

    Jika Anda membangun aplikasi baru dan belum mengetahui pola lalu lintasnya, Anda mungkin ingin memulai di titik masuk RU/s (atau RU/s minimum) untuk menghindari penyediaan berlebihan di awal. Atau, jika Anda memiliki aplikasi kecil yang tidak memerlukan skala tinggi, Anda mungkin ingin menetapkan batas minimum RU/s untuk mengoptimalkan biaya. Untuk aplikasi kecil dengan lalu lintas yang diharapkan rendah, Anda juga dapat mempertimbangkan mode kapasitas tanpa server.

    Baik Anda berencana menggunakan standar (manual) atau skala otomatis, inilah yang harus Anda pertimbangkan:

    Jika Anda provisikan RU/s standar (manual) di titik masuk 400 RU/s, Anda tidak akan dapat mengonsumsi di atas 400 RU/s, kecuali jika Anda mengubah throughput secara manual. Anda akan ditagih sebesar 400 RU/s pada tingkat laju throughput standar (manual) yang disediakan, per jam.

    Jika Anda memprovisikan throughput skala otomatis dengan RU/dtk maksimum 4000 RU/dtk, sumber daya akan diskalakan antara 400 hingga 4000 RU/dtk. Karena tingkat penagihan throughput skala otomatis per RU/s adalah 1,5x dari tarif standar (manual), selama jam-jam di mana sistem telah menurunkan skala hingga minimum 400 RU/s, tagihan Anda akan lebih tinggi daripada jika Anda menyediakan 400 RU/s secara manual. Namun, dengan skala otomatis, kapan saja, jika lalu lintas aplikasi Anda melonjak, Anda dapat mengonsumsi hingga 4000 RU/s tanpa tindakan pengguna yang diperlukan. Secara umum, Anda harus menimbang manfaat untuk dapat mengonsumsi hingga RU/s maks kapan saja dengan tingkat skala otomatis 1,5x.

    Gunakan kalkulator kapasitas Azure Cosmos DB untuk memperkirakan persyaratan throughput Anda.

    Aplikasi yang ada

    Jika Anda memiliki aplikasi yang sudah ada yang menggunakan throughput yang diatur secara manual (standar), Anda dapat menggunakan metrik Azure Monitor untuk menentukan apakah pola lalu lintas Anda cocok untuk peningkatan otomatis.

    Pertama, temukan metrik konsumsi unit permintaan yang dinormalisasi dari database atau kontainer Anda.

    Selanjutnya, tentukan bagaimana utilisasi yang dinormalisasi bervariasi dari waktu ke waktu. Temukan penggunaan normal tertinggi untuk setiap jam. Kemudian, hitung rata-rata penggunaan yang dinormalisasi sepanjang jam. Jika Anda melihat bahwa penggunaan rata-rata Anda kurang dari 66%, pertimbangkan untuk mengaktifkan skala otomatis di database atau kontainer Anda. Sebaliknya, jika penggunaan rata-rata lebih besar dari 66%, Anda sebaiknya tetap menggunakan throughput standar (manual) yang tersedia.

    Tips

    Jika akun Anda dikonfigurasi untuk menggunakan penulisan multiwilayah dan memiliki lebih dari satu wilayah, tarif per 100 RU/s adalah sama untuk manual dan skala otomatis. Ini berarti bahwa mengaktifkan skala otomatis tidak akan menimbulkan biaya tambahan terlepas dari penggunaan. Akibatnya, selalu disarankan untuk menggunakan autoscaling dengan penulisan di beberapa wilayah ketika Anda memiliki lebih dari satu wilayah, untuk memanfaatkan penghematan dari membayar hanya untuk RU/s yang disesuaikan dengan skala aplikasi Anda. Jika Anda memiliki penulisan multi-wilayah dan satu wilayah, gunakan penggunaan rata-rata untuk menentukan apakah skala otomatis akan menghasilkan penghematan biaya.

    Contoh

    Mari kita lihat dua contoh beban kerja yang berbeda dan analisis apakah mereka cocok untuk throughput manual atau skala otomatis. Untuk mengilustrasikan pendekatan umum, kami akan menganalisis tiga jam riwayat untuk menentukan perbedaan biaya antara menggunakan manual dan skala otomatis. Untuk beban kerja produksi, disarankan untuk menggunakan riwayat 7 hingga 30 hari (atau lebih lama jika tersedia) untuk menetapkan pola penggunaan RU/s.

    Catatan

    Semua contoh yang ditampilkan dalam dokumen ini didasarkan pada harga untuk akun Azure Cosmos DB yang disebarkan di wilayah non-pemerintah di AS. Harga dan perhitungan bervariasi tergantung pada wilayah yang Anda gunakan, lihat halaman harga Azure Cosmos DB untuk informasi harga terbaru.

    Asumsi:

    • Misalkan kita saat ini memiliki throughput manual sebesar 30.000 RU/s.
    • Wilayah kita dikonfigurasi untuk penulisan di satu wilayah saja. Jika kita memiliki beberapa wilayah, kita akan melipatgandakan biaya per jam dengan jumlah wilayah.
    • Gunakan tarif harga publik untuk throughput manual (0,008 USD per 100 RU/s per jam) dan throughput autoscale (0,012 USD per 100 RU/s per jam) di akun penulisan satu wilayah. Lihat halaman harga untuk detailnya.

    Pertama, kita melihat konsumsi RU yang dinormalisasi. Beban kerja ini memiliki lalu lintas variabel, dengan konsumsi RU yang dinormalisasi berkisar antara 6% hingga 100%. Kadang-kadang ada lonjakan hingga 100% yang sulit diprediksi, tetapi berjam-jam dengan pemanfaatan rendah.

    Beban kerja dengan lalu lintas variabel - konsumsi RU yang dinormalisasi antara 6% dan 100% untuk semua jam

    Mari kita bandingkan biaya penyediaan throughput manual 30.000 RU/s, dan pengaturan skala otomatis dengan RU/s maksimum 30.000 (skala antara 3000 - 30.000 RU/s).

    Sekarang, mari kita analisis riwayatnya. Misalkan kita memiliki penggunaan yang dijelaskan dalam tabel berikut. Penggunaan rata-rata selama tiga jam ini adalah 39%. Karena konsumsi RU yang dinormalisasi rata-rata kurang dari 66%, kita menghemat dengan menggunakan autoscale.

    Perhatikan bahwa di jam 1, ketika ada penggunaan 6%, skala otomatis akan menagih RU/s untuk 10% dari RU/s maks, yang merupakan minimum per jam. Meskipun biaya skala otomatis mungkin lebih tinggi daripada throughput manual pada jam-jam tertentu, selama penggunaan rata-rata kurang dari 66% di semua jam, skala otomatis akan lebih murah secara keseluruhan.

    Periode waktu Pemanfaatan Ru/s skala otomatis yang ditagihkan Opsi 1: Manual 30.000 RU/s Opsi 2: Skala otomatis antara 3000 - 30.000 RU/s
    Jam 1 6% 3000 30.000 * 0,008 / 100 = $2,40 3000 * 0,012 / 100 = $0,36
    Jam kedua 100% 30.000 30.000 * 0,008 / 100 = $2,40 30.000 * 0,012 / 100 = $3,60
    Jam 3 11% 3300 30.000 * 0,008 / 100 = $2,40 3300 * 0,012 / 100 = $0,40
    Total $7,20 $4,36 (penghematan 39%)

    Beban kerja ini memiliki lalu lintas yang stabil, dengan konsumsi RU yang telah dinormalisasi berkisar antara 72% hingga 100%. Dengan 30.000 RU/s yang tersedia, ini berarti bahwa kita mengonsumsi antara 21.600 hingga 30.000 RU/s.

    Beban kerja dengan lalu lintas stabil - konsumsi RU yang dinormalisasi antara 72% dan 100% untuk semua jam

    Mari kita bandingkan biaya penyediaan throughput manual 30.000 RU/s, dan pengaturan skala otomatis dengan RU/s maksimum 30.000 (skala antara 3000 - 30.000 RU/s).

    Misalkan kita memiliki riwayat pemanfaatan seperti yang dijelaskan dalam tabel. Penggunaan rata-rata kita selama tiga jam ini adalah 88%. Karena konsumsi RU yang dinormalisasi rata-rata lebih besar dari 66%, kita dapat menghemat dengan menggunakan throughput manual.

    Secara umum, jika penggunaan rata-rata di keseluruhan 730 jam dalam satu bulan lebih besar dari 66%, maka kita akan menghemat dengan menggunakan throughput manual.

    Periode waktu Pemanfaatan Ru/s skala otomatis yang ditagihkan Opsi 1: Manual 30.000 RU/s Opsi 2: Skala otomatis antara 3000 - 30.000 RU/s
    Jam 1 72% 21.600 30.000 * 0,008 / 100 = $2,40 21600 * 0,012 / 100 = $2,59
    Jam kedua 93% 28.000 30.000 * 0,008 / 100 = $2,40 28.000 * 0,012 / 100 = $3,36
    Jam 3 100% 30.000 30.000 * 0,008 / 100 = $2,40 30.000 * 0,012 / 100 = $3,60
    Total $7,20 $9,55

    Tips

    Dengan throughput standar (manual), Anda dapat menggunakan metrik penggunaan yang dinormalisasi untuk memperkirakan RU/s aktual yang mungkin Anda gunakan jika beralih ke skala otomatis. Kalikan pemakaian yang dinormalisasi pada satu titik waktu dengan RU/s standar yang saat ini disediakan secara manual. Misalnya, jika Anda telah tersedia 5000 RU/s, dan pemanfaatan yang dinormalisasi adalah 90%, penggunaan RU/s adalah 0,9 * 5000 = 4500 RU/s. Jika Anda melihat bahwa pola lalu lintas Anda bervariasi, tetapi Anda terlebih atau kekurangan kapasitas, Anda mungkin ingin mengaktifkan fitur skala otomatis dan kemudian mengubah pengaturan batas maksimum RU/s dari skala otomatis sesuai.

    Cara menghitung penggunaan rata-rata

    Tagihan skala otomatis untuk RU/s tertinggi diskalakan menjadi dalam satu jam. Ketika menganalisis konsumsi RU yang dinormalisasi dari waktu ke waktu, penting untuk menggunakan penggunaan tertinggi per jam saat menghitung rata-rata.

    Untuk menghitung rata-rata penggunaan tertinggi sepanjang jam:

    1. Atur Agregasi pada metrik Konsumsi RU yang Dinormalisasi ke Maks.
    2. Pilih granularitas Waktu hingga 1 jam.
    3. Navigasi ke opsi Bagan.
    4. Pilih opsi bagan batang.
    5. Di bawah Bagikan, pilih opsi Unduh ke Excel. Dari spreadsheet yang dihasilkan, hitung penggunaan rata-rata sepanjang jam.

    Untuk melihat konsumsi RU yang dinormalisasi menurut jam, 1) Pilih granularitas waktu hingga 1 jam; 2) Edit pengaturan bagan; 3) Pilih opsi bagan batang; 4) Di bagian Bagikan, pilih opsi Unduh ke Excel untuk menghitung rata-rata sepanjang jam.

    Mengukur dan memantau penggunaan Anda

    Seiring waktu, setelah memilih jenis throughput, Anda harus memantau aplikasi dan melakukan penyesuaian sesuai kebutuhan.

    Saat menggunakan autoskalasi, gunakan Azure Monitor untuk melihat RU/s maksimum autoskalasi yang telah disediakan (Throughput Maksimum Autoskalasi) dan RU/s yang sedang diskala oleh sistem (Throughput yang Disediakan).

    Contoh berikut menunjukkan variabel atau beban kerja yang tidak dapat diprediksi menggunakan skala otomatis. Perhatikan ketika tidak ada lalu lintas, sistem menskalakan RU hingga minimal 10% dari RU/dtk maksimum, yang dalam hal ini masing-masing adalah 5.000 RU/dtk dan 50.000 RU/dtk.

    Cuplikan layar contoh beban kerja menggunakan skala otomatis, dengan RU/dtk maks skala otomatis sebesar 50.000 RU/dtk dan throughput berkisar antara 5000 - 50.000 RU/dtk.

    Memigrasikan throughput standar yang disediakan ke skala otomatis

    Pengguna yang ingin memigrasikan sejumlah besar sumber daya dari throughput standar yang disediakan ke skala otomatis dapat menggunakan skrip Azure CLI yang akan memigrasikan setiap sumber daya throughput dalam langganan Azure ke skala otomatis.

    Langkah berikutnya