如何保證 VPS 的 CPU 時間?
我提供了 VPS,但使用原始 Debian,它經常掛起:簡單的 ssh 命令響應時間過長。這是壞的 :(
我為它做了基準測試:每 2 分鍾啟動一次 ffmpeg 轉換 30 秒的低質量影片。通常需要 3 秒,但掛起時間約為 20 秒。
我也每 2 分鐘 ping VPS。圖是一樣的。
良好性能間隔的持續時間約為 15 分鐘,而不良性能間隔約為 25 分鐘
您可以使用數據https://docs.google.com/spreadsheets/d/1XYQV-5mompcFidOHL7XzbvvrVnjn_ZHnvBaND6RrrVY/edit?usp=sharing
該主機的另一台伺服器
相同的情況,但不嚴重
如何避免這種情況?
似乎,託管在同一台專用伺服器上的鄰居 VPS 會定期啟動高 CPU 負載任務。也許是系統備份或相同的任務。據我所知,記憶體是有保證的,但不是 CPU。
我也有來自這個主機的另一個 VPS,看起來還可以(它也有相同的峰值,但要少得多)
專用伺服器對這個項目來說太貴了。
這是主機獨立的情況,改變提供是壞主意
通常你得到你所支付的和相對便宜的託管服務提供商只能通過多次過度使用 CPU 以具有競爭力的價格提供他們的服務,即在具有 48 個核心和 128 GB 記憶體的伺服器上,他們可以嘗試託管潛在的 100+ 1 核/1GB 記憶體 VPS 實例。只要大多數 VPS 大部分處於空閒狀態,這就足夠了,當太多的 VPS 正在執行 CPU 密集型負載並開始崩潰時。
Linux 核心實際上有一個專用計數器來顯示這種情況是否發生以及發生的頻率,即“CPU 竊取時間”計數器,顯示
%st
為top
. 您可能應該開始從您的 VPS 監控它。CPU 竊取時間是一種非自願等待,您的 VPS 正在嘗試執行某些東西,但管理程序不會將請求的 CPU 週期分配給您的 VPS,而是分配給也在競爭 CPU 時間的相鄰 VPS 之一。
您可以採取的措施來緩解這種情況:
- 花更多的錢去一個不會過度使用並且會為你提供有保證的資源的供應商。
- 當您檢測到高竊取時間時,終止您的 VPS,並且當您重新啟動/重新部署它時,它很可能會在另一台負載較少的伺服器上重新啟動。