Cloud Composer 1 | Cloud Composer 2
Halaman ini menjelaskan cara menyesuaikan skala dan parameter performa lingkungan dengan kebutuhan project, sehingga Anda memperoleh peningkatan performa dan mengurangi biaya untuk resource yang tidak digunakan oleh lingkungan Anda.
Halaman lain tentang penskalaan dan pengoptimalan:
- Untuk mengetahui informasi tentang menskalakan lingkungan, lihat Menskalakan lingkungan.
- Untuk mengetahui informasi tentang cara kerja penskalaan lingkungan, lihat Penskalaan lingkungan.
- Untuk tutorial cara memantau metrik lingkungan utama, lihat Memantau kondisi dan performa lingkungan dengan metrik utama.
Ringkasan proses pengoptimalan
Melakukan perubahan pada parameter lingkungan Anda dapat memengaruhi banyak aspek performa lingkungan Anda. Sebaiknya optimalkan lingkungan Anda dalam iterasi:
- Mulailah dengan preset lingkungan.
- Jalankan DAG Anda.
- Mengamati performa lingkungan Anda.
- Sesuaikan skala lingkungan dan parameter performa, lalu ulangi dari langkah sebelumnya.
Mulai 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 estimasi berikut:
- Jumlah total DAG yang ingin Anda deploy di lingkungan
- Jumlah maksimum operasi DAG serentak
- Jumlah maksimum tugas serentak
Performa lingkungan Anda bergantung pada implementasi DAG tertentu yang dijalankan di lingkungan Anda. Tabel berikut mencantumkan perkiraan yang didasarkan pada konsumsi resource rata-rata. Jika Anda memperkirakan DAG akan memakai lebih banyak resource, sesuaikan estimasinya.
Preset yang direkomendasikan | Total DAG | Operasi DAG serentak maks. | Tugas serentak maks. |
---|---|---|---|
Kecil | 50 | 15 | 18 |
Sedang | 250 | 60 | 100 |
Besar | 1.000 | 250 | 400 |
Misalnya, lingkungan harus menjalankan 40 DAG. Semua DAG harus berjalan bersamaan dengan satu tugas aktif masing-masing. Lingkungan ini kemudian akan menggunakan preset Sedang, karena jumlah maksimum tugas dan DAG yang dijalankan serentak melebihi perkiraan yang direkomendasikan untuk preset Kecil.
Menjalankan DAG Anda
Setelah lingkungan dibuat, upload DAG Anda ke lingkungan tersebut. Jalankan DAG Anda dan amati performa lingkungannya.
Sebaiknya jalankan DAG sesuai jadwal yang mencerminkan penerapan DAG di dunia 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 kapasitas dan penyesuaian performa 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:
Di konsol Google Cloud, buka halaman Environments.
Klik nama lingkungan Anda.
Buka tab Pemantauan.
Memantau metrik CPU dan memori penjadwal
Metrik CPU dan memori penjadwal Airflow membantu Anda memeriksa apakah performa penjadwal merupakan bottleneck dalam performa Airflow secara keseluruhan.
![Grafik untuk penjadwal Ariflow](https://cloud.google.com/static/composer/docs/images/monitoring-scheduler-metrics.png?authuser=1&hl=id)
Di dasbor Monitoring, di bagian Scheduler, amati grafik untuk penjadwal Airflow lingkungan Anda:
- Total penggunaan CPU penjadwal
- Total penggunaan memori penjadwal
Sesuaikan menurut pengamatan Anda:
Jika penggunaan CPU Scheduler secara konsisten di bawah 30%-35%, Anda mungkin ingin:
Jika penggunaan CPU Scheduler melebihi 80% untuk lebih dari beberapa persen dari total waktu, Anda dapat:
Memantau total waktu penguraian untuk semua file DAG
Penjadwal mengurai DAG sebelum menjadwalkan operasi DAG. Jika DAG memerlukan waktu lama untuk diurai, kapasitas penjadwal akan habis dan dapat mengurangi performa DAG yang dijalankan.
![Total grafik waktu penguraian DAG](https://cloud.google.com/static/composer/docs/images/monitoring-dag-parse-time.png?authuser=1&hl=id)
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 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 akan menghabiskan kapasitas penjadwal.
Menurut pengamatan Anda, Anda mungkin ingin:
- Sederhanakan DAG Anda, termasuk dependensi Python-nya.
- Tingkatkan interval penguraian file DAG dan tingkatkan interval listingan direktori DAG.
- Tingkatkan jumlah penjadwal.
- Meningkatkan CPU penjadwal.
Memantau penghapusan pod pekerja
Penghapusan pod dapat terjadi jika pod tertentu di cluster lingkungan Anda mencapai batas resource-nya.
![Grafik penghapusan pod pekerja](https://cloud.google.com/static/composer/docs/images/monitoring-pod-evictions.png?authuser=1&hl=id)
Jika pod pekerja Airflow dikeluarkan, semua instance tugas yang berjalan di pod tersebut akan terganggu, lalu ditandai sebagai gagal oleh Airflow.
Sebagian besar masalah terkait penghapusan 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 penggunaan memori pekerja menunjukkan perspektif total lingkungan. Satu pekerja masih dapat melebihi batas memori, meskipun penggunaan memori sehat pada tingkat lingkungan.
Menurut pengamatan Anda, Anda mungkin ingin:
- Meningkatkan memori yang tersedia untuk pekerja.
- Mengurangi konkurensi pekerja. Dengan cara ini, satu pekerja menangani lebih sedikit tugas sekaligus. Hal ini akan memberikan lebih banyak memori atau penyimpanan untuk setiap tugas. Jika mengubah konkurensi pekerja, Anda mungkin juga ingin meningkatkan jumlah maksimum pekerja. Dengan cara ini, jumlah tugas yang dapat ditangani lingkungan Anda sekaligus tetap sama. Misalnya, jika Anda mengurangi pekerja Konkurensi dari 12 menjadi 6, Anda dapat melipatgandakan jumlah maksimum pekerja.
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](https://cloud.google.com/static/composer/docs/images/monitoring-active-workers.png?authuser=1&hl=id)
Di dasbor Monitoring, di bagian Workers, amati grafik untuk jumlah pekerja aktif dan jumlah tugas dalam antrean:
- Pekerja yang aktif
- Tugas Airflow
Sesuaikan menurut pengamatan Anda:
- Jika lingkungan sering kali mencapai batas maksimumnya untuk pekerja, dan pada saat yang sama jumlah tugas dalam antrean Celery terus-menerus tinggi, Anda mungkin perlu meningkatkan jumlah maksimum pekerja.
Jika ada penundaan penjadwalan antartugas yang lama, tetapi lingkungan tidak diskalakan ke jumlah maksimum pekerjanya, kemungkinan ada setelan Airflow yang membatasi eksekusi dan mencegah mekanisme Cloud Composer menskalakan lingkungan. Karena lingkungan Cloud Composer 2 diskalakan berdasarkan jumlah tugas dalam antrean Celery, konfigurasikan Airflow agar tidak membatasi tugas saat masuk ke antrean:
- Meningkatkan konkurensi pekerja. Pekerja serentak harus ditetapkan ke nilai yang lebih tinggi dari jumlah maksimum tugas serentak yang diharapkan, dibagi dengan jumlah maksimum pekerja di lingkungan.
- Tingkatkan konkurensi DAG, jika satu DAG menjalankan tugas dalam jumlah besar secara paralel, yang dapat mencapai jumlah maksimum instance tugas yang berjalan per DAG.
- Tingkatkan maksimal run aktif per DAG, jika Anda menjalankan DAG yang sama beberapa kali secara paralel, yang dapat menyebabkan Airflow membatasi eksekusi karena batas aktif maksimum per DAG tercapai.
Memantau penggunaan CPU dan memori pekerja
Pantau total penggunaan CPU dan memori yang digabungkan dari semua pekerja di lingkungan Anda untuk menentukan apakah pekerja Airflow menggunakan resource lingkungan Anda dengan benar.
![Grafik CPU dan memori pekerja](https://cloud.google.com/static/composer/docs/images/monitoring-workers-cpu-mem.png?authuser=1&hl=id)
Di 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 menurut pengamatan Anda:
- Jika penggunaan memori pekerja mendekati batas, hal ini dapat menyebabkan pengeluaran pod pekerja. Untuk mengatasi masalah ini, tingkatkan memori pekerja.
- Jika penggunaan memori minimal dibandingkan dengan batasnya, dan tidak ada penggusuran pod pekerja, Anda mungkin ingin mengurangi memori pekerja.
Jika penggunaan CPU pekerja mendekati batas (melebihi 80% selama lebih dari beberapa persen dari total waktu), Anda dapat:
- Tingkatkan jumlah pekerja. Hal ini memberi lingkungan Anda kontrol lebih besar atas kapasitas yang disediakan untuk beban kerja tertentu.
- Tingkatkan CPU Pekerja atau kurangi konkurensi pekerja, jika tugas individual memerlukan alokasi CPU yang lebih tinggi. Jika tidak, sebaiknya tingkatkan jumlah pekerja.
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](https://cloud.google.com/static/composer/docs/images/monitoring-tasks-queue.png?authuser=1&hl=id)
Di dasbor Monitoring, di bagian Workers, amati grafik Airflow tasks untuk lingkungan Anda.
Tugas dalam antrean menunggu untuk dieksekusi oleh pekerja. Jika lingkungan Anda memiliki tugas dalam antrean, mungkin ini berarti pekerja di lingkungan Anda sedang sibuk menjalankan tugas lain.
Beberapa antrean selalu ada di lingkungan, terutama selama puncak pemrosesan. Namun, jika Anda mengamati banyaknya tugas dalam antrean, atau tren yang meningkat dalam grafik, ini mungkin menunjukkan bahwa pekerja tidak memiliki kapasitas yang cukup untuk memproses tugas tersebut, atau Airflow membatasi eksekusi tugas.
Jumlah tugas dalam antrean yang tinggi biasanya diamati ketika jumlah tugas yang berjalan juga mencapai level 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 otomatis diperpanjang sesuai kebutuhan.
![Grafik memori dan CPU database](https://cloud.google.com/static/composer/docs/images/monitoring-database-cpu-mem.png?authuser=1&hl=id)
Di dasbor Monitoring, di bagian Workers, 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 di lingkungan Anda. Untuk meningkatkan atau menurunkan skala database, ubah ukuran lingkungan ke tingkat yang berbeda (Kecil, Sedang, atau Besar). Peningkatan ukuran lingkungan akan meningkatkan biaya lingkungan Anda.
Memantau latensi penjadwalan tugas
Jika latensi antartugas 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.
![Grafik latensi tugas (Airflow UI)](https://cloud.google.com/static/composer/docs/images/monitoring-task-latency.png?authuser=1&hl=id)
Anda dapat melihat grafik latensi penjadwalan tugas di UI Airflow lingkungan Anda.
Dalam contoh ini, keterlambatan (2,5 dan 3,5 detik) berada dalam batas yang dapat diterima, tetapi latensi yang jauh lebih tinggi mungkin menunjukkan bahwa:
- Penjadwal kelebihan beban. Pantau CPU dan memori penjadwal untuk melihat tanda-tanda potensi masalah.
- Opsi konfigurasi Airflow adalah eksekusi throttling. Coba tingkatkan konkurensi pekerja, tingkatkan konkurensi DAG, atau tingkatkan maksimal operasi aktif per DAG.
- Jumlah pekerja tidak cukup untuk menjalankan tugas, coba tingkatkan jumlah pekerja maksimal.
Memantau CPU dan memori server web
Performa server web Airflow memengaruhi UI Airflow. Tidak umum terjadi kelebihan beban pada server web. Jika ini terjadi, performa UI Airflow mungkin akan menurun, tetapi hal ini tidak memengaruhi performa DAG yang dijalankan.
![Grafik memori dan CPU server web](https://cloud.google.com/static/composer/docs/images/monitoring-web-server-cpu-mem.png?authuser=1&hl=id)
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 untuk menambahkan lebih banyak memori ke server web.
Menyesuaikan parameter skala dan performa lingkungan
Mengubah jumlah penjadwal
Menyesuaikan jumlah penjadwal akan meningkatkan kapasitas penjadwal dan ketahanan penjadwalan Airflow.
Jika Anda menambah jumlah penjadwal, hal ini akan meningkatkan traffic ke dan dari database Airflow. 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:
- Konfigurasi dua penjadwal Airflow.
- Menetapkan lebih banyak resource CPU dan memori ke penjadwal Airflow.
- Naikkan dag-dir-list-interval
- Meningkatkan min-file-process-interval
- Meningkatkan detak jantung kerja-detik
Contoh:
Konsol
Ikuti langkah-langkah di bagian Menyesuaikan jumlah penjadwal untuk menetapkan jumlah penjadwal yang diperlukan untuk lingkungan Anda.
gcloud
Ikuti langkah-langkah di bagian Menyesuaikan jumlah penjadwal untuk menetapkan jumlah penjadwal yang diperlukan untuk lingkungan Anda.
Contoh berikut menetapkan jumlah penjadwal ke dua:
gcloud composer environments update example-environment \
--scheduler-count=2
Terraform
Ikuti langkah-langkah di bagian Menyesuaikan jumlah penjadwal untuk menetapkan jumlah penjadwal yang diperlukan untuk lingkungan Anda.
Contoh berikut menetapkan jumlah penjadwal ke 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 penjadwal, total kapasitasnya adalah dua kali jumlah CPU dan memori yang ditentukan.
Konsol
Ikuti langkah-langkah di Menyesuaikan skala pekerja, penjadwal, dan parameter performa serta server web guna menetapkan CPU dan memori untuk penjadwal.
gcloud
Ikuti langkah-langkah di Menyesuaikan skala pekerja, penjadwal, dan parameter performa serta server web guna menetapkan CPU dan Memori untuk penjadwal.
Contoh berikut mengubah CPU dan memori untuk penjadwal. Anda dapat menentukan atribut CPU atau Memori saja, tergantung kebutuhan.
gcloud composer environments update example-environment \
--scheduler-cpu=0.5 \
--scheduler-memory=3.75
Terraform
Ikuti langkah-langkah di Menyesuaikan skala pekerja, penjadwal, dan parameter performa serta server web guna menetapkan CPU dan memori untuk penjadwal.
Contoh berikut mengubah CPU dan memori untuk penjadwal. Anda dapat menghilangkan atribut CPU atau Memori, sesuai 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
Dengan meningkatkan jumlah maksimum pekerja, lingkungan Anda dapat otomatis menskalakan ke jumlah pekerja yang lebih tinggi, jika diperlukan.
Menurunkan jumlah maksimum pekerja akan mengurangi kapasitas maksimum lingkungan, tetapi juga dapat membantu mengurangi biaya lingkungan.
Contoh:
Konsol
Ikuti langkah-langkah di bagian Menyesuaikan jumlah minimum dan maksimum pekerja untuk menetapkan jumlah pekerja maksimum yang diperlukan untuk lingkungan Anda.
gcloud
Ikuti langkah-langkah di bagian Menyesuaikan jumlah minimum dan maksimum pekerja untuk menetapkan jumlah pekerja maksimum yang diperlukan untuk lingkungan Anda.
Contoh berikut menetapkan jumlah pekerja maksimum ke enam:
gcloud composer environments update example-environment \
--max-workers=6
Terraform
Ikuti langkah-langkah di bagian Menyesuaikan jumlah minimum dan maksimum pekerja untuk menetapkan jumlah pekerja maksimum 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
Mengurangi 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 menggunakan banyak memori. Tindakan ini mungkin dapat mengatasi masalah penggusuran pod pekerja.
Menurunkan CPU pekerja dapat berguna saat grafik penggunaan CPU pekerja menunjukkan bahwa resource CPU banyak dialokasikan.
Dengan meningkatkan CPU pekerja, pekerja dapat 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 mungkin memengaruhi tugas yang sedang berjalan. Sebaiknya lakukan hal ini 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 skala pekerja, penjadwal, dan server web serta parameter performa guna menetapkan CPU dan memori untuk pekerja.
gcloud
Ikuti langkah-langkah di Menyesuaikan skala pekerja, penjadwal, dan parameter performa serta server web untuk menetapkan CPU dan memori untuk pekerja.
Contoh berikut mengubah CPU dan memori untuk pekerja. Anda dapat menghilangkan atribut CPU atau memori, jika perlu.
gcloud composer environments update example-environment \
--worker-memory=3.75 \
--worker-cpu=2
Terraform
Ikuti langkah-langkah di Menyesuaikan skala pekerja, penjadwal, dan server web serta parameter performa guna 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 = "3.75"
}
}
}
}
Mengubah CPU dan memori server web
Menurunkan CPU atau memori server web dapat berguna jika grafik penggunaan server web menunjukkan bahwa penggunaan terus-menerus kurang.
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 skala pekerja, penjadwal, dan parameter performa serta server web guna menetapkan CPU dan memori untuk server web.
gcloud
Ikuti langkah-langkah di Menyesuaikan skala pekerja, penjadwal, dan parameter performa serta 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, tergantung kebutuhannya.
gcloud composer environments update example-environment \
--web-server-cpu=2 \
--web-server-memory=3.75
Terraform
Ikuti langkah-langkah di Menyesuaikan skala pekerja, penjadwal, dan parameter performa serta 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, tergantung 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 kekurangan pemanfaatan yang substansial.
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 Sedang.
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 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 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
Meningkatkan interval penguraian file DAG akan mengurangi beban penjadwal yang terkait dengan penguraian berkelanjutan DAG dalam tas DAG.
Sebaiknya tingkatkan interval ini jika Anda memiliki jumlah DAG yang 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 konkurensi dan kemampuan lingkungan Anda untuk melakukan penskalaan otomatis terhubung ke dua setelan:
- jumlah minimum pekerja Airflow
- parameter
[celery]worker_concurrency
Nilai default yang diberikan oleh Cloud Composer optimal untuk sebagian besar kasus penggunaan, tetapi lingkungan Anda dapat memanfaatkan penyesuaian kustom.
Pertimbangan performa konkurensi pekerja
Parameter [celery]worker_concurrency
menentukan jumlah tugas yang dapat diambil oleh 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 memunculkan pekerja tambahan untuk mengambil tugas yang menunggu. Menetapkan [celery]worker_concurrency
ke nilai tinggi
berarti setiap pekerja dapat mengambil banyak tugas, sehingga dalam keadaan tertentu
antrean mungkin tidak pernah terisi, sehingga penskalaan otomatis tidak akan pernah dipicu.
Misalnya, dalam lingkungan Cloud Composer dengan dua pekerja Airflow, [celery]worker_concurrency
yang ditetapkan ke 100, dan tugas 200 dalam antrean, setiap pekerja akan mengambil 100 tugas. Tindakan ini akan membiarkan antrean kosong dan tidak memicu penskalaan otomatis. Jika tugas ini memerlukan waktu penyelesaian yang lama, hal ini dapat menyebabkan masalah performa.
Namun, jika tugasnya kecil dan cepat dijalankan, nilai tinggi dalam
setelan [celery]worker_concurrency
dapat menyebabkan penskalaan yang terlalu besar.
Misalnya, jika lingkungan tersebut memiliki 300 tugas dalam antrean, Cloud Composer akan mulai membuat pekerja baru. Namun, jika 200 tugas pertama
menyelesaikan eksekusi pada saat pekerja baru siap, pekerja yang ada
dapat mengambilnya. Hasil akhirnya adalah penskalaan otomatis menciptakan 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 antrean sepenuhnya.
- Untuk tugas yang lebih cepat dan lebih kecil, tingkatkan jumlah minimum pekerja Airflow untuk menghindari penskalaan yang terlalu besar.
Sinkronisasi log tugas
Pekerja Airflow menampilkan komponen yang menyinkronkan log eksekusi tugas ke bucket Cloud Storage. Banyaknya tugas serentak yang dilakukan oleh satu pekerja menyebabkan tingginya jumlah permintaan sinkronisasi. Hal ini mungkin dapat membebani pekerja Anda dan menyebabkan masalah performa.
Jika Anda melihat masalah performa karena tingginya jumlah traffic sinkronisasi log, 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 mengeluarkan pod; tindakan 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
, dan6 * worker_memory
. - Pada versi Airflow sebelum 2.6.3, nilai minimum dari
32
,12 * worker_CPU
, dan8 * worker_memory
. - Pada versi Airflow 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 CPU 0,5 dan memori 4 GB, maka konkurensi worker 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 berjalan secara serentak di setiap DAG. Tingkatkan saat DAG Anda menjalankan banyak tugas serentak. Jika setelan ini rendah, penjadwal akan menunda memasukkan lebih banyak tugas ke dalam antrean, sehingga juga 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 operasi aktif maksimal per DAG
Atribut ini menentukan jumlah maksimum DAG aktif yang dijalankan 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 operasi aktif maksimal per DAG | Nilai defaultnya adalah 25 |
Langkah selanjutnya
- Menskalakan lingkungan
- Tentang penskalaan lingkungan
- Mengganti konfigurasi Airflow
- Memantau kondisi dan performa lingkungan dengan metrik utama