以前一直使用阿里云的SLB負載均衡沒發(fā)現(xiàn)套路,最近有個項目開發(fā)階段,購買了三臺服務器一臺SLB負載均衡(帶寬5M)。
在使用中發(fā)現(xiàn)負載均衡帶寬怎么都只能達到1.6M左右;查看監(jiān)控也一直沒達到過峰值5M,于是就提交了負載均衡的售后工單,反應這個情況,然后這個售后工程師也是水的可以。
盡然告訴我實際帶寬是5M/后端3臺ECS服務器=1.667M。
按照他這個邏輯,我買10臺ECS,SLB購買10M帶寬,那么每個請求達到ECS也最多有1M的帶寬峰值,于是再次反饋,得到的答復是核實,差不多核實了一個小時左右,給了我一個公式和一個鏈接。
下面是鏈接內容,關鍵信息我已經標注:
大概的意思是:我們買的SLB,是采用的集群搭建,所以我們購買的帶寬就要平均分配到這些集群服務器上面,而每個鏈接只能通過SLB集群中的一臺去轉發(fā),那么這個鏈接帶寬峰值只有實際購買帶寬的1/3。
根據阿里云官網給出的SLB架構圖,4層負載采用LVS集群,這樣的確可以提高穩(wěn)定性和可用性,但是空閑時你就能把我們購買的帶寬給平均了?
后面又經過一番反饋和回復,總體的意思是:
1、SLB不合適單鏈接的情況,如果后端只有一臺ECS,就直接使用ECS,不要使用SLB。
2、這個是產品限制,單鏈場景可以購買NAT產品。
拋開技術不談,至少在產品購買頁面,應該提示單鏈接峰值只有購買帶寬的1/3,而不是把這個說明藏在大海中。
經過本地局域網多臺服務器同時請求測試,幾臺服務器S的帶寬峰值總和永遠只有購買的1/3。
如果SLB一直處于高并發(fā)狀態(tài),沒有空閑狀態(tài),那么帶寬還是會達到峰值的。
如果空閑狀態(tài),每秒低于3個鏈接,那么永遠也達不到購買的帶寬峰值,那么這個剩余的帶寬到哪里去了?(可能他們會說SLB定位高并發(fā)場景)其中的套路給每個人自己去琢磨吧。
最后建議:
后端接口負載時候,就按流量付費類型購買,這樣峰值5G的帶寬平均下來單鏈接也隨便夠用了,高并發(fā)也更不用擔心了帶寬峰值問題了。
至于:騰訊云、華為云、AWS等這些服務商的SLB是怎么去限制這個帶寬的,還沒有時間去研究,等有機會再去研究研究。