Mengoptimalkan performa dan biaya lingkungan

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

Halaman ini menjelaskan cara menyesuaikan skala dan parameter performa lingkungan dengan kebutuhan project, agar Anda mendapatkan performa yang lebih baik dan mengurangi biaya untuk resource yang tidak digunakan oleh lingkungan.

Halaman lain tentang penskalaan dan pengoptimalan:

Ringkasan proses pengoptimalan

Membuat perubahan pada parameter lingkungan dapat memengaruhi banyak aspek performa lingkungan Anda. Sebaiknya optimalkan lingkungan Anda secara iterasi:

  1. Memulai dengan preset lingkungan.
  2. Jalankan DAG Anda.
  3. Amati performa lingkungan Anda.
  4. Sesuaikan skala lingkungan dan parameter performa Anda, lalu ulangi dari langkah sebelumnya.

Memulai dengan preset lingkungan

Saat membuat lingkungan di Konsol Google Cloud, Anda dapat memilih salah satu dari tiga preset lingkungan. Preset ini menetapkan skala awal dan konfigurasi performa lingkungan Anda; setelah membuat lingkungan, Anda dapat mengubah semua parameter skala dan performa yang disediakan oleh preset.

Sebaiknya mulai dengan salah satu preset, berdasarkan perkiraan berikut:

  • Jumlah total DAG yang ingin Anda deploy di lingkungan
  • Jumlah maksimum operasi DAG serentak
  • Jumlah maksimum tugas serentak

Performa lingkungan Anda bergantung pada penerapan DAG tertentu yang Anda jalankan di lingkungan Anda. Tabel berikut mencantumkan perkiraan yang didasarkan pada konsumsi resource rata-rata. Jika Anda memperkirakan DAG akan menggunakan lebih banyak resource, sesuaikan estimasinya.

Preset yang direkomendasikan Total DAG Operasi DAG serentak maksimum Tugas serentak maksimum
Kecil 50 15 18
Sedang 250 60 100
Besar 1000 250 400

Misalnya, sebuah lingkungan harus menjalankan 40 DAG. Semua DAG harus dijalankan bersamaan dengan satu tugas aktif masing-masing. Lingkungan ini kemudian akan menggunakan preset Media, karena jumlah maksimum operasi dan tugas DAG serentak melebihi perkiraan yang direkomendasikan untuk preset Kecil.

Menjalankan DAG

Setelah lingkungan dibuat, upload DAG ke lingkungan tersebut. Jalankan DAG dan amati performa lingkungan.

Sebaiknya jalankan DAG pada jadwal yang mencerminkan penerapan sebenarnya DAG Anda. Misalnya, jika Anda ingin menjalankan beberapa DAG secara bersamaan, pastikan untuk memeriksa performa lingkungan saat semua DAG ini berjalan secara bersamaan.

Mengamati performa lingkungan Anda

Bagian ini berfokus pada aspek penyesuaian performa dan kapasitas Cloud Composer 2 yang paling umum. Sebaiknya ikuti panduan ini langkah demi langkah karena pertimbangan performa yang paling umum dibahas terlebih dahulu.

Buka dasbor Monitoring

Anda dapat memantau metrik performa lingkungan di dasbor Monitoring lingkungan Anda.

Untuk membuka dasbor Monitoring untuk lingkungan Anda:

  1. Di Konsol Google Cloud, buka halaman Environments.

    Buka Lingkungan

  2. Klik nama lingkungan Anda.

  3. Buka tab Monitoring.

Memantau metrik memori dan CPU penjadwal

Metrik CPU dan memori penjadwal Airflow membantu Anda memeriksa apakah performa penjadwal merupakan bottleneck dalam performa Airflow secara keseluruhan.

Grafik untuk penjadwal Ariflow
Gambar 1. Grafik untuk penjadwal Airflow (klik untuk memperbesar)

Di dasbor Monitoring, di bagian Schedulers, amati grafik untuk penjadwal Airflow lingkungan Anda:

  • Total penggunaan CPU penjadwal
  • Total penggunaan memori penjadwal

Sesuaikan dengan pengamatan Anda:

Memantau total waktu penguraian untuk semua file DAG

Penjadwal akan mengurai DAG sebelum menjadwalkan operasi DAG. Jika DAG memerlukan waktu yang lama untuk diurai, hal ini akan menghabiskan kapasitas penjadwal dan dapat mengurangi performa operasi DAG.

