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
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.
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
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]
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 |