All Products
Search
Document Center

Simple Log Service:Fungsi pengukuran load balancing

Last Updated:Jun 21, 2026

Untuk menerapkan load balancing dalam sistem terdistribusi, Anda harus terlebih dahulu mengukur secara akurat kondisi load balancing-nya. Topik ini menjelaskan sintaks dasar fungsi tersebut dan memberikan contoh.

Latar Belakang

  • Log sampel berisi enam bidang: ID kluster, ID server, waktu, beban CPU, beban memori, dan beban lebar pita jaringan. Untuk informasi lebih lanjut, lihat Create an index.

    Enam bidang tersebut dikonfigurasi sebagai berikut: cluster_id (text), server_id (text), time_period (text), cpu_load (double), ram_load (double), dan network_load (double). Semua bidang dapat dikueri, dan tokenizer dikonfigurasi untuk bidang teks.

  • Berikut adalah log sampel:

    {"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

Nama fungsi

Sintaks

Deskripsi

Tipe nilai kembali

fungsi how_balanced

how_balanced(array(array(double)) load_matrix)

Mengukur tingkat load balancing dalam sistem terdistribusi saat digunakan bersama fungsi array_agg. Nilai kembali berada dalam rentang (0,1], di mana nilai yang lebih mendekati 1 menunjukkan beban yang lebih seimbang dan nilai 1 merepresentasikan kondisi sempurna seimbang.

double

fungsi how_balanced

Mengukur tingkat load balancing dalam sistem terdistribusi dengan fungsi array_agg.

double how_balanced(array(array(double)) load_matrix)

Parameter

Deskripsi

load_matrix

Matriks beban di mana setiap baris merepresentasikan vektor deret waktu dari beban satu server.

Contoh

  • Pernyataan kueri dan analisis

    * | 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_id
  • Hasil

    Nilai balance yang dikembalikan merepresentasikan tingkat load balancing pada skala (0,1]. Nilai yang lebih mendekati 1 menunjukkan beban yang lebih seimbang.

    Cluster id

    Balance

    G1

    0,5