Grafik waktu penguraian DAG total
Gambar 2. Grafik untuk waktu penguraian DAG (klik untuk memperbesar)

Di dasbor Monitoring, di bagian Statistik DAG, amati grafik total waktu penguraian DAG.

Jika jumlahnya melebihi sekitar 10 detik, penjadwal Anda mungkin kelebihan beban dengan penguraian DAG dan tidak dapat menjalankan DAG secara efektif. Frekuensi penguraian DAG default di Airflow adalah 30 detik; jika waktu penguraian DAG melebihi batas ini, siklus penguraian mulai tumpang-tindih, yang kemudian menghabiskan kapasitas penjadwal.

Menurut pengamatan Anda, Anda mungkin ingin:

Memantau penghapusan pod pekerja

Penghapusan pod dapat terjadi jika pod tertentu di cluster lingkungan Anda mencapai batas resource.

Grafik penghapusan pod pekerja
Gambar 3. Grafik yang menampilkan penghapusan pod pekerja (klik untuk memperbesar)

Jika pod pekerja Airflow dikeluarkan, semua instance tugas yang berjalan pada pod tersebut akan terganggu, lalu ditandai sebagai gagal oleh Airflow.

Sebagian besar masalah dengan penghapusan pod pekerja terjadi karena situasi kehabisan memori pada pekerja.

Pada dasbor Monitoring, di bagian Workers, amati grafik penghentian Pod Pekerja untuk lingkungan Anda.

Grafik Total worker memory usage menampilkan total perspektif lingkungan. Satu worker masih dapat melebihi batas memori, meskipun penggunaan memori sehat di tingkat lingkungan.

Menurut pengamatan Anda, Anda mungkin ingin:

Memantau pekerja aktif

Jumlah pekerja di lingkungan Anda akan diskalakan secara otomatis sebagai respons terhadap tugas dalam antrean.

Grafik pekerja aktif dan tugas dalam antrean
Gambar 4. Grafik pekerja aktif dan tugas dalam antrean (klik untuk memperbesar)

Di dasbor Monitoring, di bagian Workers, amati grafik jumlah pekerja aktif dan jumlah tugas dalam antrean:

  • Pekerja yang aktif
  • Tugas Airflow

Sesuaikan dengan pengamatan Anda:

  • Jika lingkungan sering kali mencapai batas maksimum untuk pekerja, dan pada saat yang sama jumlah tugas dalam antrean Seledri terus meningkat, Anda mungkin perlu meningkatkan jumlah maksimum pekerja.
  • Jika terdapat penundaan penjadwalan antar-tugas yang panjang, tetapi pada saat yang sama lingkungan tidak meningkatkan skala ke jumlah maksimum pekerjanya, kemungkinan ada setelan Airflow yang akan men-throttle eksekusi dan mencegah mekanisme Cloud Composer menskalakan lingkungan. Karena Cloud Composer 2 lingkungan berskala berdasarkan jumlah tugas di antrean Celery, konfigurasikan Airflow agar tidak mempercepat tugas dalam antrean:

    • Meningkatkan konkurensi pekerja. Serentak pekerja harus ditetapkan ke nilai yang lebih tinggi dari jumlah maksimum tugas serentak yang diharapkan, dibagi dengan jumlah maksimum pekerja di lingkungan.
    • Meningkatkan konkurensi DAG, jika satu DAG menjalankan banyak tugas secara paralel, yang dapat menyebabkan tercapainya jumlah maksimum instance tugas yang berjalan per DAG.
    • Meningkatkan maksimum pengoperasian aktif per DAG, jika Anda menjalankan DAG yang sama beberapa kali secara paralel, yang dapat menyebabkan Airflow membatasi eksekusi karena batas maksimum berjalan per DAG tercapai.

Memantau penggunaan CPU dan memori pekerja

Pantau total penggunaan CPU dan memori yang digabungkan dari semua pekerja di lingkungan Anda untuk mengetahui apakah pekerja Airflow memanfaatkan resource lingkungan Anda dengan tepat.

Grafik CPU dan memori pekerja
Gambar 5. Grafik CPU dan memori pekerja (klik untuk memperbesar)

Pada dasbor Monitoring, di bagian Workers, amati grafik penggunaan CPU dan memori oleh pekerja Airflow:

  • Total penggunaan CPU pekerja
  • Total penggunaan memori pekerja

