خیلی از برنامه ها در زمان پروداکت با مشکل کارایی مواجه میشن مخصوصا زمانی که کاربران اون ها زیاد میشه و پیدا کردن این کاهش کارایی یکی از سخت ترین کارهاست. حالا فرض کنید که برنامه ها روی کوبرنتیز و به صورت داکر هم پیاده سازی شده باشن که مشکلات رو چند برابر میکنه.
ابزار Profiling یه وسیله بسیار کاربردی برای زمانی که شما نیاز دارین برنامه رو آنالیز کنید و باتلنک های برنامه که باعث کاهش کارایی میشن رو پیدا کنید که این کار رو با ساخت چارت های گرافیکی Flame نشون میده
محور Y stack deep و محور X نیز نمونه ها رو نشون میده هر مستطیل یک تابع است که نشون دهنده میزان زمان اجرای برنامه است توابعی که زمان زیادی رو صرف میکنند مستطیل بزرگتری هم خواهند داشت.
مشکلات پروفایل در کوبرنتیز:
۱- سرعت اجرای برنامه رو در محیط پروداکت کم میکنه
۲- نیازمند تغییر برنامه است.
وقتی داریم برنامه رو روی کوبرنتیز اجرا میکنیم مشکلات بیشتر هم میشه مثل تغییر در ایمیج کانتینر برای فعال کردن پروفایل یا از دست دادن برخی اشکالات به خاطر ریستارت پاد
برای رفع این اشکالات ما از kubectl Flameاستفاده میکنیم که یک پلاگین روی kubectlهست. مزیت این پلاگین اینه که بدون نیاز به تغییری در ساختار برنامه میتونیم پروفایلینگ از برنامه هامون داشته باشیم.
kubectl flame app-deployment -t 1m -f /tmp/flamegraph.svg --alpine