Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Penyetelan kinerja untuk Apache Airflow di Amazon MWAA
Topik ini menjelaskan cara menyetel kinerja Alur Kerja Terkelola Amazon untuk lingkungan Apache Airflow menggunakan. Menggunakan opsi konfigurasi Apache Airflow di Amazon MWAA
Menambahkan opsi konfigurasi Apache Airflow
Prosedur berikut memandu Anda melalui langkah-langkah menambahkan opsi konfigurasi Aliran Udara ke lingkungan Anda.
-
Buka halaman Lingkungan di konsol Amazon MWAA.
-
Pilih lingkungan.
-
Pilih Edit.
-
Pilih Berikutnya.
-
Pilih Tambahkan konfigurasi khusus di panel Opsi konfigurasi Aliran Udara.
-
Pilih konfigurasi dari daftar dropdown dan masukkan nilai, atau ketik konfigurasi khusus dan masukkan nilai.
-
Pilih Tambahkan konfigurasi khusus untuk setiap konfigurasi yang ingin Anda tambahkan.
-
Pilih Simpan.
Untuk mempelajari selengkapnya, lihat Menggunakan opsi konfigurasi Apache Airflow di Amazon MWAA.
Penjadwal Aliran Udara Apache
Penjadwal Apache Airflow adalah komponen inti dari Apache Airflow. Masalah dengan penjadwal dapat DAGs mencegah penguraian dan tugas dijadwalkan. Untuk informasi selengkapnya tentang penyetelan penjadwal Apache Airflow, lihat Menyesuaikan kinerja penjadwal Anda di situs web dokumentasi Apache Airflow.
Parameter
Bagian ini menjelaskan opsi konfigurasi yang tersedia untuk penjadwal Apache Airflow dan kasus penggunaannya.
- Apache Airflow v2
-
Versi |
Opsi Konfigurasi |
Default |
Deskripsi |
Kasus penggunaan |
v2
|
celery.sync_parallelism
|
1
|
Jumlah proses yang digunakan Celery Executor untuk menyinkronkan status tugas.
|
Anda dapat menggunakan opsi ini untuk mencegah konflik antrian dengan membatasi proses yang digunakan Celery Executor. Secara default, nilai diatur 1 untuk mencegah kesalahan dalam mengirimkan log tugas ke CloudWatch Log. Menyetel nilai 0 berarti menggunakan jumlah maksimum proses, tetapi dapat menyebabkan kesalahan saat mengirimkan log tugas.
|
v2
|
scheduler.idle_sleep_time
|
1
|
Jumlah detik untuk menunggu antara pemrosesan file DAG berturut-turut di “loop” Scheduler.
|
Anda dapat menggunakan opsi ini untuk membebaskan penggunaan CPU pada Scheduler dengan meningkatkan waktu Scheduler tidur setelah selesai mengambil hasil penguraian DAG, menemukan dan mengantri tugas, dan menjalankan tugas antrian di Pelaksana. Meningkatkan nilai ini menghabiskan jumlah thread Scheduler yang dijalankan di lingkungan scheduler.parsing_processes untuk Apache Airflow v2 dan scheduler.max_threads untuk Apache Airflow v1. Ini dapat mengurangi kapasitas Schedulers untuk mengurai DAGs, dan meningkatkan waktu yang diperlukan DAGs untuk muncul di server Web.
|
v2
|
scheduler.max_dagruns_to_create_per_loop
|
10
|
Jumlah maksimum yang DAGs harus dibuat DagRunsuntuk per Scheduler “loop.”
|
Anda dapat menggunakan opsi ini untuk membebaskan sumber daya untuk menjadwalkan tugas dengan mengurangi jumlah maksimum DagRunsuntuk “loop” Scheduler.
|
v2
|
scheduler.parsing_processes
|
Atur menggunakan rumus berikut: secara (2 * number of vCPUs) - 1 default.
|
Jumlah thread Scheduler dapat berjalan secara paralel dengan jadwal DAGs.
|
Anda dapat menggunakan opsi ini untuk membebaskan sumber daya dengan mengurangi jumlah proses yang dijalankan Scheduler secara paralel untuk mengurai. DAGs Kami menyarankan agar angka ini tetap rendah jika penguraian DAG memengaruhi penjadwalan tugas. Anda harus menentukan nilai yang kurang dari jumlah vCPU di lingkungan Anda. Untuk mempelajari lebih lanjut, lihat Batas.
|
Batas
Bagian ini menjelaskan batasan yang harus Anda pertimbangkan saat menyesuaikan parameter default untuk penjadwal.
- scheduler.parsing_processes, scheduler.max_threads
-
Dua utas diperbolehkan per vCPU untuk kelas lingkungan. Setidaknya satu utas harus disediakan untuk penjadwal untuk kelas lingkungan. Jika Anda melihat keterlambatan dalam tugas yang dijadwalkan, Anda mungkin perlu meningkatkan kelas lingkungan Anda. Misalnya, lingkungan yang besar memiliki instance kontainer Fargate 4 vCPU untuk penjadwalnya. Ini berarti bahwa maksimum 7
total utas tersedia untuk digunakan untuk proses lain. Artinya, dua utas dikalikan empat vCPUs, minus satu untuk penjadwal itu sendiri. Nilai yang Anda tentukan scheduler.max_threads
dan tidak scheduler.parsing_processes
boleh melebihi jumlah utas yang tersedia untuk kelas lingkungan (seperti yang ditunjukkan, di bawah ini:
-
mw1.small — Tidak boleh melebihi 1
thread untuk proses lainnya. Thread yang tersisa dicadangkan untuk Scheduler.
-
mw1.medium — Tidak boleh melebihi 3
thread untuk proses lainnya. Thread yang tersisa dicadangkan untuk Scheduler.
-
mw1.large - Tidak boleh melebihi 7
utas untuk proses lainnya. Thread yang tersisa dicadangkan untuk Scheduler.
Folder DAG
Penjadwal Aliran Udara Apache terus memindai DAGs folder di lingkungan Anda. plugins.zip
File apa pun yang berisi, atau file Python (.py
) yang berisi pernyataan impor “aliran udara”. Setiap objek Python DAG yang dihasilkan kemudian ditempatkan ke dalam file yang akan diproses oleh Scheduler untuk menentukan apa, jika ada, tugas yang perlu dijadwalkan. DagBag Penguraian file Dag terjadi terlepas dari apakah file berisi objek DAG yang layak.
Parameter
Bagian ini menjelaskan opsi konfigurasi yang tersedia untuk DAGs folder dan kasus penggunaannya.
- Apache Airflow v2
-
Versi |
Opsi Konfigurasi |
Default |
Deskripsi |
Kasus penggunaan |
v2
|
scheduler.dag_dir_list_interval
|
300 detik
|
Jumlah detik DAGs folder harus dipindai untuk file baru.
|
Anda dapat menggunakan opsi ini untuk membebaskan sumber daya dengan meningkatkan jumlah detik untuk mengurai DAGs folder. Kami merekomendasikan untuk meningkatkan nilai ini jika Anda melihat waktu penguraian yang lamatotal_parse_time metrics , yang mungkin disebabkan oleh sejumlah besar file di DAGs folder Anda.
|
v2
|
scheduler.min_file_process_interval
|
30 detik
|
Jumlah detik setelah penjadwal mem-parsing DAG dan pembaruan ke DAG tercermin.
|
Anda dapat menggunakan opsi ini untuk membebaskan sumber daya dengan meningkatkan jumlah detik yang menunggu penjadwal sebelum menguraikan DAG. Misalnya, jika Anda menentukan nilai30 , file DAG diurai setelah setiap 30 detik. Kami menyarankan agar angka ini tetap tinggi untuk mengurangi penggunaan CPU di lingkungan Anda.
|
File DAG
Sebagai bagian dari loop scheduler Apache Airflow, file DAG individual diurai untuk mengekstrak objek DAG Python. Di Apache Airflow v2 dan di atasnya, scheduler mem-parsing maksimum jumlah proses parsing secara bersamaan. Jumlah detik yang ditentukan scheduler.min_file_process_interval
harus lewat sebelum file yang sama diurai lagi.
Parameter
Bagian ini menjelaskan opsi konfigurasi yang tersedia untuk file Apache Airflow DAG dan kasus penggunaannya.
- Apache Airflow v2
-
Versi |
Opsi Konfigurasi |
Default |
Deskripsi |
Kasus penggunaan |
v2
|
core.dag_file_processor_timeout
|
50 detik
|
Jumlah detik sebelum DagFileProcessorwaktu habis memproses file DAG.
|
Anda dapat menggunakan opsi ini untuk membebaskan sumber daya dengan meningkatkan waktu yang dibutuhkan sebelum DagFileProcessorwaktu habis. Kami merekomendasikan untuk meningkatkan nilai ini jika Anda melihat batas waktu di log pemrosesan DAG Anda yang menghasilkan tidak ada pemuatan yang DAGs layak.
|
v2
|
core.dagbag_import_timeout
|
30 detik
|
Jumlah detik sebelum mengimpor file Python habis waktu.
|
Anda dapat menggunakan opsi ini untuk membebaskan sumber daya dengan meningkatkan waktu yang diperlukan sebelum waktu Penjadwal habis saat mengimpor file Python untuk mengekstrak objek DAG. Opsi ini diproses sebagai bagian dari “loop” Scheduler, dan harus berisi nilai yang lebih rendah dari nilai yang ditentukan dalamcore.dag_file_processor_timeout .
|
v2
|
core.min_serialized_dag_update_interval
|
30
|
Jumlah minimum detik setelah serial DAGs dalam database diperbarui.
|
Anda dapat menggunakan opsi ini untuk membebaskan sumber daya dengan meningkatkan jumlah detik setelah serial DAGs dalam database diperbarui. Kami merekomendasikan untuk meningkatkan nilai ini jika Anda memiliki sejumlah besar DAGs, atau kompleks DAGs. Meningkatkan nilai ini mengurangi beban pada Scheduler dan database seperti yang DAGs diserialkan.
|
v2
|
core.min_serialized_dag_fetch_interval
|
10
|
Jumlah detik DAG serial diambil kembali dari database saat sudah dimuat di file. DagBag
|
Anda dapat menggunakan opsi ini untuk membebaskan sumber daya dengan meningkatkan jumlah detik DAG serial diambil kembali. Nilai harus lebih tinggi dari nilai yang ditentukan core.min_serialized_dag_update_interval untuk mengurangi tingkat “tulis” database. Meningkatkan nilai ini mengurangi beban pada server Web dan database seperti yang DAGs diserialkan.
|
Tugas
Penjadwal dan pekerja Apache Airflow sama-sama terlibat dalam tugas antrian dan de-antrian. Penjadwal mengambil tugas yang diuraikan yang siap dijadwalkan dari status Tidak Ada ke status Terjadwal. Pelaksana, juga berjalan pada wadah penjadwal di Fargate, mengantri tugas-tugas itu dan menetapkan statusnya ke Antrian. Ketika pekerja memiliki kapasitas, ia mengambil tugas dari antrian dan menetapkan status ke Running, yang kemudian mengubah statusnya menjadi Sukses atau Gagal berdasarkan apakah tugas berhasil atau gagal.
Parameter
Bagian ini menjelaskan opsi konfigurasi yang tersedia untuk tugas Apache Airflow dan kasus penggunaannya.
Opsi konfigurasi default yang ditimpa Amazon MWAA ditandai. red
- Apache Airflow v2
-
Versi |
Opsi Konfigurasi |
Default |
Deskripsi |
Kasus penggunaan |
v2
|
inti.paralelisme
|
Dinamis diatur berdasarkan(maxWorkers * maxCeleryWorkers) / schedulers * 1.5 .
|
Jumlah maksimum instance tugas yang dapat memiliki status “Running.”
|
Anda dapat menggunakan opsi ini untuk membebaskan sumber daya dengan meningkatkan jumlah instance tugas yang dapat dijalankan secara bersamaan. Nilai yang ditentukan harus berupa jumlah Pekerja yang tersedia “kali” kepadatan tugas Pekerja. Kami merekomendasikan untuk mengubah nilai ini hanya ketika Anda melihat sejumlah besar tugas terjebak dalam status “Berlari” atau “Antrian”.
|
v2
|
core.dag_concurrency
|
10000
|
Jumlah instance tugas yang diizinkan untuk dijalankan secara bersamaan untuk setiap DAG.
|
Anda dapat menggunakan opsi ini untuk membebaskan sumber daya dengan meningkatkan jumlah instance tugas yang diizinkan untuk dijalankan secara bersamaan. Misalnya, jika Anda memiliki seratus DAGs dengan sepuluh tugas paralel, dan Anda DAGs ingin semuanya berjalan secara bersamaan, Anda dapat menghitung paralelisme maksimum sebagai jumlah Pekerja yang tersedia “kali” kepadatan tugas Pekerjacelery.worker_concurrency , dibagi dengan jumlah DAGs (misalnya 100).
|
v2
|
core.execute_tasks_new_python_penerjemah
|
True
|
Menentukan apakah Apache Airflow menjalankan tugas dengan melakukan fork pada proses induk, atau dengan membuat proses Python baru. |
Ketika diatur keTrue , Apache Airflow mengenali perubahan yang Anda buat pada plugin Anda sebagai proses Python baru sehingga dibuat untuk menjalankan tugas.
|
v2
|
celery.worker_concurrency
|
N/A
|
Amazon MWAA mengesampingkan instalasi basis Airflow untuk opsi ini untuk menskalakan Pekerja sebagai bagian dari komponen penskalaan otomatisnya.
|
Any value specified for this option is ignored.
|
v2
|
seledry.worker_autoscale
|
mw1.mikro - 3,0
mw1.small - 5,0
mw1.medium - 10,0
mw1.large - 20,0
mw1.xlarge - 40,0
mw1.2xlarge - 80,0
|
Konkurensi tugas untuk Pekerja.
|
Anda dapat menggunakan opsi ini untuk membebaskan sumber daya dengan mengurangi maximum konkurensi minimum tugas Pekerja. Pekerja menerima hingga tugas maximum bersamaan yang dikonfigurasi, terlepas dari apakah ada sumber daya yang cukup untuk melakukannya. Jika tugas dijadwalkan tanpa sumber daya yang memadai, tugas segera gagal. Kami merekomendasikan mengubah nilai ini untuk tugas intensif sumber daya dengan mengurangi nilai menjadi kurang dari default untuk memungkinkan lebih banyak kapasitas per tugas.
|