Grafik ini merepresentasikan penggunaan resource gabungan; setiap pekerja mungkin masih mencapai batas kapasitasnya, meskipun tampilan gabungan menunjukkan kapasitas cadangan.

Sesuaikan dengan pengamatan Anda:

Memantau tugas yang berjalan dan dalam antrean

Anda dapat memantau jumlah tugas dalam antrean dan yang sedang berjalan untuk memeriksa efisiensi proses penjadwalan.

Grafik yang menampilkan tugas yang berjalan dan dalam antrean
Gambar 6. Grafik yang menampilkan tugas yang berjalan dan dalam antrean (klik untuk memperbesar)

Di dasbor Monitoring, di bagian Workers, amati grafik Airflow tasks untuk lingkungan Anda.

Tugas dalam antrean sedang menunggu untuk dieksekusi oleh pekerja. Jika lingkungan Anda memiliki tugas dalam antrean, ini dapat berarti bahwa pekerja di lingkungan Anda sibuk menjalankan tugas lainnya.

Beberapa antrean selalu ada di lingkungan, terutama selama puncak pemrosesan. Namun, jika Anda melihat banyak tugas dalam antrean, atau tren yang terus meningkat dalam grafik, hal ini mungkin menunjukkan bahwa pekerja tidak memiliki kapasitas yang cukup untuk memproses tugas, atau Airflow menghambat eksekusi tugas.

Jumlah tugas dalam antrean yang tinggi biasanya diamati saat jumlah tugas yang berjalan juga mencapai level maksimum.

Untuk mengatasi kedua masalah tersebut:

Memantau penggunaan memori dan CPU database

Masalah performa database Airflow dapat menyebabkan masalah eksekusi DAG secara keseluruhan. Penggunaan disk database biasanya tidak perlu dikhawatirkan karena penyimpanan otomatis diperpanjang sesuai kebutuhan.

Grafik memori dan CPU database
Gambar 7. Grafik memori dan CPU database (klik untuk memperbesar)

Pada dasbor Monitoring, di bagian Database SQL, amati grafik penggunaan CPU dan memori oleh database Airflow:

  • Penggunaan CPU database
  • Penggunaan memori database

Jika penggunaan CPU database melebihi 80% selama lebih dari beberapa persen dari total waktu, database akan kelebihan beban dan memerlukan penskalaan.

Setelan ukuran database dikontrol oleh properti ukuran lingkungan lingkungan Anda. Untuk menaikkan atau menurunkan skala database, ubah ukuran lingkungan ke tingkat yang berbeda (Kecil, Sedang, atau Besar). Meningkatkan ukuran lingkungan akan meningkatkan biaya lingkungan Anda.

Memantau latensi penjadwalan tugas

Jika latensi antar-tugas melebihi level yang diharapkan (misalnya, 20 detik atau lebih), hal ini mungkin menunjukkan bahwa lingkungan tersebut tidak dapat menangani beban tugas yang dihasilkan oleh operasi DAG.

Grafik latensi tugas (UI Airflow)
Gambar 8. Grafik latensi tugas, UI Airflow (klik untuk memperbesar)

Anda dapat melihat grafik latensi penjadwalan tugas di UI Airflow di lingkungan Anda.

Dalam contoh ini, penundaan (2,5 dan 3,5 detik) berada dalam batas yang dapat diterima, tetapi latensi yang jauh lebih tinggi mungkin menunjukkan bahwa:

Memantau CPU dan memori server web

Performa server web Airflow memengaruhi UI Airflow. Biasanya server web akan kelebihan beban. Jika ini terjadi, performa UI Airflow mungkin akan menurun, tetapi ini tidak memengaruhi performa operasi DAG.

Grafik memori dan CPU server web
Gambar 9. Grafik memori dan CPU server web (klik untuk memperbesar)

Di dasbor Monitoring, di bagian Server web, amati grafik untuk server web Airflow:

  • Penggunaan CPU server web
  • Penggunaan memori server web

Berdasarkan pengamatan Anda:

Menyesuaikan parameter performa dan skala lingkungan

Mengubah jumlah penjadwal

Menyesuaikan jumlah penjadwal akan meningkatkan kapasitas penjadwal dan ketahanan penjadwalan Airflow.

