Mengoptimalkan performa dan biaya lingkungan

Managed Airflow (Gen 3) | Managed Airflow (Gen 2) | Managed Airflow (Legacy Gen 1)

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

Tentang proses pengoptimalan

Melakukan perubahan pada parameter lingkungan dapat memengaruhi banyak aspek performa lingkungan Anda. Sebaiknya optimalkan lingkungan Anda dalam iterasi:

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

Mulai dengan preset lingkungan

Saat membuat lingkungan di konsol Google Cloud , Anda dapat memilih salah satu 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 Anda rencanakan untuk di-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 perkiraan dengan tepat.

Preset yang direkomendasikan Total DAG Operasi DAG serentak maks. Tugas serentak maksimum
Kecil 50 15 18
Sedang 250 60 100
Besar 1000 250 400
Ekstra Besar 3000 750 2250

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

Menjalankan DAG

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

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

Mengamati performa lingkungan Anda

Bagian ini berfokus pada aspek penyesuaian performa dan kapasitas Managed Airflow 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 Environments

  2. Klik nama lingkungan Anda.

  3. Buka tab Monitoring.

Memantau metrik CPU dan memori prosesor DAG

Pemroses DAG Airflow memproses file DAG dan mengubahnya menjadi objek DAG. Di Managed Airflow (Gen 3), pemroses DAG berjalan sebagai komponen lingkungan terpisah dan Anda dapat mengonfigurasi alokasi resource-nya secara terpisah dari penjadwal.

Metrik CPU dan memori pemroses DAG Airflow membantu Anda memeriksa apakah performanya menjadi hambatan dalam performa Airflow secara keseluruhan.

Grafik untuk pemroses DAG Airflow
Gambar 1. Grafik untuk pemroses DAG Airflow (klik untuk memperbesar)

Di dasbor Monitoring, di bagian Pemroses DAG, amati grafik untuk pemroses DAG lingkungan Anda:

Memantau metrik CPU dan memori penjadwal

Metrik CPU dan memori penjadwal Airflow membantu Anda memeriksa apakah performa penjadwal menjadi hambatan dalam keseluruhan performa Airflow.

Grafik untuk penjadwal Airflow
Gambar 2. Grafik untuk penjadwal Airflow (klik untuk memperbesar)

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

  • Total penggunaan CPU penjadwal
  • Total penggunaan memori penjadwal

Sesuaikan dengan pengamatan Anda:

  • Jika penggunaan CPU Scheduler secara konsisten di bawah 30%-35%, Anda dapat:

  • Jika penggunaan CPU Scheduler melebihi 80% selama lebih dari beberapa persen dari total waktu, Anda mungkin ingin:

Memantau total waktu penguraian untuk semua file DAG

Pemroses DAG mengurai DAG sebelum menjadwalkan operasi DAG. Jika DAG memerlukan waktu lama untuk diuraikan, hal ini akan menggunakan kapasitas pemroses DAG dan dapat mengurangi performa operasi DAG.

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

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

Jika jumlahnya melebihi sekitar 10 detik, pemroses DAG 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 nilai minimum ini, siklus penguraian akan mulai tumpang-tindih, yang kemudian akan menghabiskan kapasitas pemroses DAG.

Berdasarkan pengamatan Anda, Anda mungkin ingin:

Memantau penghapusan pod pekerja

Pengusiran Pod dapat terjadi saat Pod tertentu di cluster lingkungan Anda mencapai batas resource-nya.

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

Jika pod worker Airflow dikeluarkan, semua instance tugas yang berjalan di pod tersebut akan terganggu, dan kemudian ditandai sebagai gagal oleh Airflow.

Sebagian besar masalah pengusiran pod pekerja terjadi karena situasi kehabisan memori di pekerja.

Di dasbor Monitoring, di bagian Workers, amati grafik Penghentian paksa Pod Worker untuk lingkungan Anda.

Grafik Total penggunaan memori pekerja menampilkan perspektif total lingkungan. Satu pekerja masih dapat melebihi batas memori, meskipun penggunaan memori dalam kondisi baik di tingkat lingkungan.

Berdasarkan pengamatan Anda, Anda mungkin ingin:

  • Tingkatkan memori yang tersedia untuk pekerja.
  • Kurangi konkurensi pekerja. Dengan cara ini, satu pekerja menangani lebih sedikit tugas sekaligus. Hal ini memberikan lebih banyak memori atau penyimpanan untuk setiap tugas. Jika mengubah konkurensi worker, Anda mungkin juga ingin meningkatkan jumlah maksimum worker. Dengan cara ini, jumlah tugas yang dapat ditangani lingkungan Anda sekaligus tetap sama. Misalnya, jika Anda mengurangi Concurrency worker dari 12 menjadi 6, Anda mungkin ingin menggandakan jumlah maksimum worker.

Memantau pekerja aktif

Jumlah worker di lingkungan Anda akan otomatis diskalakan sebagai respons terhadap tugas yang diantrekan.

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

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

  • Pekerja yang aktif
  • Tugas Airflow

Sesuaikan dengan pengamatan Anda:

  • Jika lingkungan sering mencapai batas maksimum untuk pekerja, dan pada saat yang sama jumlah tugas dalam antrean Celery terus tinggi, Anda mungkin ingin meningkatkan jumlah maksimum pekerja.
  • Jika ada penundaan penjadwalan antar-tugas yang lama, tetapi pada saat yang sama lingkungan tidak di-scale up ke jumlah maksimum pekerja, kemungkinan ada setelan Airflow yang membatasi eksekusi dan mencegah mekanisme Managed Airflow menskalakan lingkungan. Karena lingkungan Managed Airflow menskalakan berdasarkan jumlah tugas dalam antrean Celery, konfigurasikan Airflow agar tidak membatasi tugas saat masuk ke antrean:

    • Meningkatkan konkurensi pekerja. Konkurensi worker harus ditetapkan ke nilai yang lebih tinggi daripada perkiraan jumlah maksimum tugas serentak, dibagi dengan jumlah maksimum worker di lingkungan.
    • Tingkatkan konkurensi DAG, jika satu DAG menjalankan sejumlah besar tugas secara paralel, yang dapat menyebabkan tercapainya jumlah maksimum instance tugas yang berjalan per DAG.
    • Meningkatkan jumlah maksimum eksekusi aktif per DAG, jika Anda menjalankan DAG yang sama beberapa kali secara paralel, yang dapat menyebabkan Airflow membatasi eksekusi karena batas maksimum eksekusi aktif per DAG tercapai.

Memantau penggunaan CPU dan memori pekerja

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

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

Di dasbor Monitoring, di bagian Pekerja, amati grafik penggunaan CPU dan memori oleh pekerja Airflow:

  • Total penggunaan CPU pekerja
  • Total penggunaan memori pekerja

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

Sesuaikan dengan pengamatan Anda:

  • Jika penggunaan memori pekerja mendekati batas, hal ini dapat menyebabkan pengusiran pod pekerja. Untuk mengatasi masalah ini, tingkatkan memori pekerja.
  • Jika penggunaan memori minimal dibandingkan dengan batas, dan tidak ada pengusiran pod pekerja, Anda mungkin ingin mengurangi memori pekerja.
  • Jika penggunaan CPU worker mendekati batas (melebihi 80% selama lebih dari beberapa persen dari total waktu), Anda mungkin ingin:

Memantau tugas yang sedang berjalan dan dalam antrean

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

Grafik yang menampilkan tugas yang sedang berjalan dan dalam antrean
Gambar 7. Grafik yang menampilkan tugas yang sedang 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 yang diantrekan, ini mungkin berarti bahwa worker di lingkungan Anda sedang sibuk menjalankan tugas lain.

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

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

Untuk mengatasi kedua masalah tersebut:

Memantau penggunaan CPU dan memori database

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

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

Di dasbor Monitoring, di bagian SQL Database, 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 kelebihan beban dan memerlukan penskalaan.

