Sebelum Anda melakukan operasi untuk menerapkan load balancing pada sistem terdistribusi Anda, Anda harus mengukur tingkat load balancing sistem tersebut dengan cara yang akurat. Topik ini menjelaskan sintaksis dari fungsi pengukuran load balancing. Topik ini juga memberikan contoh tentang cara menggunakan fungsi tersebut.
Informasi latar belakang
Log sampel tempat fungsi pengukuran load balancing digunakan mencakup bidang terindeks berikut: ID kluster, ID server, waktu, beban CPU, beban memori, dan beban lebar pita jaringan. Untuk informasi lebih lanjut, lihat Buat Indeks.

Contoh Log:
{"cluster_id":"C001","cpu_load":"0.1","network_load":"0.6","ram_load":"0.7","server_id":"S001","time_period":"2024-01-01 00:00:00"}
{"cluster_id":"C001","cpu_load":"0.2","network_load":"0.5","ram_load":"0.8","server_id":"S002","time_period":"2024-01-01 00:01:00"}
{"cluster_id":"C001","cpu_load":"0.1","network_load":"0.6","ram_load":"0.7","server_id":"S001","time_period":"2024-01-01 00:02:00"}
{"cluster_id":"C001","cpu_load":"0.2","network_load":"0.5","ram_load":"0.8","server_id":"S002","time_period":"2024-01-01 00:03:00"}
{"cluster_id":"C001","cpu_load":"0.1","network_load":"0.6","ram_load":"0.7","server_id":"S001","time_period":"2024-01-01 00:04:00"}
{"cluster_id":"C001","cpu_load":"0.2","network_load":"0.5","ram_load":"0.8","server_id":"S002","time_period":"2024-01-01 00:05:00"}
{"cluster_id":"C001","cpu_load":"0.1","network_load":"0.6","ram_load":"0.7","server_id":"S001","time_period":"2024-01-01 00:06:00"}
{"cluster_id":"C001","cpu_load":"0.2","network_load":"0.5","ram_load":"0.8","server_id":"S002","time_period":"2024-01-01 00:07:00"}
{"cluster_id":"C001","cpu_load":"0.1","network_load":"0.6","ram_load":"0.7","server_id":"S001","time_period":"2024-01-01 00:08:00"}
{"cluster_id":"C001","cpu_load":"0.2","network_load":"0.5","ram_load":"0.8","server_id":"S002","time_period":"2024-01-01 00:09:00"}Fungsi pengukuran load balancing
Fungsi | Sintaksis | Deskripsi | Tipe data nilai kembali |
how_balanced(array(array(double)) load_matrix) | Mengukur tingkat load balancing sistem terdistribusi Anda. Anda harus menggunakan fungsi ini bersama dengan fungsi array_agg. Untuk informasi lebih lanjut, lihat fungsi array_agg. Nilai kembali menunjukkan tingkat load balancing. Nilai valid: | double |
fungsi how_balanced
Fungsi how_balanced mengukur tingkat load balancing dalam sistem terdistribusi Anda. Fungsi ini harus digunakan bersama dengan fungsi array_agg. Untuk informasi lebih lanjut, lihat fungsi array_agg.
double how_balanced(array(array(double)) load_matrix)Parameter | Deskripsi |
| Matriks beban. Setiap baris menentukan vektor deret waktu beban server. |
Contoh
Pernyataan Kueri
* | with server_time_series as ( select cluster_id, server_id, array_agg(to_unixtime(date_parse(time_period, '%Y-%m-%d %H:%i:%s'))) as time_periods, array_agg(cpu_load + ram_load + network_load) as metric_values from log where time_period >= '2024-01-01 00:00:00' and time_period < '2024-01-02 00:00:00' group by cluster_id, server_id ), imputed_server_series as ( select cluster_id, server_id, ts_fill_missing( time_periods, metric_values, to_unixtime(date_parse('2024-01-01 00:00:00', '%Y-%m-%d %H:%i:%s')), to_unixtime(date_parse('2024-01-02 00:00:00', '%Y-%m-%d %H:%i:%s')), '1 minute', 'value=0') as imputed_time_series from server_time_series ) select cluster_id, how_balanced(array_agg(imputed_time_series[2])) as balance from imputed_server_series group by cluster_idHasil Kueri dan Analisis
balancemenunjukkan tingkat load balancing. Nilai valid:(0,1]. Semakin dekat nilai ke 1, semakin tinggi tingkat load balancing. Nilai 1 menunjukkan load balancing sempurna.cluster_id
balance
G1
0.5