Topik ini menjelaskan cara mengoptimalkan cold start dan kinerja fungsi instans on-demand dengan menggunakan instans yang disediakan di Function Compute.
Apa itu cold start?
Function Compute mendukung dua jenis instans: instans on-demand dan instans yang disediakan. Instans on-demand dialokasikan dan dilepaskan secara otomatis oleh Function Compute. Anda dikenakan biaya berdasarkan jumlah waktu aktual yang digunakan oleh instans untuk memproses permintaan. Penggunaan instans on-demand menghilangkan kebutuhan untuk mengelola dan mengalokasikan sumber daya secara manual. Namun, mode on-demand dapat menyebabkan cold start, yang meningkatkan latensi pemanggilan dan memengaruhi kinerja fungsi.
Cold start mengacu pada proses menyiapkan lingkungan eksekusi dan kode, seperti unduhan kode, startup kontainer, inisialisasi runtime, serta inisialisasi kode. Setelah cold start selesai, instans fungsi siap untuk memproses permintaan berikutnya.
Cold start instans on-demand yang dioptimalkan
Cold start dapat dioptimalkan baik di sisi sistem maupun pengguna. Di sisi sistem, Function Compute telah melakukan banyak peningkatan untuk mengoptimalkan cold start. Di sisi pengguna, kami merekomendasikan metode berikut untuk mengurangi cold start:
Gunakan Paket Kode Ringan
Gunakan paket kode ringan dan hapus dependensi yang tidak perlu. Misalnya, Anda dapat menjalankan npm prune di runtime Node.js atau autoflake di runtime Python. Selain itu, Anda dapat menghapus file redundan, seperti kode sumber tes dan file biner serta data file yang tidak valid, dari pustaka pihak ketiga untuk mengurangi waktu unduhan dan dekompresi kode.
Gunakan Bahasa Pemrograman Ringan
Bahasa tertentu, seperti Java, cenderung memiliki cold start lebih lama dibandingkan bahasa lain. Untuk aplikasi yang sensitif terhadap cold start, menggunakan bahasa pemrograman ringan seperti Python dapat secara signifikan mengurangi latensi ekor panjang jika latensi warm start tidak jauh berbeda.
Konfigurasikan Memori yang Tepat
Untuk fungsi dengan pengaturan konkurensi tetap, lebih banyak sumber daya CPU tersedia untuk menjalankan fungsi jika memori yang lebih besar dikonfigurasikan.
Kurangi Frekuensi Cold Start
Gunakan pemicu waktu untuk memanaskan instans.
Gunakan panggilan balik Initializer. Dalam kasus ini, Function Compute memanggil initializer secara asinkron untuk menghilangkan waktu yang dihabiskan untuk inisialisasi kode. Cold start tidak terlihat oleh pengguna selama pembaruan sistem dan fungsi Function Compute.
Mode hibrida
Dalam banyak kasus, cold start di sisi pengguna sulit dihilangkan. Misalnya, dalam skenario inferensi pembelajaran mendalam, cold start tidak dapat dihindari jika sejumlah besar file model harus dimuat atau fungsi harus berinteraksi dengan sistem warisan menggunakan klien yang membutuhkan waktu lama untuk diinisialisasi. Dalam skenario ini, Anda dapat mengonfigurasi instans yang disediakan atau menggunakan kombinasi instans yang disediakan dan instans on-demand jika fungsi Anda sensitif terhadap latensi.
Instans yang disediakan dialokasikan dan dilepaskan oleh Anda. Anda dikenakan biaya berdasarkan durasi berjalannya instans. Sistem secara otomatis mengalokasikan instans on-demand ketika sumber daya instans yang disediakan tidak cukup untuk memenuhi persyaratan beban kerja. Ini membantu mencapai keseimbangan optimal antara kinerja dan pemanfaatan sumber daya. Instans yang disediakan memungkinkan Anda mengalokasikan sumber daya komputasi sebelumnya berdasarkan fluktuasi beban kerja. Sistem masih menggunakan instans yang disediakan untuk memproses permintaan ketika instans on-demand dialokasikan, sehingga menghilangkan latensi yang disebabkan oleh cold start.
Instans yang disediakan diprioritaskan jika Anda mengonfigurasi instans yang disediakan dan instans on-demand. Misalnya, Anda memiliki 10 instans yang disediakan. Function Compute mengalokasikan instans on-demand untuk memproses permintaan jika lebih dari 10 instans diperlukan per detik untuk memproses permintaan. Apakah sebuah instans sepenuhnya dimuat ditentukan oleh pengaturan konkurensi instans tersebut. Sistem melacak jumlah permintaan yang sedang diproses di setiap instans. Ketika jumlah permintaan bersamaan dari sebuah instans mencapai batas atas yang ditentukan, sistem mengalokasikan instans lain. Ketika jumlah permintaan untuk semua instans mencapai batas atas, instans baru dibuat. Instans yang disediakan dikelola oleh Anda. Anda dikenakan biaya untuk instans yang disediakan bahkan ketika mereka tidak memproses permintaan. Instans on-demand dikelola oleh Function Compute. Sistem mengambil kembali instans on-demand yang telah menganggur selama periode waktu tertentu. Anda hanya dikenakan biaya berdasarkan periode aktual selama instans on-demand memproses permintaan. Untuk informasi lebih lanjut tentang aturan penagihan, lihat Ikhtisar Penagihan. Anda dapat mengonfigurasi batas atas penggunaan untuk instans on-demand untuk memastikan bahwa penggunaan sumber daya berada dalam rentang yang diharapkan.