Setelan ukuran database dikontrol oleh properti ukuran lingkungan dari lingkungan Anda. Untuk menskalakan database ke atas atau ke bawah, ubah ukuran lingkungan ke tingkat yang berbeda (Kecil, Sedang, Besar, Sangat Besar). Meningkatkan ukuran lingkungan akan meningkatkan biaya lingkungan Anda.

Memantau latensi penjadwalan tugas

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

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

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

Dalam contoh ini, penundaan (2,5 dan 3,5 detik) masih 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. Server web biasanya tidak mengalami kelebihan beban. Jika hal ini terjadi, performa UI Airflow mungkin menurun, tetapi hal ini tidak memengaruhi performa eksekusi DAG.

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

Di dasbor Monitoring, di bagian Web server, 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, hal ini akan meningkatkan traffic ke dan dari database Airflow. Sebaiknya gunakan dua penjadwal Airflow dalam sebagian besar skenario. Penggunaan tiga penjadwal hanya diperlukan dalam kasus yang jarang terjadi yang memerlukan pertimbangan khusus. Mengonfigurasi lebih dari tiga penjadwal sering kali menyebabkan performa lingkungan yang lebih rendah.

Jika Anda memerlukan penjadwalan yang lebih cepat:

TODO: C2: Opsi Airflow 2 untuk pemroses DAG dan penjadwal bersama-sama -- satu bagian C3: Opsi Airflow 2 + Opsi Airflow 3 untuk penjadwal; Opsi Airflow 2 + Opsi Airflow 3 untuk pemroses DAG; -- dua bagian

Contoh:

Konsol

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

gcloud

Ikuti langkah-langkah di Menyesuaikan parameter 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 parameter 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 adalah untuk setiap penjadwal di lingkungan Anda. Misalnya, jika lingkungan Anda memiliki dua scheduler, total kapasitasnya adalah dua kali lipat dari jumlah CPU dan memori yang ditentukan.

Konsol

Ikuti langkah-langkah di Menyesuaikan parameter penjadwal untuk menetapkan CPU dan memori untuk penjadwal.

gcloud

Ikuti langkah-langkah di Menyesuaikan parameter penjadwal untuk menyetel CPU dan memori untuk penjadwal.

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

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

Terraform

Ikuti langkah-langkah di Menyesuaikan parameter penjadwal untuk menetapkan CPU dan memori untuk penjadwal.

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

