ป้องกัน Connection Overload ใน Azure ตอนนี้ web ของคุณ หรือ web-api ของคุณมีคนใช้เยอะเกินไปหรือเปล่าครับ? ถ้า web ของคุณมีคนใช้จน CPU เต็ม 100% แล้วคุณยังฝืนปล่อยให้มีคนมาเรียกอีก ระบบคุณอาจจะค้างไปเลยก็ได้ คุณสามารถปฏิเสธ request ใหม่ ๆ ให้ขึ้น 503 service unavailable ซึ่งเป็นการป้องกันไม่ให้ Server คุณล่มได้ ไปที่ Config ของ WebRole (ServiceDefinition.csdef) เพิ่มบรรทัดนี้
เช่น
ที่ Project Web แล้วเพิ่ม reference Microsoft.Web.Administration.dll (อยู่ใน %windir%system32inetsrv) และก็เพิ่ม WebRole.cs (ถ้ายังไม่มี) เพิ่มคำสั่งใน OnStart ดังนี้ public class WebRole : RoleEntryPoint { public override bool OnStart() { using (var mgr = new ServerManager()) { mgr.Sites[0].Limits.MaxConnections = 5000; mgr.CommitChanges(); } return true; } } ตัวเลข 5000 คือจำนวน Connection สูงสุด ถ้าเกินกว่านี้จะขึ้น 503 Service Unavailable ปรับเป็นตัวเลขที่คุณต้องการได้เลยครับ |