Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
Halaman ini menjelaskan cara menyesuaikan skala dan performa lingkungan Anda parameter dengan kebutuhan project, sehingga Anda mendapatkan performa yang lebih baik dan mengurangi biaya untuk sumber daya yang tidak digunakan oleh lingkungan fleksibel App Engine.
Halaman lain tentang penskalaan dan pengoptimalan:
- Untuk informasi tentang cara menskalakan lingkungan Anda, lihat Menskalakan lingkungan.
- Untuk informasi tentang cara kerja penskalaan lingkungan, lihat Penskalaan lingkungan.
- Untuk tutorial tentang pemantauan metrik lingkungan kunci, lihat Pantau kesehatan dan performa lingkungan dengan metrik utama.
Ringkasan proses pengoptimalan
Membuat perubahan pada parameter lingkungan Anda dapat mempengaruhi banyak aspek performa lingkungan Anda. Sebaiknya optimalkan lingkungan Anda dengan iterasi:
- Memulai dengan preset lingkungan.
- Jalankan DAG Anda.
- Amati performa lingkungan Anda.
- 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 pilih salah satu dari tiga preset lingkungan. {i>Preset<i} ini mengatur skala awal dan konfigurasi performa lingkungan Anda; setelah membuat Anda dapat mengubah semua parameter skala dan performa yang disediakan oleh telah ditetapkan ke 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 dijalankan di lingkungan Anda. Tabel berikut mencantumkan perkiraan yang berdasarkan konsumsi resource rata-rata. Jika DAG memperkirakan akan menggunakan lebih banyak sumber daya, sesuaikan perkiraan.
Disarankan preset | Total DAG | Serentak maks Operasi DAG | Serentak maks tugas |
---|---|---|---|
Kecil | 50 | 15 | 18 |
Sedang | 250 | 60 | 100 |
Besar | 1000 | 250 | 400 |
Misalnya, sebuah lingkungan harus menjalankan 40 DAG. Semua DAG harus dijalankan secara waktu dengan satu tugas aktif. Lingkungan ini akan menggunakan Medium karena jumlah maksimum operasi dan tugas DAG serentak melebihi estimasi yang direkomendasikan untuk preset Kecil.
Menjalankan DAG
Setelah lingkungan dibuat, upload DAG Anda IP eksternal mana pun yang ditetapkan pada instance tersebut. Jalankan DAG dan amati performa lingkungan.
Sebaiknya jalankan DAG pada jadwal yang mencerminkan situasi sebenarnya penerapan DAG. Misalnya, jika Anda ingin menjalankan beberapa DAG pada pada saat yang sama, pastikan untuk memeriksa kinerja lingkungan Anda saat semua DAG berjalan secara bersamaan.
Mengamati performa lingkungan Anda
Bagian ini berfokus pada kapasitas dan kapasitas Cloud Composer 2 yang paling umum aspek tuning performa. Sebaiknya ikuti panduan ini langkah demi langkah karena pertimbangan kinerja yang paling umum dibahas terlebih dahulu.
Buka dasbor Monitoring
Anda dapat memantau metrik performa lingkungan di Monitoring dasbor lingkungan Anda.
Untuk membuka dasbor Monitoring untuk lingkungan Anda:
Di Konsol Google Cloud, buka halaman Environments.
Klik nama lingkungan Anda.
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.
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:
Jika penggunaan CPU Scheduler secara konsisten berada di bawah 30%-35%, Anda dapat:
Jika penggunaan CPU Scheduler melebihi 80% selama lebih dari beberapa persen dari total waktu, Anda dapat:
Memantau total waktu penguraian untuk semua file DAG
Penjadwal akan mengurai DAG sebelum menjadwalkan operasi DAG. Jika DAG memerlukan waktu lama untuk mengurainya, tindakan ini menghabiskan kapasitas penjadwal dan mungkin mengurangi performa operasi DAG.
Di dasbor Monitoring, di bagian DAG Statistics, amati grafik untuk total waktu penguraian DAG.
Jika jumlahnya melebihi sekitar 10 detik, penjadwal Anda mungkin kelebihan beban Penguraian DAG dan tidak dapat menjalankan DAG secara efektif. Penguraian DAG default frekuensi dalam 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:
- Sederhanakan DAG Anda, termasuk dependensi Python-nya.
- Meningkatkan interval penguraian file DAG dan tingkatkan interval listingan direktori DAG.
- Meningkatkan jumlah penjadwal.
- Meningkatkan CPU penjadwal.
Memantau penghapusan pod pekerja
Penghapusan pod dapat terjadi jika pod tertentu di cluster lingkungan Anda mencapai batas resource-nya.
Jika pod pekerja Airflow dikeluarkan, semua instance tugas yang berjalan pada pod tersebut pod terganggu, lalu ditandai sebagai gagal oleh Airflow.
Sebagian besar masalah dengan penggusuran pod pekerja terjadi karena situasi kehabisan memori pada pekerja.
Di dasbor Monitoring, di bagian Workers, amati grafik penggusuran Pod Pekerja untuk lingkungan Anda.
Grafik Total worker memory usage menampilkan total perspektif lingkungan fleksibel App Engine. Satu worker masih dapat melampaui batas memori, meskipun penggunaan memori sehat di tingkat lingkungan.
Menurut pengamatan Anda, Anda mungkin ingin:
- Meningkatkan memori yang tersedia untuk pekerja.
- Mengurangi permintaan serentak pekerja. Dengan cara ini, pekerja tunggal menangani lebih sedikit tugas sekaligus. Ini menyediakan lebih banyak memori atau penyimpanan untuk setiap tugas. Jika mengubah konkurensi pekerja, 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 Konkurensi pekerja dari 12 menjadi 6, Anda mungkin ingin menggandakan jumlah maksimum pekerja.
Memantau pekerja aktif
Jumlah pekerja di lingkungan Anda diskalakan secara otomatis sebagai respons terhadap tugas-tugas yang diantrekan.
Di dasbor Monitoring, di bagian Workers, 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 jumlah tugas di antrean seledri terus tinggi, Anda mungkin ingin meningkatkan jumlah maksimum worker.
Jika ada penundaan penjadwalan antar-tugas yang lama, tetapi pada saat yang sama lingkungan tidak meningkatkan skala ke jumlah maksimum pekerja, maka kemungkinan ada setelan Airflow yang men-throttle dan mencegah mekanisme Cloud Composer melakukan penskalaan lingkungan. Karena lingkungan Cloud Composer 2 skala berdasarkan jumlah tugas di Seledri queue, konfigurasikan Airflow agar tidak membatasi tugas dalam antrean:
- Meningkatkan konkurensi pekerja. Pekerja konkurensi harus ditetapkan ke nilai yang lebih tinggi dari yang diharapkan jumlah maksimum tugas serentak, dibagi dengan jumlah maksimum pekerja di lingkungannya.
- Meningkatkan konkurensi DAG, jika satu DAG ditetapkan menjalankan sejumlah besar tugas secara paralel, yang dapat mengarah pada jumlah maksimum instance tugas yang berjalan per DAG.
- Meningkatkan maks berjalan aktif per DAG, jika Anda menjalankan DAG yang sama beberapa kali secara paralel, yang dapat menyebabkan Airflow membatasi eksekusi karena batas maksimum aktivitas berjalan per DAG adalah tercapai.
Memantau penggunaan CPU dan memori pekerja
Pantau total penggunaan CPU dan memori yang digabungkan dari semua pekerja di lingkungan untuk menentukan apakah pekerja Airflow memanfaatkan sumber daya lingkungan dengan benar.
Di dasbor Monitoring, di bagian Workers, amati grafik untuk 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.
Sesuaikan dengan pengamatan Anda:
- Jika penggunaan memori pekerja mendekati batas, hal ini dapat menyebabkan penghapusan pod pekerja. Untuk mengatasi masalah ini, meningkatkan memori pekerja.
- Jika penggunaan memori minimal dibandingkan dengan batas, dan tidak ada worker penghapusan pod, Anda mungkin ingin mengurangi memori pekerja.
Jika penggunaan CPU pekerja mendekati batas (melebihi 80% selama lebih dari beberapa persen dari total waktu), Anda sebaiknya:
- Meningkatkan jumlah pekerja. Hal ini memberikan lingkungan kontrol lebih besar atas kapasitas yang disediakan untuk sebagian besar workload standar dan berbasis cloud.
- Meningkatkan CPU Pekerja atau mengurangi konkurensi pekerja, jika tugas individu membutuhkan alokasi CPU yang lebih tinggi. Jika tidak, sebaiknya meningkatkan jumlah pekerja.
Memantau tugas yang berjalan dan dalam antrean
Anda dapat memantau jumlah tugas dalam antrean dan yang sedang berjalan untuk memeriksa efisiensi dari proses penjadwalan.
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 sedang sibuk melaksanakan tugas-tugas lain.
Beberapa antrean selalu ada di lingkungan, terutama selama puncak pemrosesan. Namun, jika Anda melihat adanya jumlah tugas dalam antrean, atau tren yang berkembang dalam grafik, maka ini mungkin menunjukkan bahwa pekerja tidak memiliki kapasitas yang cukup untuk memproses tugas, atau Airflow sedang membatasi eksekusi tugas.
Jumlah tugas dalam antrean yang tinggi biasanya diamati ketika jumlah tugas yang tugas juga mencapai tingkat maksimum.
Untuk mengatasi kedua masalah tersebut:
Memantau penggunaan memori dan CPU database
Masalah performa database Airflow dapat menyebabkan eksekusi DAG secara keseluruhan masalah performa. Penggunaan {i>disk<i} di {i>database<i} biasanya tidak perlu dikhawatirkan karena maka penyimpanan akan diperluas secara otomatis.
Di dasbor Monitoring, di bagian Database SQL, amati grafik untuk 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 {i>database<i} dikontrol oleh properti ukuran lingkungan lingkungan fleksibel App Engine. Untuk meningkatkan atau menurunkan skala {i>database<i}, mengubah 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 tidak dapat menangani beban tugas yang dihasilkan oleh DAG yang berjalan.
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 namun latensi yang lebih tinggi secara signifikan dapat menunjukkan bahwa:
- Penjadwal kelebihan beban. Pantau CPU penjadwal dan memori untuk melihat tanda-tanda potensi masalah.
- Opsi konfigurasi Airflow adalah eksekusi throttling. Coba meningkatkan konkurensi pekerja, meningkatkan konkurensi DAG atau meningkatkan maksimum run aktif per DAG.
- Jumlah pekerja tidak cukup untuk menjalankan tugas, coba meningkatkan jumlah maksimal pekerja.
Memantau CPU dan memori server web
Performa server web Airflow memengaruhi UI Airflow. Tidak umum untuk server web Anda menjadi kelebihan beban. Jika ini terjadi, performa UI Airflow mungkin menurun, tetapi ini tidak memengaruhi performa operasi DAG.
Di dasbor Monitoring, di bagian Web server, amati grafik untuk server web Airflow:
- Penggunaan CPU server web
- Penggunaan memori server web
Berdasarkan pengamatan Anda:
- Jika penggunaan CPU server web di atas 80% selama lebih dari beberapa persen, pertimbangkan untuk meningkatkan CPU Server Web.
- Jika Anda mengamati penggunaan memori server web yang tinggi, pertimbangkan menambahkan lebih banyak memori ke server web.
Menyesuaikan parameter performa dan skala lingkungan
Mengubah jumlah penjadwal
Menyesuaikan jumlah penjadwal meningkatkan kapasitas penjadwal dan ketahanan penjadwalan Airflow.
Jika Anda meningkatkan jumlah penjadwal, ini akan meningkatkan lalu lintas ke dan dari database Airflow. Sebaiknya gunakan dua penjadwal Airflow di sebagian besar yang signifikan. Penggunaan tiga penjadwal hanya diperlukan dalam kasus yang jarang terjadi yang membutuhkan pertimbangan khusus. Mengonfigurasi lebih dari tiga penjadwal sering menyebabkan penurunan kinerja lingkungan.
Jika Anda membutuhkan penjadwalan yang lebih cepat:
- Mengonfigurasi dua penjadwal Airflow.
- Menetapkan lebih banyak resource CPU dan memori ke penjadwal Airflow.
- Tingkatkan dag-dir-list-interval
- Meningkatkan min-file-process-interval
- Meningkatkan job-heartbeat-sec
Contoh:
Konsol
Ikuti langkah-langkah di Menyesuaikan jumlah penjadwal untuk ditetapkan jumlah penjadwal yang diperlukan untuk lingkungan Anda.
gcloud
Ikuti langkah-langkah di Menyesuaikan jumlah penjadwal untuk ditetapkan 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 ditetapkan 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 kapasitas dua kali lipat jumlah CPU dan memori yang ditentukan.
Konsol
Ikuti langkah-langkah di Sesuaikan pekerja, penjadwal, dan skala dan parameter performa server web untuk menetapkan CPU dan memori untuk penjadwal.
gcloud
Ikuti langkah-langkah di Sesuaikan pekerja, penjadwal, dan skala server web dan parameter performa untuk menetapkan CPU dan Memori untuk penjadwal.
Contoh berikut mengubah CPU dan memori untuk penjadwal. Anda dapat menentukan atribut CPU atau Memori saja, tergantung kebutuhannya.
gcloud composer environments update example-environment \
--scheduler-cpu=0.5 \
--scheduler-memory=3.75
Terraform
Ikuti langkah-langkah di Sesuaikan pekerja, penjadwal, dan skala dan parameter performa server web untuk menetapkan CPU dan memori untuk penjadwal.
Contoh berikut mengubah CPU dan memori untuk penjadwal. Anda dapat menghilangkan atribut CPU atau Memori, tergantung pada kebutuhan.
resource "google_composer_environment" "example-environment" {
# Other environment parameters
config {
workloads_config {
scheduler {
cpu = "0.5"
memory_gb = "3.75"
}
}
}
}
Mengubah jumlah maksimum pekerja
Meningkatkan jumlah maksimum pekerja memungkinkan lingkungan Anda untuk secara otomatis meningkatkan jumlah pekerja, jika diperlukan.
Penurunan jumlah maksimum pekerja mengurangi kapasitas maksimum lingkungan tetapi mungkin juga membantu mengurangi biaya lingkungan.
Contoh:
Konsol
Ikuti langkah-langkah di Menyesuaikan jumlah pekerja minimum dan maksimum untuk ditetapkan jumlah maksimum pekerja yang diperlukan untuk lingkungan Anda.
gcloud
Ikuti langkah-langkah di Menyesuaikan jumlah pekerja minimum dan maksimum untuk ditetapkan 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 ditetapkan 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 membantu saat grafik penggunaan pekerja penggunaan memori yang sangat rendah.
Peningkatan memori pekerja memungkinkan pekerja menangani lebih banyak tugas secara serentak atau menangani tugas-tugas intensif memori. Langkah ini mungkin dapat mengatasi masalah pada worker pod penggusuran.
Penurunan CPU pekerja dapat berguna jika grafik penggunaan CPU pekerja menunjukkan bahwa sumber daya CPU teralokasi secara berlebihan.
Peningkatan CPU pekerja memungkinkan pekerja menangani lebih banyak tugas secara serentak dan dalam beberapa kasus, mengurangi waktu yang dibutuhkan untuk memproses tugas-tugas ini.
Mengubah CPU atau memori pekerja akan memulai ulang worker, yang mungkin mempengaruhi tugas yang sedang berjalan. Sebaiknya lakukan saat tidak ada DAG yang berjalan.
Parameter CPU dan memori ditujukan untuk setiap pekerja di lingkungan Anda. Sebagai misalnya, jika lingkungan Anda memiliki empat pekerja, total kapasitasnya adalah empat kali sejumlah CPU dan memori yang ditentukan.
Konsol
Ikuti langkah-langkah di Sesuaikan parameter skala dan performa pekerja, penjadwal, dan server web untuk menetapkan CPU dan memori bagi pekerja.
gcloud
Ikuti langkah-langkah di Sesuaikan parameter performa dan skala pekerja, penjadwal, serta skala server web dan untuk ditetapkan CPU dan memori untuk pekerja.
Contoh berikut mengubah CPU dan memori untuk worker. Anda dapat menghilangkan atribut CPU atau memori, jika diperlukan.
gcloud composer environments update example-environment \
--worker-memory=3.75 \
--worker-cpu=2
Terraform
Ikuti langkah-langkah di Sesuaikan parameter skala dan performa pekerja, penjadwal, dan server web untuk menetapkan CPU dan memori bagi pekerja.
Contoh berikut mengubah CPU dan memori untuk worker. 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 = "3.75"
}
}
}
}
Mengubah CPU dan memori server web
Menurunkan CPU atau memori server web dapat membantu saat server web grafik penggunaan menunjukkan bahwa fungsi tersebut terus kurang dimanfaatkan.
Mengubah parameter server web akan memulai ulang server web, yang menyebabkan waktu henti server web sementara. Sebaiknya lakukan perubahan di luar jam penggunaan reguler.
Konsol
Ikuti langkah-langkah di Sesuaikan parameter skala dan performa pekerja, penjadwal, dan server web untuk menetapkan CPU dan memori untuk server web.
gcloud
Ikuti langkah-langkah di Sesuaikan parameter performa dan skala pekerja, penjadwal, serta skala server web dan untuk ditetapkan CPU dan Memori untuk server web.
Contoh berikut mengubah CPU dan memori untuk server web. Anda dapat menghilangkan atribut CPU atau memori, tergantung pada kebutuhan.
gcloud composer environments update example-environment \
--web-server-cpu=2 \
--web-server-memory=3.75
Terraform
Ikuti langkah-langkah di Sesuaikan parameter skala dan performa pekerja, penjadwal, dan server web untuk menetapkan CPU dan memori untuk server web.
Contoh berikut mengubah CPU dan memori untuk server web. Anda dapat menghilangkan atribut CPU atau memori, tergantung pada kebutuhan.
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 Cloud Composer komponen backend, seperti database Airflow dan antrean Airflow.
- Pertimbangkan untuk mengubah ukuran lingkungan ke ukuran yang lebih kecil (untuk misalnya, Besar ke Menengah, atau Menengah 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 Sesuaikan ukuran lingkungan untuk menetapkan ukuran lingkungan.
gcloud
Ikuti langkah-langkah di Sesuaikan 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 Sesuaikan 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
Meningkatkan 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 Airflow berikut opsi konfigurasi:
Bagian | Kunci | Nilai | Catatan |
---|---|---|---|
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 penjadwal yang terkait dengan penguraian DAG secara terus-menerus di tas DAG.
Pertimbangkan untuk meningkatkan interval ini saat Anda memiliki banyak DAG yang melakukan tidak terlalu sering berubah, atau mengamati beban penjadwal yang tinggi secara umum.
Untuk mengubah parameter ini, ganti Airflow berikut opsi konfigurasi:
Bagian | Kunci | Nilai | Catatan |
---|---|---|---|
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 bersifat optimal untuk sebagian besar kasus penggunaan, tetapi lingkungan Anda mungkin mendapat manfaat dari penyesuaian kustom.
Pertimbangan performa konkurensi pekerja
Parameter [celery]worker_concurrency
menentukan jumlah tugas
satu pekerja dapat mengambil dari antrean tugas.
Kecepatan eksekusi tugas bergantung pada banyak faktor, seperti CPU pekerja, memori,
dan jenis karya itu sendiri.
Penskalaan otomatis pekerja
Cloud Composer memantau task queue dan menghasilkan pekerja tambahan untuk
mengerjakan tugas yang menunggu. Menetapkan [celery]worker_concurrency
ke nilai tinggi
berarti bahwa setiap pekerja dapat mengerjakan banyak tugas, jadi dalam keadaan tertentu
antrean mungkin tidak pernah terisi, yang menyebabkan penskalaan otomatis tidak 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.
Tetapi jika tugasnya kecil dan cepat
dieksekusi, nilai yang tinggi dalam
Setelan [celery]worker_concurrency
dapat menyebabkan penskalaan yang berlebihan.
Misalnya, jika lingkungan itu memiliki 300 tugas dalam antrean,
Cloud Composer akan mulai membuat worker baru. Namun jika yang pertama
200 tugas menyelesaikan eksekusi pada saat pekerja baru siap, pekerja yang sudah ada
dapat mengangkatnya. Hasil akhirnya adalah penskalaan otomatis membuat worker baru, tetapi
tidak ada tugas
untuk mereka.
Penyesuaian [celery]worker_concurrency
untuk kasus khusus harus didasarkan
waktu eksekusi tugas dan jumlah antrean Anda:
- Untuk tugas yang memerlukan waktu lebih lama, pekerja tidak boleh mengosongkan antrian sepenuhnya.
- Untuk tugas yang lebih cepat dan lebih kecil, tingkatkan jumlah minimum Pekerja aliran udara untuk menghindari penskalaan yang berlebihan.
Sinkronisasi log tugas
Pekerja Airflow menampilkan komponen yang menyinkronkan log eksekusi tugas dengan bucket Cloud Storage. Banyak tugas serentak yang dilakukan oleh satu pekerja menghasilkan banyak permintaan sinkronisasi. Hal ini mungkin bisa membebani worker Anda dan menyebabkan masalah performa.
Jika Anda mengamati masalah performa karena tingginya jumlah sinkronisasi log
traffic, turunkan nilai [celery]worker_concurrency
, lalu sesuaikan
jumlah minimum worker Airflow.
Mengubah konkurensi pekerja
Mengubah parameter ini akan menyesuaikan jumlah tugas yang dapat dilakukan oleh satu pekerja dapat dieksekusi secara bersamaan.
Misalnya, seorang Pekerja dengan CPU 0,5 biasanya dapat menangani 6 tugas serentak; sebuah lingkungan dengan tiga pekerja tersebut dapat menangani hingga 18 tugas serentak.
Tingkatkan parameter ini ketika ada tugas yang menunggu dalam antrean, dan sebagian kecil pekerja menggunakan CPU dan memori mereka secara bersamaan.
Kurangi parameter ini saat Anda menghapus pod; hal ini akan mengurangi jumlah tugas yang coba diproses oleh satu pekerja. Sebagai seorang Anda dapat meningkatkan memori worker.
Nilai default untuk konkurensi pekerja sama dengan:
- Di Airflow 2.6.3 dan versi yang lebih baru, nilai minimum
32
,12 * worker_CPU
, dan6 * worker_memory
. - Di versi Airflow sebelum 2.6.3, nilai minimum
32
,12 * worker_CPU
, dan8 * worker_memory
. - Di Airflow versi sebelum 2.3.3,
12 * worker_CPU
.
Nilai worker_CPU
adalah jumlah CPU yang dialokasikan ke satu pekerja. Tujuan
Nilai worker_memory
adalah jumlah memori yang dialokasikan ke satu worker. Sebagai
misalnya, jika pekerja di lingkungan Anda
masing-masing menggunakan 0,5 CPU dan 4 GB memori,
konkurensi pekerja akan ditetapkan ke 6
. Nilai konkurensi pekerja melakukan
tidak tergantung pada jumlah
pekerja di lingkungan Anda.
Untuk mengubah parameter ini, ganti Airflow berikut opsi konfigurasi:
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 Anda menjalankan tugas serentak. Jika pengaturan ini rendah, penjadwal akan menunda menempatkan tugas ke dalam antrean, yang juga akan mengurangi efisiensi lingkungan penskalaan otomatis.
Untuk mengubah parameter ini, ganti Airflow berikut opsi konfigurasi:
Bagian | Kunci | Nilai | Catatan |
---|---|---|---|
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, atribut ini memungkinkan penjadwal untuk memulai operasi tersebut paralel.
Untuk mengubah parameter ini, ganti Airflow berikut opsi konfigurasi:
Bagian | Kunci | Nilai | Catatan |
---|---|---|---|
core |
max_active_runs_per_dag |
Nilai baru untuk maksimum operasi aktif per DAG | Nilai defaultnya adalah 25 |
Langkah selanjutnya
- Menskalakan lingkungan
- Tentang penskalaan lingkungan
- Mengganti konfigurasi Airflow
- Pantau kesehatan dan performa lingkungan dengan metrik utama