Hari ini, sebagian besar organisasi perusahaan yang menjalankan aplikasi sangat penting di Kubernetes melakukannya di lingkungan banyak penyewa. Lingkungan banyak penyewa ini mengandalkan pengaturan batas untuk mengatur konsumsi beban kerja penyewa atau menggunakan batas untuk penagihan kembali. Beberapa pengembang akan memilih untuk menetapkan batas CPU atau GPU untuk pengujian tolok ukur aplikasi mereka.
Pelambatan CPU—di mana laju penjadwalan tugas pada inti CPU fisik secara tidak sengaja berkurang, sering kali mengakibatkan peningkatan waktu respons aplikasi yang tidak diinginkan—adalah konsekuensi yang tidak diinginkan dari desain ini. Lihatlah contoh ini:
Pada gambar di atas, penggunaan CPU kontainer hanya 25%, yang menjadikannya kandidat yang realistis untuk mengubah ukuran:
Tetapi setelah kami mengubah ukuran kontainer (penggunaan CPU kontainer sekarang 50%, masih tidak tinggi), waktu respons meningkat empat kali lipat.
Buletin industri
Tetap terinformasi tentang tren industri yang paling penting—dan menarik—tentang AI, otomatisasi, data, dan di luarnya dengan buletin Think. Lihat Pernyataan Privasi IBM®.
Langganan Anda akan disediakan dalam bahasa Inggris. Anda akan menemukan tautan berhenti berlangganan di setiap buletin. Anda dapat mengelola langganan atau berhenti berlangganan di sini. Lihat Pernyataan Privasi IBM® kami untuk informasi lebih lanjut.
Jadi, apa yang terjadi di sini? Pelambatan CPU terjadi ketika Anda mengonfigurasi batas CPU pada kontainer, yang secara terbalik dapat memperlambat waktu respons aplikasi Anda dan menyebabkan masalah pelambatan. Bahkan jika Anda memiliki lebih dari cukup sumber daya pada node yang mendasarinya, beban kerja kontainer Anda masih akan dibatasi karena tidak dikonfigurasi dengan benar. Selain itu, dampak kinerja dari pelambatan dapat bervariasi, tergantung pada prosesor fisik yang mendasarinya (Intel vs AMD vs NVIDIA). Waktu respons yang tinggi berkorelasi langsung dengan periode pelambatan CPU yang tinggi, dan inilah cara kerja Kubernetes yang dirancang untuk bekerja.
Untuk memberi warna pada hal ini, bayangkan Anda menetapkan batas CPU 200ms dan batas tersebut diubah ke kuota grup dalam sistem Linux yang mendasarinya. Kontainer hanya dapat menggunakan 20ms CPU pada satu waktu (disebut waktu eksekusi CPU) karena periode penegakan default hanya 100ms. Jika tugas Anda lebih lama dari 20ms, Anda akan melambat dan membutuhkan waktu 4x lebih lama untuk menyelesaikan tugas.
Berdasarkan perilaku ini, kinerja aplikasi akan menurun karena peningkatan waktu respons yang disebabkan oleh pelambatan dan Anda akan mulai memecahkan masalah untuk mencoba dan menemukan masalah.
Jika Anda menjalankan penerapan kecil, Anda mungkin dapat memecahkan masalah pembatasan secara manual.
Pertama, Anda akan mengidentifikasi pemalut yang terpengaruh menggunakan alat seperti kubectl. Selanjutnya, ulasan permintaan sumber daya pemalut dan batasan untuk memastikan mereka diatur dengan tepat. Periksa proses yang membutuhkan sumber daya yang berjalan di dalam kontainer yang mungkin menyebabkan pelambatan dan analisis pemanfaatan dan batasan CPU.
Jika pelambatan CPU tetap ada, pertimbangkan penskalaan otomatis pod horizontal untuk mendistribusikan beban kerja di lebih banyak pod, atau sesuaikan sumber daya node klaster untuk memenuhi permintaan. Terus pantau dan sempurnakan pengaturan sumber daya untuk mengoptimalkan kinerja dan mencegah masalah pelambatan lebih lanjut.
Dalam penerapan yang lebih besar, pendekatan ini tidak mungkin untuk menskalakan atau bertahan saat Anda menambahkan lebih banyak pod.
Pelambatan CPU adalah metrik kinerja aplikasi utama karena korelasi langsung antara waktu respons dan pelambatan CPU. Ini adalah berita bagus bagi Anda, karena Anda bisa mendapatkan metrik ini langsung dari Kubernetes dan OpenShift.
Untuk memastikan bahwa waktu respons aplikasi Anda tetap rendah, CPU tidak terhambat, dan Anda tetap memiliki aplikasi berkinerja tinggi, Anda harus terlebih dahulu memahami bahwa ketika pelambatan CPU terjadi, Anda tidak dapat hanya mengandalkan pemanfaatan inti CPU. Anda perlu memperhitungkan semua analitik dan dependensi sumber daya yang memengaruhi kinerja aplikasi. IBM Turbonomic telah membangun pertimbangan ini ke dalam platform analitiknya.
Saat menentukan tindakan ukuran yang tepat, Turbonomic terus menganalisis empat dimensi:
Turbonomic dapat menentukan batas CPU yang akan mengurangi risiko pelambatan dan memungkinkan aplikasi Anda bekerja tanpa beban. Ini semua melalui kekuatan menambahkan pelambatan CPU sebagai dimensi bagi platform untuk menganalisis dan mengelola pengorbanan yang muncul. Menambahkan dimensi pelambatan CPU akan memastikan waktu respons aplikasi yang rendah.
Selain itu, Turbonomic menghasilkan tindakan untuk memindahkan pod Anda dan menskalakan klaster Anda—seperti yang kita semua tahu, ini adalah tantangan keseluruhan lapisan. Pelanggan memiliki kemampuan untuk melihat KPI dan bertanya "Layanan saya yang mana yang dibatasi?" Ini juga memungkinkan mereka untuk memahami riwayat pelambatan CPU untuk setiap layanan dan mengingat bahwa setiap layanan berkorelasi langsung dengan waktu respons aplikasi, memberikan pengguna gambaran berharga tentang kinerja sistem mereka.
Dalam konteks Kubernetes, salah satu manfaat utama Turbonomic adalah kemampuannya untuk dengan cepat mengidentifikasi dan memperbaiki konsekuensi yang tidak diinginkan dari strategi platform daripada meminta pelanggan mendesain ulang strategi platform multitenant mereka. Turbonomic tidak hanya dapat memantau metrik pelambatan CPU, tetapi platform ini juga dapat secara otomatis menyesuaikan batas CPU Anda dan menurunkan pelambatan ke tingkat yang dapat dikelola.
IBM Turbonomic dapat membantu mengoptimalkan pengeluaran dan kinerja cloud Anda secara bersamaan. Anda dapat terus mengotomatiskan tindakan pengoptimalan secara real-time—tanpa intervensi manusia—yang secara proaktif memberikan penggunaan sumber daya komputasi, memori, penyimpanan, dan jaringan yang paling efisien ke aplikasi Anda di setiap lapisan tumpukan.
Red Hat OpenShift on IBM Cloud adalah OpenShift Container Platform (OCP) yang dikelola sepenuhnya.
Solusi kontainer menjalankan dan meningkatkan beban kerja dalam kontainer dengan keamanan, inovasi sumber terbuka, dan penerapan yang cepat.
Dapatkan kemampuan baru dan dorong ketangkasan bisnis dengan layanan konsultasi cloud IBM. Temukan cara berkolaborasi dalam menciptakan solusi, mempercepat transformasi digital, dan mengoptimalkan kinerja melalui strategi hybrid cloud dan kemitraan pakar.