Memahami pengaturan skala otomatis

Pengaturan Autoscale membantu memastikan bahwa Anda memiliki jumlah sumber daya yang tepat yang berjalan untuk menangani beban aplikasi Anda yang berfluktuasi. Anda dapat mengonfigurasi pengaturan skala otomatis untuk dipicu berdasarkan metrik yang menunjukkan beban atau performa, atau dipicu pada tanggal dan waktu terjadwal.

Artikel ini menjelaskan pengaturan skala otomatis.

Skema pengaturan Autoscale

Contoh berikut menunjukkan pengaturan skala otomatis dengan atribut ini:

  • Satu profil default.
  • Dua aturan metrik di profil ini: satu untuk peluasan skala, dan satu untuk penyempurnaan skala.
    • Aturan peluasan skala dipicu ketika metrik CPU persentase rata-rata set skala komputer virtual lebih besar dari 85% selama 10 menit terakhir.
    • Aturan penyempurnaan skala dipicu ketika rata-rata set skala komputer virtual kurang dari 60% selama satu menit terakhir.

Catatan

Pengaturan dapat memiliki beberapa profil. Untuk mempelajari lebih lanjut, lihat bagian profil. Profil juga dapat memiliki beberapa aturan skala keluar dan aturan skala masuk yang ditentukan. Untuk melihat bagaimana mereka dievaluasi, lihat bagian evaluasi .

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "resources": [
        {
            "type": "Microsoft.Insights/autoscaleSettings",
            "apiVersion": "2015-04-01",
            "name": "VMSS1-Autoscale-607",
            "location": "eastus",
            "properties": {

                "name": "VMSS1-Autoscale-607",
                "enabled": true,
                "targetResourceUri": "/subscriptions/abc123456-987-f6e5-d43c-9a8d8e7f6541/resourceGroups/rg-vmss1/providers/Microsoft.Compute/virtualMachineScaleSets/VMSS1",
    "profiles": [
      {
        "name": "Auto created default scale condition",
        "capacity": {
          "minimum": "1",
          "maximum": "4",
          "default": "1"
        },
        "rules": [
          {
            "metricTrigger": {
              "metricName": "Percentage CPU",
              "metricResourceUri": "/subscriptions/abc123456-987-f6e5-d43c-9a8d8e7f6541/resourceGroups/rg-vmss1/providers/Microsoft.Compute/virtualMachineScaleSets/VMSS1",
              "timeGrain": "PT1M",
              "statistic": "Average",
              "timeWindow": "PT10M",
              "timeAggregation": "Average",
              "operator": "GreaterThan",
              "threshold": 85
            },
            "scaleAction": {
              "direction": "Increase",
              "type": "ChangeCount",
              "value": "1",
              "cooldown": "PT5M"
            }
          },
          {
            "metricTrigger": {
              "metricName": "Percentage CPU",
              "metricResourceUri": "/subscriptions/abc123456-987-f6e5-d43c-9a8d8e7f6541/resourceGroups/rg-vmss1/providers/Microsoft.Compute/virtualMachineScaleSets/VMSS1",
              "timeGrain": "PT1M",
              "statistic": "Average",
              "timeWindow": "PT10M",
              "timeAggregation": "Average",
              "operator": "LessThan",
              "threshold": 60
            },
            "scaleAction": {
              "direction": "Decrease",
              "type": "ChangeCount",
              "value": "1",
              "cooldown": "PT5M"
            }
          }
        ]
      }
    ]
  }
}

Tabel berikut ini menjelaskan elemen dalam JSON pengaturan skala otomatis sebelumnya.

Bagian Nama elemen Nama portal Deskripsi
Pengaturan ID ID sumber daya pengaturan skala otomatis. Pengaturan Autoscale adalah sumber daya Azure Resource Manager.
Pengaturan nama Nama pengaturan skala otomatis.
Pengaturan lokasi Lokasi pengaturan skala otomatis. Lokasi ini bisa berbeda dengan lokasi sumber daya yang diskalakan.
properti targetResourceUri ID sumber daya dari sumber daya yang diskalakan. Anda hanya dapat memiliki satu pengaturan skala otomatis per sumber daya.
properti profiles Kondisi skala Pengaturan skala otomatis terdiri dari satu atau beberapa profil. Setiap kali mesin skala otomatis berjalan, mesin tersebut menjalankan satu profil. Konfigurasikan hingga 20 profil per pengaturan skala otomatis.
profiles nama Nama profil. Anda dapat memilih nama apa pun yang membantu Anda mengidentifikasi profil.
profiles capacity.maximum Batas instans - Maksimum Kapasitas maksimum yang diperbolehkan. Ini memastikan bahwa skala otomatis tidak menskalakan sumber daya Anda di atas angka ini saat menjalankan profil.
profiles capacity.minimum Batas instans - Minimum Kapasitas minimum yang diperbolehkan. Ini memastikan bahwa skala otomatis tidak menskalakan sumber daya Anda di bawah angka ini saat menjalankan profil
profiles capacity.default Batas instans - Default Jika ada masalah saat membaca metrik sumber daya, dan kapasitas saat ini berada di bawah default, skala otomatis diskalakan ke default. Tindakan ini memastikan ketersediaan sumber daya. Jika kapasitas saat ini sudah lebih tinggi dari kapasitas default, skala otomatis tidak menskalakan.
profiles aturan Aturan Skala otomatis secara otomatis menskalakan antara kapasitas maksimum dan minimum dengan menggunakan aturan di profil. Tentukan hingga 10 aturan individual dalam profil. Biasanya aturan didefinisikan berpasangan, satu untuk menentukan kapan harus menskalakan, dan yang lain untuk menentukan kapan harus menskalakan masuk.
rule metricTrigger Aturan skala Menentukan kondisi metrik aturan.
metricTrigger metricName Nama metrik Nama metrik.
metricTrigger metricResourceUri ID sumber daya dari sumber daya yang memancarkan metrik. Dalam kebanyakan kasus, itu sama dengan sumber daya yang diskalakan. Dalam beberapa kasus bisa berbeda. Misalnya, Anda dapat menskalakan set skala komputer virtual berdasarkan jumlah pesan dalam antrean penyimpanan.
metricTrigger timeGrain Butir waktu (menit) Durasi pengambilan sampel metrik. Misalnya, timeGrain = "PT1M" berarti bahwa metrik harus dikumpulkan setiap 1 menit, dengan menggunakan metode agregasi yang ditentukan dalam elemen statistik.
metricTrigger statistic Statistik butir waktu Metode agregasi dalam periode timeGrain. Misalnya, statistik = "Rata-rata" dan timeGrain = "PT1M" berarti bahwa metrik harus dikumpulkan setiap 1 menit, dengan mengambil rata-rata. Properti ini menentukan bagaimana metrik diambil sampelnya.
metricTrigger timeWindow Durasi Jumlah waktu untuk melihat kembali metrik. Misalnya, timeWindow = "PT10M" berarti bahwa setiap kali skala otomatis berjalan, timeWindow = "PT10M" berarti bahwa setiap kali skala otomatis berjalan, timeWindow meminta metrik selama 10 menit terakhir. Jendela waktu memungkinkan metrik Anda dinormalisasi dan menghindari bereaksi terhadap lonjakan sementara.
metricTrigger timeAggregation Agregasi waktu Metode agregasi yang digunakan untuk mengagregasi metrik sampel. Misalnya, timeAggregation = "Average" harus menggabungkan metrik sampel dengan mengambil rata-rata. Dalam kasus sebelumnya, ambil sepuluh sampel 1 menit, dan reratakan.
rule scaleAction Perbuatan Tindakan yang harus diambil ketika metricTrigger aturan dipicu.
scaleAction arah Operasi "Tingkatkan" untuk menskala keluarkan, atau "Kurangi" untuk menskala masukkan.
scaleAction value Jumlah Instans Berapa banyak untuk meningkatkan atau mengurangi kapasitas sumber daya.
scaleAction cooldown Pendinginan (menit) Jumlah waktu untuk menunggu setelah operasi skala sebelum penskalaan lagi. Periode cooldown mulai berlaku setelah peristiwa penyempurnaan skala atau peluasan skala. Misalnya, jika cooldown = "PT10M", skala otomatis tidak mencoba menskalakan lagi selama 10 menit lagi. Cooldown adalah untuk menstabilkan metrik setelah penambahan atau penghapusan instans.

Profil Autoscale

Tentukan hingga 20 profil berbeda per pengaturan skala otomatis.
Ada tiga jenis profil skala otomatis:

  • Profil default: Gunakan profil default jika Anda tidak perlu menskalakan sumber daya berdasarkan tanggal dan waktu atau hari tertentu dalam seminggu. Profil default berjalan ketika tidak ada profil lain yang berlaku untuk tanggal dan waktu saat ini. Anda hanya dapat memiliki satu profil default.

  • Profil tanggal tetap: Profil tanggal tetap relevan untuk satu tanggal dan waktu. Gunakan profil tanggal tetap untuk mengatur aturan penskalaan untuk peristiwa tertentu. Profil hanya berjalan sekali, pada tanggal dan waktu acara. Untuk semua waktu lainnya, skala otomatis menggunakan profil default.

        ...
        "profiles": [
            {
                "name": " regularProfile",
                "capacity": {
                    ...
                },
                "rules": [
                    ...
                ]
            },
            {
                "name": "eventProfile",
                "capacity": {
                ...
                },
                "rules": [
                    ...
                ],
                "fixedDate": {
                    "timeZone": "Pacific Standard Time",
                    "start": "2017-12-26T00:00:00",
                    "end": "2017-12-26T23:59:00"
                }
            }
        ]
    
  • Profil pengulangan: Profil pengulangan digunakan selama satu hari atau serangkaian hari dalam seminggu. Skema untuk profil berulang tidak menyertakan tanggal selesai. Akhir tanggal dan waktu untuk profil berulang diatur oleh waktu mulai profil berikut. Saat portal digunakan untuk mengonfigurasi profil berulang, profil default secara otomatis diperbarui untuk memulai pada waktu akhir yang Anda tentukan untuk profil berulang. Untuk informasi selengkapnya tentang mengonfigurasi beberapa profil, lihat Skala otomatis dengan beberapa profil

    Contoh skema parsial di sini menunjukkan profil berulang. Dimulai pukul 06.00 dan berakhir pukul 19.00 pada hari Sabtu dan Minggu. Profil default telah dimodifikasi untuk dimulai pada pukul 19:00 pada hari Sabtu dan Minggu.

        {
            "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
            "contentVersion": "1.0.0.0",
            "resources": [
                {
                    "type": "Microsoft.Insights/    autoscaleSettings",
                    "apiVersion": "2015-04-01",
                    "name": "VMSS1-Autoscale-607",
                    "location": "eastus",
                    "properties": {
    
                        "name": "VMSS1-Autoscale-607",
                        "enabled": true,
                        "targetResourceUri": "/subscriptions/    abc123456-987-f6e5-d43c-9a8d8e7f6541/    resourceGroups/rg-vmss1/providers/    Microsoft.Compute/    virtualMachineScaleSets/VMSS1",
                        "profiles": [
                            {
                                "name": "Weekend profile",
                                "capacity": {
                                    ...
                                },
                                "rules": [
                                    ...
                                ],
                                "recurrence": {
                                    "frequency": "Week",
                                    "schedule": {
                                        "timeZone": "E. Europe     Standard Time",
                                        "days": [
                                            "Saturday",
                                            "Sunday"
                                        ],
                                        "hours": [
                                            6
                                        ],
                                        "minutes": [
                                            0
                                        ]
                                    }
                                }
                            },
                            {
                                "name": "{\"name\":\"Auto created default scale condition\",\"for\":\"Weekend profile\"}",
                                "capacity": {
                                   ...
                                },
                                "recurrence": {
                                    "frequency": "Week",
                                    "schedule": {
                                        "timeZone": "E. Europe     Standard Time",
                                        "days": [
                                            "Saturday",
                                            "Sunday"
                                        ],
                                        "hours": [
                                            19
                                        ],
                                        "minutes": [
                                            0
                                        ]
                                    }
                                },
                                "rules": [   
                                  ...
                                ]
                            }
                        ],
                        "notifications": [],
                        "targetResourceLocation": "eastus"
                    }
    
                }
            ]
                }
    
    

Evaluasi Autoscale

Pengaturan skala otomatis dapat memiliki beberapa profil. Setiap profil dapat memiliki beberapa aturan. Setiap kali pekerjaan skala otomatis berjalan, pekerjaan dimulai dengan memilih profil yang berlaku untuk waktu tersebut. Skala otomatis kemudian mengevaluasi nilai minimum dan maksimum, aturan metrik apa pun di profil, dan memutuskan apakah tindakan skala diperlukan. Pekerjaan skala otomatis berjalan setiap 30 hingga 60 detik, tergantung pada jenis sumber daya. Setelah tindakan skala terjadi, pekerjaan skala otomatis menunggu periode pendinginan sebelum diskalakan lagi. Periode cooldown berlaku untuk tindakan peluasan skala dan penyempurnaan skala.

Profil mana yang akan digunakan skala otomatis?

Setiap kali layanan skala otomatis berjalan, profil dievaluasi dalam urutan berikut:

  1. Profil tanggal tetap
  2. Profil berulang
  3. Profil default

Profil pertama yang sesuai yang ditemukan digunakan.

Bagaimana skala otomatis mengevaluasi beberapa aturan?

Setelah skala otomatis menentukan profil mana yang akan dijalankan, profil tersebut mengevaluasi aturan peluasan skala di profil, yaitu, di mana arah = "Tingkatkan". Jika satu atau beberapa aturan peluasan skala dipicu, skala otomatis menghitung kapasitas baru yang ditentukan oleh scaleAction yang ditentukan untuk setiap aturan. Jika lebih dari satu aturan peluasan skala dipicu, skala otomatis diskalakan ke kapasitas tertinggi yang ditentukan untuk memastikan ketersediaan layanan.

Misalnya, asumsikan bahwa ada dua aturan: Aturan 1 menentukan peluasan skala dengan tiga instans, dan aturan 2 menentukan peluasan skala sebesar lima. Jika kedua aturan dipicu, skala otomatis diskalakan oleh lima instans. Demikian pula, jika satu aturan menentukan peluasan skala dengan tiga instans dan aturan lain menentukan peluasan skala sebesar 15%, semakin tinggi dari dua jumlah instans yang digunakan.

Jika tidak ada aturan peluasan skala yang dipicu, skala otomatis mengevaluasi aturan skala masuk, yaitu aturan dengan arah = "Kurangi". Skala otomatis hanya menskalakan jika semua aturan penyempurnaan skala dipicu.

Autoscale menghitung kapasitas baru yang ditentukan oleh scaleAction dari masing-masing aturan tersebut. Untuk memastikan ketersediaan layanan, skala otomatis menskalakan sesedikitan mungkin untuk mencapai kapasitas maksimum yang ditentukan. Misalnya, asumsikan dua aturan penyempurnaan skala, yang mengurangi kapasitas sebesar 50% dan satu yang mengurangi kapasitas tiga instans. Jika aturan pertama menghasilkan lima instans dan aturan kedua menghasilkan tujuh, skala otomatis menskalakan ke tujuh instans.

Setiap kali skala otomatis menghitung hasil tindakan penyempurnaan skala, tindakan tersebut akan mengevaluasi apakah tindakan tersebut akan memicu tindakan peluasan skala. Skenario di mana tindakan skala memicu tindakan skala yang berlawanan dikenal sebagai flapping. Skala otomatis mungkin menunda tindakan penyempurnaan skala untuk menghindari flapping atau mungkin menskalakan dengan angka yang kurang dari apa yang ditentukan dalam aturan. Untuk informasi selengkapnya tentang flapping, lihat Flapping dalam skala otomatis.

Langkah berikutnya

Pelajari selengkapnya tentang skala otomatis: