Contoh data alokasi biaya terpisah untuk instans yang dipercepat - Ekspor Data AWS

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

Contoh data alokasi biaya terpisah untuk instans yang dipercepat

Tujuan dari contoh berikut adalah untuk menunjukkan kepada Anda bagaimana data alokasi biaya split dihitung dengan menghitung biaya namespace Kubernetes dan pod di klaster Amazon EKS. Tarif yang digunakan di seluruh contoh hanya untuk tujuan ilustrasi.

Anda memiliki penggunaan berikut dalam satu jam:

  • EC2 Instance tunggal yang menjalankan empat pod di dua namespace, dan Anda ingin memahami biaya setiap namespace.

  • EC2 Instancenya adalah p3.16xlarge dengan 8 GPU, 64 vCPU, dan 488 GB RAM.

  • Biaya amortisasi dari instans adalah $10/jam.

Data alokasi biaya terpisah menormalkan biaya per sumber daya berdasarkan rasio relatif GPU: (cpu: memori) 9:1. Ini menyiratkan bahwa satu unit GPU berharga 9x sebanyak unit CPU dan memori. CPU dan memori kemudian diberi berat 9:1. Untuk EC2 instance yang tidak dipercepat, perilaku default saat ini akan diadopsi yaitu cpu: bobot memori default ke 9:1.

Langkah 1: Hitung biaya unit

Berdasarkan sumber daya cpu dan memori pada EC2 instance dan menggunakan rasio yang disebutkan di atas, data Split Cost Allocation pertama-tama menghitung biaya unit per GPU, VCPU-HR dan GB-HR.

GPU-Weight =9

GPU+Memory-Weight =1

CPU-Weight=1*.9=.9

Memory-Weight=1*0.1=0.1

Hourly-Instance-Cost=$10

GPU-Available=8

Memory-Available=488

CPU-Available=64

UnitCostPerResource = Hourly-Instance-Cost/(( GPU-Weight * GPU-Available) + (Memory-Weight * Memory-Available) + (CPU-Weight * CPU-Available)) = $10/((9*8gpu)+ (0.1 * 488GB) + (.9 * 64vcpu)) = $0.056

Cost-per-GPU-Hour = GPU-Weight * UnitCostPerResource = 9 * $0.056 = $0.504

Cost-per-vcpu-Hour = CPU-Weight * UnitCostPerResource = .9 * $0.056 = $0.05

Cost-per-GB-Hour = Memory-Weight * UnitCostPerResource = .1 * $0.056 = $0.00506

Tabel 1: Perhitungan biaya unit
Instans Tipe Instans vCPU Tersedia GPU Tersedia ** Memori Tersedia Biaya Amortisasi per Jam Biaya per VCPU-jam Biaya per GPU-jam Biaya per GB-jam
Instans 1 p3.16xlarge 64 8 488 $10 $0,05 $0,50 0,005

Langkah 2: Hitung kapasitas yang dialokasikan dan tidak terpakai

Kapasitas yang Dialokasikan

GPU, vcpu, dan Memori yang dialokasikan ke Pod Kubernetes dari EC2 Instance induk, didefinisikan sebagai kapasitas Maksimum (reserved, used)

Contoh Kapasitas yang Tidak Digunakan

Kapasitas GPU, vcpu, dan Memori yang tidak terpakai

Pod1-Allocated-GPU = Max (1 GPU, 1 GPU) = 1 GPU

Pod1-Allocated-vcpu = Max (16 vcpu, 4 vcpu) = 16 vcpu

Pod1-Allocated-Memory = Max (100 GB, 60 GB) = 100 GB

Instance-Unused-GPU = Max (GPU-Available - SUM(Allocated-vcpu), 0)

= Max (8 – 8, 0) = 0

Instance-Unused-vcpu = Max (CPU-Available - SUM(Allocated-vcpu), 0)

= Max (16 – 18, 0) = 0

Instance-Unused-Memory = Max (Memory-Available - SUM(Allocated-Memory), 0)

= Max (488 – 440, 0) = 48 GB

Dalam contoh ini, instance memiliki CPU over subscription, dikaitkan dengan Pod 2 yang menggunakan lebih banyak GPU dan vcpu daripada yang dicadangkan.

Tabel 2: Hitung Kapasitas yang Dialokasikan dan Tidak Digunakan
Nama Pod Namespace vcpu Dilindungi vcpu Digunakan vcpu Dialokasikan GPU Dilindungi GPU digunakan GPU Dialokasikan Memori Cadangan Memori yang Digunakan Memori Dialokasikan
Pod 1 Ruang nama 1 16 4 16 1 1 1 100 60 100
Pod 2 Ruang nama 2 16 18 18 2 3 3 100 140 140
Pod 3 Ruang nama 1 16 4 16 2 1 2 100 60 100
Pod 4 Ruang nama 2 16 4 16 2 2 2 100 40 100
Tidak terpakai Tidak terpakai 0 34 0 1 1 0 88 188 48
*** 64 32 66 8 8 8 488 488 488

Langkah 3: Hitung rasio penggunaan dan pemanfaatan terpisah

Rasio penggunaan split

Persentase CPU atau memori yang digunakan oleh pod Kubernetes dibandingkan dengan keseluruhan CPU atau memori yang tersedia pada instance. EC2

Rasio yang tidak digunakan

Persentase CPU atau memori yang digunakan oleh pod Kubernetes dibandingkan dengan keseluruhan CPU atau memori yang digunakan pada EC2 instance (yaitu, tidak memfaktorkan CPU atau memori yang tidak terpakai pada instance).

Persentase CPU atau memori yang digunakan oleh Kubernetes Pod dibandingkan dengan keseluruhan CPU atau memori yang tersedia pada Instance. EC2

Pod1-GPU-Utilization-Ratio = Allocated-GPU / Total-GPU

= 1 gpu / 8 gpu = 0.125

Pod1-vcpu-Utilization-Ratio = Allocated-vcpu / Total-vcpu

= 16 vcpu / 66 vcpu = 0.24

Pod1-Memory-Utilization-Ratio = Allocated-GB / Total-GB

= 100 GB/ 488GB = 0.205

Pod1-GPU-Split-Ratio = Pod1-GPU-Utilization-Ratio / (Total-GPU-Utilization-Ratio – Instance-Unused-GPU). Set to 0 if Instance-Unused-GPU = 0

= 0 since Instance-Unused-GPU is 0

Pod1-vcpu-Split-Ratio = Pod1-CPU-Utilization-Ratio / (Total-CPU-Utilization-Ratio – Instance-Unused-CPU). Set to 0 if Instance-Unused-CPU = 0

= 0 since Instance-Unused-CPU is 0

Pod1-Memory-Split-Ratio = Pod-Memory-Utilization-Ratio / (Total-Utilization-Ratio – Instance-Unused-Memory). Set to 0 if Instance-Unused-Memory = 0

= 0.204/ (1-0.102) = 0.227

Tabel 3: Rasio Pemanfaatan Komputasi
Nama Pod Namespace Pemanfaatan vcpu Rasio Pemisahan vcpu Pemanfaatan GPU Rasio Pemisahan GPU Pemanfaatan Memori Rasio Pemisahan Memori
Pod 1 Ruang nama 1 0,242 0 0,125 0 0.205 0,227
Pod 2 Ruang nama 2 0,267 0 0,375 0 0,287 0.318
Pod 3 Ruang nama 1 0,242 0 0,25 0 0.205 0,227
Pod 4 Ruang nama 2 0,242 0 0,25 0 0.205 0,227
Tidak terpakai Tidak terpakai 0 0,098
1 0 1 0 1 1

Langkah 4: Hitung biaya split dan biaya yang tidak terpakai

Biaya Split

Alokasi biaya bayar per penggunaan biaya EC2 Instans berdasarkan penggunaan CPU dan memori yang dialokasikan oleh Kubernetes Pods

Biaya Instans yang Tidak Digunakan

Biaya CPU atau sumber daya memori yang tidak digunakan pada instance

Pod1-Split-Cost = (Pod1-GPU-Utilization-Ratio * GPU-Available * Cost per GPU-Hour) + (Pod1-vcpu-Utilization-Ratio * vcpu-Available * Cost per vcpu-Hour) + (Pod1-Memory-Utilization-Ratio * Memory-Available * Cost per GB-Hour)

= (.125*8gpu*$0.504) + (0.242 * 64 vcpu * $0.05) + (0.204 * 488GB * $0.00506) = 0.504+ 0.774 + 0.503 = $1.85

Pod1-Unused-Cost = (GPU-Split-Ratio * Unused-Cost) + (vcpu-Split-Ratio * Unused-Cost) + (Memory-Split-Ratio * Unused-Cost)

= (0*0*8*$0.504) + (0 * $0.05) + (0.227 *.102*488GB*$.00506) = $0.06

Pod1-Total-Split-Cost = Pod1-Split-Cost + Pod1-Unused-Cost = $1.85 + $0.06 = $1.91

[Catatan: Biaya yang tidak digunakan = Rasio util yang tidak digunakan * Total sumber daya * biaya per jam sumber daya]

Tabel 4 - Ringkasan biaya Split dan Unused yang dihitung setiap jam untuk semua Pod yang berjalan di dalam klaster
Nama Pod Namespace Biaya Split Biaya yang tidak terpakai Total Biaya
Pod 1 Ruang nama 1 $1,85 $0,06 $1.91
Pod 2 Ruang nama 2 $3,18 $0,09 $3,26
Pod 3 Ruang nama 1 $2,35 $0,06 $2,41
Pod 4 Ruang nama 2 $2,35 $0,06 $2,41
Total $10