Jika Anda meningkatkan jumlah penjadwal, traffic ke dan dari database Airflow akan meningkat. Sebaiknya gunakan dua penjadwal Airflow di sebagian besar skenario. Penggunaan lebih dari dua penjadwal hanya diperlukan dalam kasus yang jarang terjadi yang memerlukan pertimbangan khusus.

Jika Anda membutuhkan penjadwalan yang lebih cepat:

Contoh:

Konsol

Ikuti langkah-langkah di Menyesuaikan jumlah penjadwal untuk menetapkan jumlah penjadwal yang diperlukan untuk lingkungan Anda.

gcloud

Ikuti langkah-langkah di Menyesuaikan jumlah penjadwal untuk menetapkan jumlah penjadwal yang diperlukan untuk lingkungan Anda.

Contoh berikut menetapkan jumlah penjadwal menjadi dua:

gcloud composer environments update example-environment \
    --scheduler-count=2

Terraform

Ikuti langkah-langkah di Menyesuaikan jumlah penjadwal untuk menetapkan jumlah penjadwal yang diperlukan untuk lingkungan Anda.

Contoh berikut menetapkan jumlah penjadwal menjadi dua:

resource "google_composer_environment" "example-environment" {

  # Other environment parameters

  config {
    workloads_config {
      scheduler {
        count = 2
      }
    }
  }
}

Mengubah CPU dan memori untuk penjadwal

Parameter CPU dan memori ditujukan untuk setiap penjadwal di lingkungan Anda. Misalnya, jika lingkungan Anda memiliki dua penjadwal, total kapasitasnya adalah dua kali lipat jumlah CPU dan memori yang ditentukan.

Konsol

Ikuti langkah-langkah di Menyesuaikan pekerja, penjadwal, dan skala server web serta parameter performa guna menetapkan CPU dan memori untuk penjadwal.

gcloud

Ikuti langkah-langkah di Menyesuaikan pekerja, penjadwal, dan skala server web serta parameter performa guna menetapkan CPU dan Memori untuk penjadwal.

Contoh berikut mengubah CPU dan memori untuk penjadwal. Anda dapat menentukan atribut CPU atau Memori saja, bergantung pada kebutuhannya.

gcloud composer environments update example-environment \
  --scheduler-cpu=0.5 \
  --scheduler-memory=3.75

Terraform

Ikuti langkah-langkah di Menyesuaikan pekerja, penjadwal, dan skala server web serta parameter performa guna menetapkan CPU dan memori untuk penjadwal.

Contoh berikut mengubah CPU dan memori untuk penjadwal. Anda dapat menghilangkan atribut CPU atau Memori, bergantung pada kebutuhannya.

resource "google_composer_environment" "example-environment" {

  # Other environment parameters

  config {
    workloads_config {
      scheduler {
        cpu = "0.5"
        memory_gb = "3.75"
      }
    }
  }
}

Mengubah jumlah maksimum pekerja

Dengan meningkatkan jumlah maksimum pekerja, lingkungan Anda dapat otomatis diskalakan ke jumlah pekerja yang lebih tinggi, jika diperlukan.

Penurunan jumlah maksimum pekerja akan mengurangi kapasitas maksimum lingkungan, tetapi juga dapat membantu mengurangi biaya lingkungan.

Contoh:

Konsol

Ikuti langkah-langkah di Menyesuaikan jumlah pekerja minimum dan maksimum untuk menetapkan jumlah maksimum pekerja yang diperlukan untuk lingkungan Anda.

gcloud

Ikuti langkah-langkah di Menyesuaikan jumlah pekerja minimum dan maksimum untuk menetapkan jumlah maksimum pekerja yang diperlukan untuk lingkungan Anda.

Contoh berikut menetapkan jumlah maksimum pekerja ke enam:

gcloud composer environments update example-environment \
    --max-workers=6

Terraform

Ikuti langkah-langkah di Menyesuaikan jumlah pekerja minimum dan maksimum untuk menetapkan jumlah maksimum pekerja yang diperlukan untuk lingkungan Anda.

Contoh berikut menetapkan jumlah maksimum penjadwal ke enam:

resource "google_composer_environment" "example-environment" {

  # Other environment parameters

  config {
    workloads_config {
      worker {
        max_count = "6"
      }
    }
  }
}

