便宜的 VPS 上的 250Mbs 是否足以讓 500 個 CCU 收聽廣播流?
我想使用由法國 OVH 託管的廉價 VPS(1 個 vCore、2 GB RAM、40 GB SSD NVMe、250 Mbps 不限速)來託管一個將用於本月活動的 icecast 伺服器。將有多達 500 個 CCU 監聽 128 kbps 音頻流。
根據我對本文的閱讀,在我看來 250 Mbps 應該足以響應負載,但我沒有任何管理此類問題的經驗。
我的理由是 128kb*500CCU + 10% 成本 = 大約 70 Mb/s。
我還想知道 OVH 提供的 250 Mbps 不計量是否得到保證,或者使用該機器的其他客戶端託管的其他服務的負載是否會對性能產生影響。(我已經問過OVH,但他們並不是特別有幫助)
謝謝你的見解!塞繆爾
更新
我已經使用上面連結中描述的腳本設置了負載測試場景。
#!/bin/sh # # max concurrent curls to kick off max=600 # how long to sleep between each curl, can be decimal 0.5 delay=1 # how long to stay connected (in seconds) duration=1800 # url to request from URL=<theURL> echo "Start load test" while /bin/true do count=0 while [ $count -le $max ] do curl -m $duration --silent --output /dev/null "$URL" & curl -m $duration --silent --output /dev/null "$URL" & curl -m $duration --silent --output /dev/null "$URL" & curl -m $duration --silent --output /dev/null "$URL" & curl -m $duration --silent --output /dev/null "$URL" & curl -m $duration --silent --output /dev/null "$URL" & curl -m $duration --silent --output /dev/null "$URL" & curl -m $duration --silent --output /dev/null "$URL" & curl -m $duration --silent --output /dev/null "$URL" & curl -m $duration --silent --output /dev/null "$URL" & [ "$delay" != "" ] && sleep $delay let count=$count+10 echo "Added 10 clients, now at $count clients" done wait done
在 VPS1(“客戶端”機器)上啟動腳本之前,我在 VPS2(“伺服器”機器,icecast2 伺服器所在的位置)上的網路介面上使用 slurm 打開了一個視窗來監控網路使用情況,如下所示:
slurm -i eth0
我還打開了一個視窗來監控 icecast 的 CPU 使用情況(在 VPS2 上),如下所示:
top -p <PID OF ICECAST>
並在收聽廣播流時啟動腳本。一切都很順利,我沒有聽到任何故障,而且 CPU 使用率(600 CCU 時為 6%)非常合理(網路使用率也比我預期的要低得多,峰值使用率是 17MB),所以我猜我的設置通過負載測試!
感謝您的幫助。
就純粹的數字而言,它確實足夠好。
實際上,並不能保證。正如您所提到的,250MBit/s 不能保證/承諾。此外,到/來自不同 ISP/目的地的有效頻寬也會不同。由於流量將通過各種互連(例如對等互連和上游提供商)退出 OVH。
在實踐中,最實用的方法是密切關注事物並聽取使用者回饋。一個相當常見的擁塞跡像是,如果您開始在 Icecast 管理界面中看到許多/所有偵聽器客戶端落後很多。請注意,由於各種其他原因,一些或少數很可能總是落後,應該可以安全地忽略。
另一種選擇通常保留給大規模的專業部署:多台伺服器,每台都有承諾的頻寬。