resource "google_composer_environment" "example-environment" {

  # Other environment parameters

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

Mengubah jumlah pemroses DAG

Menyesuaikan jumlah pemroses DAG akan meningkatkan kapasitas lingkungan untuk mem-parsing DAG.

Jika Anda memerlukan penguraian DAG yang lebih cepat atau ingin menguraikan lebih banyak DAG:

Contoh:

Konsol

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

gcloud

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

Contoh berikut menetapkan jumlah pemroses DAG menjadi dua:

gcloud composer environments update example-environment \
    --dag-processor-count=2

Terraform

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

Contoh berikut menetapkan jumlah pemroses DAG menjadi dua:

resource "google_composer_environment" "example-environment" {

  # Other environment parameters

  config {
    workloads_config {
      dag_processor {
        count = 2
      }
    }
  }
}

Mengubah CPU dan memori untuk pemroses DAG

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

Konsol

Ikuti langkah-langkah di Menyesuaikan jumlah pemroses DAG untuk menetapkan CPU dan memori untuk pemroses DAG.

gcloud

Ikuti langkah-langkah di Menyesuaikan jumlah pemroses DAG untuk menetapkan CPU dan memori untuk pemroses DAG.

Contoh berikut mengubah CPU dan memori untuk pemroses DAG. Anda dapat menentukan hanya atribut CPU atau Memori, bergantung pada kebutuhan.

gcloud composer environments update example-environment \
  --dag-processor-cpu=0.5 \
  --dag-processor-memory=2

Terraform

Ikuti langkah-langkah di Menyesuaikan jumlah pemroses DAG untuk menetapkan CPU dan memori untuk pemroses DAG.

Contoh berikut mengubah CPU dan memori untuk pemroses DAG. Anda dapat menghilangkan atribut CPU atau Memori, bergantung pada kebutuhan.

resource "google_composer_environment" "example-environment" {

  # Other environment parameters

  config {
    workloads_config {
      dag_processor {
        cpu = "0.5"
        memory_gb = "2"
      }
    }
  }
}

Mengubah jumlah maksimum worker

Meningkatkan jumlah maksimum pekerja memungkinkan lingkungan Anda melakukan penskalaan otomatis ke jumlah pekerja yang lebih tinggi, jika diperlukan.

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

Contoh:

Konsol

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

gcloud

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

Contoh berikut menetapkan jumlah maksimum pekerja menjadi enam:

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

Terraform

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

Contoh berikut menetapkan jumlah maksimum penjadwal menjadi enam:

resource "google_composer_environment" "example-environment" {

  # Other environment parameters

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

Mengubah CPU dan memori worker

  • Mengurangi memori pekerja dapat bermanfaat jika grafik penggunaan pekerja menunjukkan penggunaan memori yang sangat rendah.

  • Meningkatkan memori pekerja memungkinkan pekerja menangani lebih banyak tugas secara bersamaan atau menangani tugas yang membutuhkan banyak memori. Hal ini dapat mengatasi masalah pengusiran pod pekerja.

  • Menurunkan CPU pekerja dapat membantu jika grafik penggunaan CPU pekerja menunjukkan bahwa resource CPU sangat teralokasi berlebih.

  • Meningkatkan CPU pekerja memungkinkan pekerja menangani lebih banyak tugas secara bersamaan dan dalam beberapa kasus mengurangi waktu yang dibutuhkan untuk memproses tugas-tugas ini.

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

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

Konsol

Ikuti langkah-langkah di Menyesuaikan parameter pekerja untuk menetapkan CPU dan memori untuk pekerja.

gcloud

Ikuti langkah-langkah di Menyesuaikan parameter pekerja untuk menetapkan CPU dan memori untuk pekerja.

Contoh berikut mengubah CPU dan memori untuk pekerja. Anda dapat menghilangkan atribut CPU atau memori, jika diperlukan.

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

Terraform

Ikuti langkah-langkah di Menyesuaikan parameter pekerja untuk menetapkan CPU dan memori untuk pekerja.

Contoh berikut mengubah CPU dan memori untuk pekerja. Anda dapat menghilangkan parameter CPU atau memori, jika diperlukan.

resource "google_composer_environment" "example-environment" {

  # Other environment parameters

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

Mengubah CPU dan memori server web

Menurunkan CPU atau memori server web dapat membantu jika grafik penggunaan server web menunjukkan bahwa server tersebut terus kurang dimanfaatkan.

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

Konsol

Ikuti langkah-langkah di Menyesuaikan parameter server web untuk menyetel CPU dan memori untuk server web.

gcloud

Ikuti langkah-langkah di Menyesuaikan parameter server web untuk menyetel CPU dan memori untuk server web.

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

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

Terraform

Ikuti langkah-langkah di Menyesuaikan parameter server web untuk menyetel CPU dan memori untuk server web.

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

resource "google_composer_environment" "example-environment" {

  # Other environment parameters

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

Mengubah ukuran lingkungan

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

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

Konsol

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

gcloud

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

Contoh berikut mengubah ukuran lingkungan menjadi Sedang.

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

Terraform

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

Contoh berikut mengubah ukuran lingkungan menjadi Sedang.

resource "google_composer_environment" "example-environment" {

  # Other environment parameters

  config {
    environment_size = "medium"
  }
}

Mengubah interval listingan direktori DAG

Meningkatkan interval listingan direktori DAG akan mengurangi beban pemroses DAG 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:

Versi Airflow Bagian Kunci Nilai Catatan
Airflow 3 dag_processor refresh_interval Nilai baru untuk interval listingan Nilai default, dalam detik, adalah 120.
Airflow 2 scheduler dag_dir_list_interval Nilai baru untuk interval listingan Nilai default, dalam detik, adalah 120.

Mengubah interval penguraian file DAG

Meningkatkan interval penguraian file DAG akan mengurangi beban pemroses DAG yang terkait dengan penguraian DAG secara berkelanjutan dalam tas DAG.

Pertimbangkan untuk meningkatkan interval ini jika Anda memiliki banyak DAG yang tidak terlalu sering berubah, atau mengamati beban penjadwal yang tinggi secara umum.

Untuk mengubah parameter ini, ganti opsi konfigurasi Airflow berikut:

Versi Airflow Bagian Kunci Nilai Catatan
Airflow 3 dag_processor min_file_process_interval Nilai baru untuk interval parsing DAG Nilai default, dalam detik, adalah 30.
Airflow 2 scheduler min_file_process_interval Nilai baru untuk interval parsing DAG Nilai default, dalam detik, adalah 30.

Konkurensi pekerja

Performa konkurensi dan kemampuan lingkungan Anda untuk melakukan penskalaan otomatis terkait dengan dua setelan:

  • jumlah minimum pekerja Airflow
  • parameter [celery]worker_concurrency

Nilai default yang disediakan oleh Managed Airflow sudah optimal untuk sebagian besar kasus penggunaan, tetapi lingkungan Anda mungkin akan lebih baik jika dilakukan penyesuaian kustom.

Pertimbangan performa konkurensi pekerja

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

Penskalaan otomatis pekerja

Managed Service untuk Apache Airflow memantau antrean tugas dan memunculkan pekerja tambahan untuk mengambil tugas yang menunggu. Menetapkan [celery]worker_concurrency ke nilai yang tinggi berarti setiap pekerja dapat mengambil banyak tugas, sehingga dalam keadaan tertentu, antrean mungkin tidak pernah terisi, yang menyebabkan penskalaan otomatis tidak pernah dipicu.

Misalnya, di lingkungan Managed Service untuk Apache Airflow dengan dua pekerja Airflow, [celery]worker_concurrency ditetapkan ke 100, dan ada 200 tugas dalam antrean, setiap pekerja akan mengambil 100 tugas. Hal ini membuat antrean kosong dan tidak memicu penskalaan otomatis. Jika tugas ini membutuhkan waktu lama untuk diselesaikan, hal ini dapat menyebabkan masalah performa.

Namun, jika tugasnya kecil dan cepat dieksekusi, nilai tinggi dalam setelan [celery]worker_concurrency dapat menyebabkan penskalaan yang terlalu bersemangat. Misalnya, jika lingkungan tersebut memiliki 300 tugas dalam antrean, Managed Service untuk Apache Airflow akan mulai membuat pekerja baru. Namun, jika 200 tugas pertama selesai dieksekusi pada saat pekerja baru siap, pekerja yang ada dapat mengambilnya. Hasil akhirnya adalah penskalaan otomatis membuat pekerja baru, tetapi tidak ada tugas untuk mereka.

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

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

Mengubah keserentakan 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 pengusiran pod; hal ini akan mengurangi jumlah tugas yang dicoba diproses oleh satu pekerja. Sebagai alternatif, Anda dapat meningkatkan memori pekerja.

Secara default, konkurensi pekerja ditetapkan berdasarkan jumlah instance tugas serentak ringan yang dapat ditampung oleh pekerja. Artinya, nilainya bergantung pada batas resource pekerja. Nilai konkurensi worker tidak bergantung pada jumlah worker di lingkungan Anda.

Untuk mengubah parameter ini, ganti opsi konfigurasi Airflow berikut:

Bagian Kunci Nilai
celery worker_concurrency Nilai baru untuk konkurensi pekerja

Mengubah keserentakan DAG

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

Untuk mengubah parameter ini, ganti opsi konfigurasi Airflow berikut:

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

Meningkatkan jumlah maksimum proses aktif per DAG

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

Untuk mengubah parameter ini, ganti opsi konfigurasi Airflow berikut:

Bagian Kunci Nilai Catatan
core max_active_runs_per_dag Nilai baru untuk jumlah maksimum proses aktif per DAG Nilai defaultnya adalah 25

Langkah berikutnya