View a markdown version of this page

Evaluasi kapasitas yang disediakan untuk penyediaan ukuran yang tepat - Amazon Keyspaces (untuk Apache Cassandra)

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Evaluasi kapasitas yang disediakan untuk penyediaan ukuran yang tepat

Bagian ini memberikan gambaran umum tentang cara mengevaluasi apakah Anda memiliki penyediaan berukuran tepat pada tabel Amazon Keyspaces Anda. Seiring berkembangnya beban kerja Anda, Anda harus memodifikasi prosedur operasional Anda dengan tepat, terutama ketika tabel Amazon Keyspaces Anda dikonfigurasi dalam mode yang disediakan dan Anda memiliki risiko untuk menyediakan tabel secara berlebihan atau kurang.

Prosedur yang dijelaskan di bagian ini memerlukan informasi statistik yang harus diambil dari tabel Amazon Keyspaces yang mendukung aplikasi produksi Anda. Untuk memahami perilaku aplikasi Anda, Anda harus menentukan periode waktu yang cukup signifikan untuk menangkap data musiman aplikasi Anda. Misalnya, jika aplikasi Anda menunjukkan pola mingguan, menggunakan periode tiga minggu akan memberi Anda cukup ruang untuk menganalisis kebutuhan throughput aplikasi.

Jika Anda tidak tahu harus mulai dari mana, gunakan penggunaan data setidaknya selama satu bulan untuk penghitungan di bawah ini.

Saat mengevaluasi kapasitas, untuk tabel Amazon Keyspaces Anda dapat mengonfigurasi Unit Kapasitas Baca (RCU) dan Unit Kapasitas Men ulis (WCU) secara independen.

Cara mengambil metrik konsumsi dari tabel Amazon Keyspaces Anda

Untuk mengevaluasi kapasitas tabel, pantau CloudWatch metrik berikut dan pilih dimensi yang sesuai untuk mengambil informasi tabel:

Unit Kapasitas Baca Unit Kapasitas Tulis

ConsumedReadCapacityUnits

ConsumedWriteCapacityUnits

ProvisionedReadCapacityUnits

ProvisionedWriteCapacityUnits

ReadThrottleEvents

WriteThrottleEvents

Anda dapat melakukan ini baik melalui AWS CLI atau Konsol Manajemen AWS.

AWS CLI

Sebelum mengambil metrik konsumsi tabel, Anda harus mulai dengan menangkap beberapa titik data historis menggunakan CloudWatch API.

Mulailah dengan membuat dua file: write-calc.json dan read-calc.json. File-file ini mewakili perhitungan untuk tabel. Anda perlu memperbarui beberapa bidang, seperti yang ditunjukkan dalam tabel di bawah ini, agar sesuai dengan lingkungan Anda.

catatan

Jika nama tabel tidak unik dalam akun Anda, Anda juga harus menentukan nama keyspace.

Nama Bidang Definisi Contoh
<table-name> Nama tabel yang Anda analisis SampleTable
<period> Periode waktu yang Anda gunakan untuk mengevaluasi target pemanfaatan, berdasarkan detik Untuk periode 1 jam, Anda harus menentukan: 3600
<start-time> Awal interval evaluasi Anda, ditentukan dalam format ISO8601 2022-02-21 T23:00:00
<end-time> Akhir interval evaluasi Anda, ditentukan dalam format ISO8601 2022-02-22 T06:00:00

File perhitungan tulis mengambil jumlah WCU yang disediakan dan dikonsumsi dalam periode waktu untuk rentang tanggal yang ditentukan. Ini juga menghasilkan persentase pemanfaatan yang dapat digunakan untuk analisis. Konten lengkap write-calc.json file akan terlihat seperti pada contoh berikut.

