要在網頁上實時顯示網速,需要實時請求服務器(由于許多瀏覽器不支持web socket,這里還是用ajax輪詢的方式),這里的服務器以centos為例,使用sysstat,不同的服務器,可能需要不同的軟件支持。
一、centos里安裝sysstat
yum? install sysstat
安裝完成后,使用sar -V查看
二、sar的使用
首先使用ifconfig查看使用的網上,確認一個要查看的網卡的名稱,這里我使用的是eth0
然后使用sar獲取網速:
sar -n DEV 1 1 | grep Average | grep eth0
它的意思是獲取eth0的平均網速,這一行有10列,第四列是接收的速度,第五列是發送的速度,不同的系統可能不一樣。
三、在ruby on rails里使用命令獲取網速
在controller里用如下代碼獲取接收和發送網速
net = %x"sar -n DEV 1 1 | grep Average | grep eth0".squish.split(" ")
receive = "#{net[4].to_i.to_s(:human_size)}/s" #接收網速
transmit = "#{net[5].to_i.to_s(:human_size)}/s" #發送網速
render json: {receive: receive, transmit: transmit}? # 以json格式返回數據
四、ajax請求,在頁面上展示
這里使用setInterval定時執行ajax查詢。