Mengubah CPU dan memori pekerja

  • Penurunan memori pekerja dapat berguna saat grafik penggunaan pekerja menunjukkan penggunaan memori yang sangat rendah.

  • Peningkatan memori pekerja memungkinkan pekerja menangani lebih banyak tugas secara serentak atau menangani tugas yang menguras memori. Tindakan ini mungkin dapat mengatasi masalah penghapusan pod pekerja.

  • Penurunan CPU pekerja dapat berguna jika grafik penggunaan CPU pekerja menunjukkan bahwa resource CPU memiliki alokasi yang tinggi.

  • Peningkatan CPU pekerja memungkinkan pekerja menangani lebih banyak tugas secara serentak dan dalam beberapa kasus, mengurangi waktu yang diperlukan untuk memproses tugas ini.

Mengubah CPU atau memori pekerja akan memulai ulang pekerja, yang dapat memengaruhi tugas yang sedang berjalan. Sebaiknya lakukan saat tidak ada DAG yang berjalan.

Parameter CPU dan memori ditujukan untuk setiap pekerja di lingkungan Anda. Misalnya, jika lingkungan Anda memiliki empat pekerja, total kapasitasnya adalah empat kali lipat jumlah CPU dan memori yang ditentukan.

Konsol

Ikuti langkah-langkah di Menyesuaikan parameter performa serta skala pekerja, penjadwal, dan server web untuk menetapkan CPU dan memori bagi pekerja.

gcloud

Ikuti langkah-langkah di Menyesuaikan pekerja, penjadwal, dan parameter skala dan performa server web untuk menetapkan CPU dan memori untuk pekerja.

Contoh berikut mengubah CPU dan memori untuk worker. Anda dapat menghapus atribut CPU atau memori, jika diperlukan.

gcloud composer environments update example-environment \
  --worker-memory=3.75 \
  --worker-cpu=2

Terraform

Ikuti langkah-langkah di Menyesuaikan parameter performa serta skala pekerja, penjadwal, dan server web untuk menetapkan CPU dan memori bagi pekerja.

Contoh berikut mengubah CPU dan memori untuk worker. Anda dapat menghapus parameter CPU atau memori, jika diperlukan.

resource "google_composer_environment" "example-environment" {

  # Other environment parameters

  config {
    workloads_config {
      worker {
        cpu = "2"
        memory_gb = "3.75"
      }
    }
  }
}

Mengubah CPU dan memori server web

Menurunkan CPU atau memori server web dapat berguna saat grafik penggunaan server web menunjukkan bahwa CPU atau memori server web tersebut terus-menerus kurang dimanfaatkan.

Mengubah parameter server web akan memulai ulang server web, yang menyebabkan periode nonaktif server web sementara. Sebaiknya lakukan perubahan di luar jam penggunaan reguler.

Konsol

Ikuti langkah-langkah di Menyesuaikan pekerja, penjadwal, dan parameter skala serta performa server web guna menetapkan CPU dan memori untuk server web.

gcloud

Ikuti langkah-langkah di Menyesuaikan pekerja, penjadwal, dan skala server web serta parameter performa guna menetapkan CPU dan Memori untuk server web.

Contoh berikut mengubah CPU dan memori untuk server web. Anda dapat menghilangkan atribut CPU atau memori, bergantung pada kebutuhannya.

gcloud composer environments update example-environment \
    --web-server-cpu=2 \
    --web-server-memory=3.75

Terraform

Ikuti langkah-langkah di Menyesuaikan pekerja, penjadwal, dan parameter skala serta performa server web guna menetapkan CPU dan memori untuk server web.

Contoh berikut mengubah CPU dan memori untuk server web. Anda dapat menghilangkan atribut CPU atau memori, bergantung pada kebutuhannya.

resource "google_composer_environment" "example-environment" {

  # Other environment parameters

  config {
    workloads_config {
      web_server {
        cpu = "2"
        memory_gb = "3.75"
      }
    }
  }
}

Mengubah ukuran lingkungan

Mengubah ukuran lingkungan akan mengubah kapasitas komponen backend Cloud Composer, seperti database Airflow dan antrean Airflow.

  • Pertimbangkan untuk mengubah ukuran lingkungan ke ukuran yang lebih kecil (misalnya, Besar ke Sedang, atau Sedang ke Kecil) saat metrik penggunaan Database menunjukkan kurangnya pemanfaatan yang signifikan.
  • Pertimbangkan untuk meningkatkan ukuran lingkungan jika Anda mengamati tingginya penggunaan database Airflow.