{ "MetricDataQueries": [ { "Id": "provisionedWCU", "MetricStat": { "Metric": { "Namespace": "AWS/Cassandra", "MetricName": "ProvisionedWriteCapacityUnits", "Dimensions": [ { "Name": "TableName", "Value": "<table-name>" } ] }, "Period": <period>, "Stat": "Average" }, "Label": "Provisioned", "ReturnData": false }, { "Id": "consumedWCU", "MetricStat": { "Metric": { "Namespace": "AWS/Cassandra", "MetricName": "ConsumedWriteCapacityUnits", "Dimensions": [ { "Name": "TableName", "Value": "<table-name>"" } ] }, "Period": <period>, "Stat": "Sum" }, "Label": "", "ReturnData": false }, { "Id": "m1", "Expression": "consumedWCU/PERIOD(consumedWCU)", "Label": "Consumed WCUs", "ReturnData": false }, { "Id": "utilizationPercentage", "Expression": "100*(m1/provisionedWCU)", "Label": "Utilization Percentage", "ReturnData": true } ], "StartTime": "<start-time>", "EndTime": "<end-time>", "ScanBy": "TimestampDescending", "MaxDatapoints": 24 }

File perhitungan baca menggunakan metrik serupa. File ini mengambil berapa banyak RCU yang disediakan dan dikonsumsi selama periode waktu untuk rentang tanggal yang ditentukan. Isi read-calc.json file akan terlihat seperti dalam contoh ini.

{ "MetricDataQueries": [ { "Id": "provisionedRCU", "MetricStat": { "Metric": { "Namespace": "AWS/Cassandra", "MetricName": "ProvisionedReadCapacityUnits", "Dimensions": [ { "Name": "TableName", "Value": "<table-name>" } ] }, "Period": <period>, "Stat": "Average" }, "Label": "Provisioned", "ReturnData": false }, { "Id": "consumedRCU", "MetricStat": { "Metric": { "Namespace": "AWS/Cassandra", "MetricName": "ConsumedReadCapacityUnits", "Dimensions": [ { "Name": "TableName", "Value": "<table-name>" } ] }, "Period": <period>, "Stat": "Sum" }, "Label": "", "ReturnData": false }, { "Id": "m1", "Expression": "consumedRCU/PERIOD(consumedRCU)", "Label": "Consumed RCUs", "ReturnData": false }, { "Id": "utilizationPercentage", "Expression": "100*(m1/provisionedRCU)", "Label": "Utilization Percentage", "ReturnData": true } ], "StartTime": "<start-time>", "EndTime": "<end-time>", "ScanBy": "TimestampDescending", "MaxDatapoints": 24 }

Setelah Anda membuat file, Anda dapat mulai mengambil data pemanfaatan.

  1. Untuk mengambil data pemanfaatan tulis, keluarkan perintah berikut:

    aws cloudwatch get-metric-data --cli-input-json file://write-calc.json
  2. Untuk mengambil data pemanfaatan baca, keluarkan perintah berikut:

    aws cloudwatch get-metric-data --cli-input-json file://read-calc.json

Hasil untuk kedua kueri adalah serangkaian titik data dalam format JSON yang dapat digunakan untuk analisis. Hasil Anda bergantung pada jumlah titik data yang Anda tentukan, periode, dan data beban kerja spesifik Anda sendiri. Itu bisa terlihat seperti pada contoh berikut.

{ "MetricDataResults": [ { "Id": "utilizationPercentage", "Label": "Utilization Percentage", "Timestamps": [ "2022-02-22T05:00:00+00:00", "2022-02-22T04:00:00+00:00", "2022-02-22T03:00:00+00:00", "2022-02-22T02:00:00+00:00", "2022-02-22T01:00:00+00:00", "2022-02-22T00:00:00+00:00", "2022-02-21T23:00:00+00:00" ], "Values": [ 91.55364583333333, 55.066631944444445, 2.6114930555555556, 24.9496875, 40.94725694444445, 25.61819444444444, 0.0 ], "StatusCode": "Complete" } ], "Messages": [] }
catatan

Jika Anda menentukan periode pendek dan rentang waktu yang panjang, Anda mungkin perlu memodifikasi MaxDatapoints nilainya, yang secara default diatur ke 24 dalam skrip. Ini mewakili satu titik data per jam dan 24 per hari.

Konsol Manajemen AWS
  1. Masuk ke Konsol Manajemen AWS dan arahkan ke halaman CloudWatch layanan di Mem ulai dengan Konsol Manajemen AWS. Pilih yang sesuai Wilayah AWS jika perlu.

  2. Temukan bagian Metrik di bilah navigasi kiri dan pilih Semua metrik.

  3. Ini membuka dasbor dengan dua panel. Panel atas menunjukkan grafik, dan panel bawah memiliki metrik yang ingin Anda grafik. Pilih panel Amazon Keyspaces.

  4. Pilih kategori Metrik Tabel dari sub panel. Ini menunjukkan kepada Anda tabel di saat ini Wilayah AWS.

  5. Identifikasi nama tabel Anda dengan menggulir menu ke bawah, lalu memilih metrik operasi tulis: ConsumedWriteCapacityUnits dan ProvisionedWriteCapacityUnits

    catatan

    Contoh ini membahas metrik operasi tulis, tetapi Anda juga dapat menggunakan langkah-langkah ini untuk membuat grafik metrik operasi baca.

  6. Pilih tab Metrik bergrafik (2) untuk memodifikasi rumus. Secara default CloudWatch memilih fungsi statistik Rata-rata untuk grafik.

  7. Saat memilih kedua metrik bergrafik (kotak centang di sebelah kiri) pilih menu Tambahkan perhitungan, diikuti oleh Umum, lalu pilih fungsi Persentase. Ulangi prosedur ini dua kali.

    Pertama kali memilih fungsi Per sentase.

    Kedua kalinya memilih fungsi Per sentase.

  8. Pada titik ini, Anda memiliki empat metrik di menu bawah. Mari kita kerjakan penghitungan ConsumedWriteCapacityUnits. Agar konsisten, Anda harus mencocokkan nama dengan yang Anda gunakan di AWS CLI bagian tersebut. Klik m1 ID dan ubah nilai ini menjadi consumedWCU.

  9. Ubah statistik dari Average menjadi Sum. Tindakan ini secara otomatis membuat metrik lain yang disebut ANOMALY _DETECTION_BAND. Untuk lingkup prosedur ini, Anda dapat mengabaikan ini dengan menghapus kotak centang pada metrik ad1 yang baru dibuat.

  10. Ulangi langkah 8 untuk mengganti nama m2 ID menjadi ProvisionedWCU. Biarkan statistik diatur ke Average.

  11. Pilih label Expression1 dan perbarui nilainya ke m1 dan label ke WCU yang dikonsumsi.

    catatan

    Pastikan Anda hanya memilih m1 (kotak centang di sebelah kiri) dan ProvisionedWCU untuk memvisualisasikan data dengan benar. Perbarui rumus dengan mengklik Detail dan mengubah rumus menjadi consumedWCU/PERIOD (ConsumeDWCU). Langkah ini mungkin juga menghasilkan metrik ANOMALY_DETECTION_BAND lain, tetapi untuk ruang lingkup prosedur ini Anda dapat mengabaikannya.

  12. Anda sekarang harus memiliki dua grafik: satu yang menunjukkan WCU yang Anda sediakan di atas meja dan satu lagi yang menunjukkan WCU yang dikonsumsi.

  13. Perbarui rumus persentase dengan memilih grafik Expression2 (e2). Ganti nama label dan ID menjadi utilizationPercentage. Ganti nama rumus agar cocok dengan 100* (m1/provisionedWCU).

  14. Hapus kotak centang dari semua metrik kecuali Utiliz ationPercentage untuk memvisualisasikan pola pemanfaatan Anda. Interval default diatur ke 1 menit, tetapi jangan ragu untuk memodifikasinya sesuai kebutuhan.

Hasil yang Anda dapatkan tergantung pada data aktual dari beban kerja Anda. Interval dengan pemanfaatan lebih dari 100% rentan terhadap peristiwa kesalahan kapasitas throughput rendah. Amazon Keyspaces menawarkan kapasitas burst, tetapi segera setelah kapasitas burst habis, apa pun di atas 100% mengalami peristiwa kesalahan kapasitas throughput rendah.

Cara mengidentifikasi tabel Amazon Keyspaces yang kurang disediakan

Untuk sebagian besar beban kerja, tabel dianggap kurang disediakan ketika terus-menerus mengkonsumsi lebih dari 80% kapasitas yang disediakan.

Kapasitas burst adalah fitur Amazon Keyspaces yang memungkinkan pelanggan untuk sementara menggunakan RCUs/WCUs lebih dari yang disediakan semula (lebih dari throughput yang disediakan per detik yang ditentukan untuk tabel). Kapasitas lonjakan diciptakan untuk menyerap peningkatan lalu lintas tiba-tiba karena peristiwa khusus atau lonjakan penggunaan. Kapasitas ledakan ini terbatas, untuk informasi lebih lanjut, lihatGunakan kapasitas burst secara efektif di Amazon Keyspaces. Segera setelah RCU dan WCU yang tidak digunakan habis, Anda dapat mengalami kejadian kesalahan throughput kapasitas rendah jika Anda mencoba menggunakan lebih banyak kapasitas daripada yang disediakan. Ketika lalu lintas aplikasi Anda mendekati tingkat pemanfaatan 80%, risiko Anda mengalami peristiwa kesalahan throughput kapasitas rendah secara signifikan lebih tinggi.

Aturan tingkat penggunaan 80% bervariasi berdasarkan musim data dan pertumbuhan lalu lintas Anda. Pertimbangkan skenario berikut:

  • Jika lalu lintas Anda stabil pada tingkat penggunaan ~90% selama 12 bulan terakhir, tabel Anda memiliki kapasitas yang tepat

  • Jika lalu lintas aplikasi Anda tumbuh sebesar 8% setiap bulan dalam waktu kurang dari 3 bulan, Anda akan mencapai 100%

  • Jika lalu lintas aplikasi Anda tumbuh sebesar 5% dalam waktu lebih dari 4 bulan, Anda masih akan mencapai 100%

Hasil dari kueri di atas memberikan gambaran tingkat penggunaan Anda. Gunakan hasil tersebut sebagai panduan untuk mengevaluasi lebih lanjut metrik lain yang dapat membantu Anda meningkatkan kapasitas tabel sesuai kebutuhan (misalnya: tingkat pertumbuhan bulanan atau mingguan). Bekerjalah dengan tim operasi Anda untuk menentukan persentase yang baik untuk beban kerja dan tabel Anda.

Ada skenario khusus di mana data miring ketika Anda menganalisisnya setiap hari atau mingguan. Misalnya, dengan aplikasi musiman yang memiliki lonjakan penggunaan selama jam kerja (tetapi kemudian turun menjadi hampir nol di luar jam kerja), Anda dapat memanfaatkan penjadwalan penskalaan otomatis aplikasi, di mana Anda menentukan jam dalam sehari (dan hari dalam seminggu) untuk meningkatkan kapasitas yang disediakan, serta kapan harus menguranginya. Alih-alih membidik kapasitas yang lebih tinggi sehingga Anda dapat menutupi jam-jam sibuk, Anda juga dapat memanfaatkan konfigurasi penskalaan otomatis tabel Amazon Keyspaces jika musim Anda kurang jelas.

Cara mengidentifikasi tabel Keyspaces Amazon yang disediakan secara berlebihan

Hasil kueri yang diperoleh dari skrip di atas memberikan titik data yang diperlukan untuk melakukan beberapa analisis awal. Jika set data Anda menyajikan nilai penggunaan yang lebih rendah dari 20% untuk beberapa interval, tabel Anda mungkin disediakan secara berlebihan. Untuk menentukan lebih lanjut apakah Anda perlu mengurangi jumlah WCU dan RCU, Anda harus meninjau kembali pembacaan lain dalam interval tersebut.

Jika tabel berisi beberapa interval penggunaan rendah, Anda dapat memanfaatkan kebijakan Penskalaan Otomatis Aplikasi, baik dengan menjadwalkan Penskalaan Otomatis Aplikasi atau hanya dengan mengonfigurasi kebijakan Penskalaan Otomatis Aplikasi default untuk tabel yang didasarkan pada pemanfaatan.

Jika Anda memiliki beban kerja dengan pemanfaatan rendah terhadap rasio throttle tinggi (Max (ThrottleEvents) /Min (ThrottleEvents) dalam interval), ini bisa terjadi ketika Anda memiliki beban kerja yang sangat runcing di mana lalu lintas meningkat secara signifikan pada hari tertentu (atau waktu dalam sehari), tetapi sebaliknya secara konsisten rendah. Dalam skenario ini, mungkin bermanfaat untuk menggunakan Penskalaan Otomatis Aplikasi ter jadwal.