產(chǎn)品服務(wù)器設(shè)置了「外網(wǎng)帶寬使用率 = 100%,統(tǒng)計粒度5分鐘,連續(xù)1次滿足條件則每1小時告警一次」告警策略,基本上我每天都收到多條告警信息。

10年積累的成都網(wǎng)站制作、成都網(wǎng)站設(shè)計經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認識你,你也不認識我。但先網(wǎng)站設(shè)計后付款的網(wǎng)站建設(shè)流程,更有華州免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
放大一點查看數(shù)據(jù):
服務(wù)器部署了 web 服務(wù) 和 用于存儲圖片資源,報表導(dǎo)出和資源(平均200KB左右,非 kb)一張,部分頁面有時候會放好幾張圖片展示。如果是連續(xù)的瀏覽充電站、商城,或者導(dǎo)出報表,是很容易觸發(fā)2次峰值而導(dǎo)致報警的。
剛才只是大約估計了一下可能的情況,排查問題還是要系統(tǒng)地去看,需要挑選了告警的時間區(qū)間,分別進行數(shù)據(jù)統(tǒng)計。
我們服務(wù)器對外的帶寬服務(wù)有:
WEB 服務(wù)比較簡單,nginx 上都有日志,可以通過日志的 bodysize 統(tǒng)計。其他兩個是通過 socket 的,持續(xù)通訊的,所以我選擇了數(shù)據(jù)日志的 log 進行大概統(tǒng)計。
以下是我的 nginx access.log 日志格式:
可以通過配置調(diào)整 ngx_http_log_module 的 log format,如:
可以看出 nginx 日志的 body_bytes_sent 是字節(jié),所以可以通過以下指令查看數(shù)據(jù)量($10 是 body_bytes_sent 所在位置,需要根據(jù)實際調(diào)整;grep 內(nèi)容是某一分鐘的時間):
最終實際查看一天下來的流量也400MB,幾個高峰的分鐘段也就幾M,都在預(yù)期合理的范圍,并且形成不了持續(xù)的擁堵情況。
Web Socket 只有 connect 時的信息會寫在 nginx access log 上,不過平時通訊的信息都有手動寫相應(yīng)的 access log(注意排除 業(yè)務(wù)的log信息)。經(jīng)統(tǒng)計 web socket 的 access log 比較小,一天只有十幾M的數(shù)據(jù),基本可以忽略。
注意:心跳包也需要統(tǒng)計進去。
樁agent 是通過端口直連的,沒有經(jīng)過 nginx,log 比較分散,統(tǒng)計了幾個大的agent的 log(只統(tǒng)計 access log),占用的大小都不大,基本不形成高峰。但由于數(shù)量多,沒有最終確定某個時間段的高峰值。
通過 nginx 配置,限制最大的帶寬,可以稍微緩解一次訪問的壓力。避免一個大文件的訪問,就長期占用了所有的外網(wǎng)帶寬。
Nginx 限流有兩種方式:
ngx_http_limit_req_module 模塊提供限制請求處理速率能力,使用了漏桶算法(leaky bucket)。下面例子使用 nginx limit_req_zone 和 limit_req 兩個指令,限制單個IP的請求處理速率。
==在 nginx.conf http 中添加限流配置:==
==配置 server,使用 limit_req 指令應(yīng)用限流==
上面例子限制 10r/s,如果有時正常流量突然增大,超出的請求將被拒絕,無法處理突發(fā)流量,可以結(jié)合 burst 參數(shù)使用來解決該問題。
burst 譯為突發(fā)、爆發(fā),表示在超過設(shè)定的處理速率后能額外處理的請求數(shù)。當 rate=10r/s 時,將1s拆成10份,即每100ms可處理1個請求。
此處,burst=20 ,若同時有21個請求到達,Nginx 會處理第一個請求,剩余20個請求將放入隊列,然后每隔100ms從隊列中獲取一個請求進行處理。若請求數(shù)大于21,將拒絕處理多余的請求,直接返回503.
不過,單獨使用 burst 參數(shù)并不實用。假設(shè) burst=50 ,rate依然為10r/s,排隊中的50個請求雖然每100ms會處理一個,但第50個請求卻需要等待 50 * 100ms即 5s,這么長的處理時間自然難以接受。
因此,burst 往往結(jié)合 nodelay 一起使用。
nodelay 針對的是 burst 參數(shù),burst=20 nodelay 表示這20個請求立馬處理,不能延遲,相當于特事特辦。不過,即使這20個突發(fā)請求立馬處理結(jié)束,后續(xù)來了請求也不會立馬處理。burst=20 相當于緩存隊列中占了20個坑,即使請求被處理了,這20個位置這只能按 100ms一個來釋放。
這就達到了速率穩(wěn)定,但突然流量也能正常處理的效果。
ngx_http_limit_conn_module 提供了限制連接數(shù)的能力,利用 limit_conn_zone 和 limit_conn 兩個指令即可。下面是 Nginx 官方例子:
limit_conn perip 10 作用的key 是 $binary_remote_addr,表示限制單個IP同時最多能持有10個連接。
limit_conn perserver 100 作用的key是 $server_name,表示虛擬主機(server) 同時能處理并發(fā)連接的總數(shù)。
需要注意的是:只有當 request header 被后端server處理后,這個連接才進行計數(shù)。
使用獨立的云存儲,專門存放資源文件。
Agent 與樁之間是通過外網(wǎng)連接的,可以考慮多加一臺服務(wù)器,與 產(chǎn)品服務(wù)是一個內(nèi)網(wǎng)的。Agent 先連接到一臺轉(zhuǎn)發(fā)服務(wù)器,與 ECMP直接通過內(nèi)網(wǎng)連接。
端口轉(zhuǎn)發(fā)參考:《Agent端口映像》
略
鑒于當前告警實際對訪問的影響可忽略,將觸發(fā)次數(shù)調(diào)整為2次再告警。(后面再也沒有收到告警了~)
《 Nginx 的兩種限流方式 》
《 常用的服務(wù)器日志分析命令 》
可以直接在后臺進行帶寬升級的
我現(xiàn)在用的小鳥云,性能、價格比騰訊云好太多了,特別是1V1專席客服,不用提交工單,建議你也試試
增加帶寬
可以采用增加帶寬的方法,或者可以提高CPU性能或者減少其他內(nèi)存使用率。
網(wǎng)站標題:騰訊云服務(wù)器調(diào)帶寬 騰訊云網(wǎng)絡(luò)帶寬計費標準
文章位置:http://www.chinadenli.net/article44/ddoijee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號、ChatGPT、建站公司、移動網(wǎng)站建設(shè)、服務(wù)器托管、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)