Konsol

Ikuti langkah-langkah di bagian Menyesuaikan ukuran lingkungan untuk menetapkan ukuran lingkungan.

gcloud

Ikuti langkah-langkah di bagian Menyesuaikan ukuran lingkungan untuk menetapkan ukuran lingkungan.

Contoh berikut mengubah ukuran lingkungan menjadi Medium.

gcloud composer environments update example-environment \
    --environment-size=medium

Terraform

Ikuti langkah-langkah di bagian Menyesuaikan ukuran lingkungan untuk menetapkan ukuran lingkungan.

Contoh berikut mengubah ukuran lingkungan menjadi Medium.

resource "google_composer_environment" "example-environment" {

  # Other environment parameters

  config {
    environment_size = "medium"
  }
}

Mengubah interval listingan direktori DAG

Peningkatan interval listingan direktori DAG akan mengurangi beban penjadwal yang terkait dengan penemuan DAG baru di bucket lingkungan.

  • Pertimbangkan untuk meningkatkan interval ini jika Anda jarang men-deploy DAG baru.
  • Pertimbangkan untuk mengurangi interval ini jika Anda ingin Airflow bereaksi lebih cepat terhadap file DAG yang baru di-deploy.

Untuk mengubah parameter ini, ganti opsi konfigurasi Airflow berikut:

Bagian Kunci Nilai Notes
scheduler dag_dir_list_interval Nilai baru untuk interval listingan Nilai default, dalam detik, adalah 120.

Mengubah interval penguraian file DAG

Peningkatan interval penguraian file DAG akan mengurangi beban penjadwal yang terkait dengan penguraian berkelanjutan DAG di tas DAG.

Pertimbangkan untuk meningkatkan interval ini saat Anda memiliki jumlah DAG tinggi yang tidak terlalu sering berubah, atau amati beban penjadwal yang tinggi secara umum.

Untuk mengubah parameter ini, ganti opsi konfigurasi Airflow berikut:

Bagian Kunci Nilai Notes
scheduler min_file_process_interval Nilai baru untuk interval penguraian DAG Nilai default, dalam detik, adalah 30.

Konkurensi pekerja

Performa serentak dan kemampuan lingkungan Anda untuk melakukan penskalaan otomatis terhubung ke dua setelan:

  • jumlah minimum worker Airflow
  • parameter [celery]worker_concurrency

Nilai default yang diberikan oleh Cloud Composer optimal untuk sebagian besar kasus penggunaan, tetapi lingkungan Anda mungkin dapat memanfaatkan penyesuaian kustom.

Pertimbangan performa konkurensi pekerja

Parameter [celery]worker_concurrency menentukan jumlah tugas yang dapat diambil satu pekerja dari task queue. Kecepatan eksekusi tugas bergantung pada beberapa faktor, seperti CPU pekerja, memori, dan jenis pekerjaan itu sendiri.

Penskalaan otomatis pekerja

Cloud Composer memantau task queue dan menghasilkan pekerja tambahan untuk mengambil tugas yang sedang menunggu. Jika [celery]worker_concurrency disetel ke nilai tinggi, setiap worker dapat mengambil banyak tugas. Jadi, dalam keadaan tertentu, antrean mungkin tidak pernah terisi, sehingga penskalaan otomatis tidak akan pernah dipicu.

Misalnya, di lingkungan Cloud Composer dengan dua pekerja Airflow, [celery]worker_concurrency ditetapkan ke 100, dan tugas 200 dalam antrean, setiap pekerja akan mengambil 100 tugas. Tindakan ini akan membuat antrean kosong dan tidak memicu penskalaan otomatis. Jika tugas tersebut memerlukan waktu lama, dapat menyebabkan masalah performa.

Namun, jika tugas berukuran kecil dan cepat dijalankan, nilai yang tinggi dalam setelan [celery]worker_concurrency dapat menyebabkan penskalaan yang berlebihan. Misalnya, jika lingkungan tersebut memiliki 300 tugas dalam antrean, Cloud Composer akan mulai membuat pekerja baru. Namun, jika 200 tugas pertama selesai dieksekusi pada saat pekerja baru siap, pekerja yang ada dapat melanjutkannya. Hasil akhirnya adalah penskalaan otomatis membuat worker baru, tetapi tidak ada tugas untuk mereka.

