اینم حیفم میاد راجبش صحبت نکنم چون ایده بسیار بسیار جذابی داره
ایده الگوریتم Hill Climbing دقیقاً مثل اینه که توی یه کوهستان کاملاً مهآلود بخواید با چشم بسته به نوک قله برسید؛ تنها راهش اینه که یه قدم آزمایشی بردارید، اگر دیدید رفتید بالاتر، به همون مسیر ادامه بدید و اگر دیدید رفتید پایینتر، برگردید عقب. توی داتنت هم Runtime از قبل نمیدونه دقیقاً چند تا ترد برای سرور شما بهینه است (چون تردِ کم باعث صف کشیدن ریکوئستها میشه و تردِ زیاد هم با Context Switching شدید، CPU رو خفه میکنه). برای همین الگوریتم Hill Climbing میاد به صورت آزمایشی ترد اضافه میکنه و خروجی سیستم (Throughput) رو میسنجه؛ اگر دید با اضافه کردن ترد، تسکهای بیشتری در ثانیه انجام میشن، به ساختن ترد ادامه میده، اما به محض اینکه ببینه اضافه کردن ترد جدید باعث افت پرفورمنس شده، میفهمه به قله رسیده و جلوی ساخت تردهای بیشتر رو میگیره.
یه الگوریتم دیگ هم شبیه به این داریم بهش میگن Control Loop که کوبرنتیز توی Autoscaling داره ازش استفاده میکنه منتهی به هیچ وجه به فراغ بالی Hill Climbing نیست چون اضافه کردن بی ملاحظه پاد روی یه سرور میتونه خیلی سریع اونو نابود کنه و شبکمون رو بفنا بده راجبش حتما یه تحقیقی کنید !
@codehalics | کدهالیک
Post #1215
275
کدهالیک | codehalic الگوریتم Hill Climbing
- 🔥 5
- 👍 1