Penyesuaian [celery]worker_concurrency untuk kasus khusus harus didasarkan pada waktu eksekusi tugas puncak dan jumlah antrean Anda:

  • Untuk tugas yang memerlukan waktu lebih lama, pekerja tidak boleh mengosongkan antrean sepenuhnya.
  • Untuk tugas yang lebih cepat dan lebih kecil, tingkatkan jumlah minimum pekerja Airflow untuk menghindari penskalaan yang berlebihan.

Sinkronisasi log tugas

Pekerja Airflow menampilkan komponen yang menyinkronkan log eksekusi tugas ke bucket Cloud Storage. Jumlah tugas serentak yang tinggi yang dilakukan oleh satu pekerja menyebabkan tingginya jumlah permintaan sinkronisasi. Hal ini mungkin bisa membebani worker Anda dan menyebabkan masalah performa.

Jika Anda mengamati masalah performa karena jumlah traffic sinkronisasi log yang tinggi, turunkan nilai [celery]worker_concurrency dan sesuaikan jumlah minimum pekerja Airflow.

Mengubah konkurensi pekerja

Mengubah parameter ini akan menyesuaikan jumlah tugas yang dapat dijalankan oleh satu pekerja secara bersamaan.

Misalnya, Pekerja dengan CPU 0,5 biasanya dapat menangani 6 tugas serentak; lingkungan dengan tiga pekerja tersebut dapat menangani hingga 18 tugas serentak.

  • Tingkatkan parameter ini saat ada tugas yang menunggu dalam antrean, dan pekerja Anda menggunakan persentase CPU dan memori yang rendah secara bersamaan.

  • Kurangi parameter ini saat Anda mendapatkan penghapusan pod; hal ini akan mengurangi jumlah tugas yang coba diproses oleh satu pekerja. Sebagai alternatif, Anda dapat meningkatkan memori pekerja.

Nilai default untuk konkurensi pekerja sama dengan:

  • Di Airflow 2.6.3 dan versi yang lebih baru, nilai minimum dari 32, 12 * worker_CPU, dan 6 * worker_memory.
  • Pada versi Airflow sebelum 2.6.3, nilai minimum dari 32, 12 * worker_CPU, dan 8 * worker_memory.
  • Di Airflow versi sebelum 2.3.3, 12 * worker_CPU.

Nilai worker_CPU adalah jumlah CPU yang dialokasikan ke satu pekerja. Nilai worker_memory adalah jumlah memori yang dialokasikan ke satu pekerja. Misalnya, jika pekerja di lingkungan Anda masing-masing menggunakan 0,5 CPU dan memori 4 GB, konkurensi pekerja akan ditetapkan ke 6. Nilai konkurensi pekerja tidak bergantung pada jumlah pekerja di lingkungan Anda.

Untuk mengubah parameter ini, ganti opsi konfigurasi Airflow berikut:

Bagian Kunci Nilai
celery worker_concurrency Nilai baru untuk konkurensi pekerja

Mengubah konkurensi DAG

Konkurensi DAG menentukan jumlah maksimum instance tugas yang diizinkan untuk dijalankan secara serentak di setiap DAG. Tingkatkan saat DAG menjalankan tugas serentak dalam jumlah besar. Jika setelan ini rendah, penjadwal akan menunda menempatkan lebih banyak tugas ke dalam antrean, yang juga akan mengurangi efisiensi penskalaan otomatis lingkungan.

Untuk mengubah parameter ini, ganti opsi konfigurasi Airflow berikut:

Bagian Kunci Nilai Notes
core max_active_tasks_per_dag Nilai baru untuk konkurensi DAG Nilai defaultnya adalah 16

Meningkatkan maksimal run aktif per DAG

Atribut ini menentukan jumlah maksimum operasi DAG aktif per DAG. Jika DAG yang sama harus dijalankan beberapa kali secara serentak, misalnya, dengan argumen input yang berbeda, atribut ini memungkinkan penjadwal untuk memulai operasi tersebut secara paralel.

Untuk mengubah parameter ini, ganti opsi konfigurasi Airflow berikut:

Bagian Kunci Nilai Notes
core max_active_runs_per_dag Nilai baru untuk maksimum operasi aktif per DAG Nilai defaultnya adalah 25

Langkah selanjutnya