[英]extracting CPU usage,Memory usage and network utilization using java on windows/linux
[英]Network Usage Monitoring in Linux using Java
我有一個基於Java的媒體服務器,它將內容流式傳輸到網頁和Android設備。 它的設置使它可以被多個用戶使用,並與其他服務器通信並與它們共享媒體。
我希望能夠通過我的媒體服務器中的服務監控總網絡流量(kb / s),這樣我就可以通過我的Android設備或網頁看到它,而無需查看我的服務器。
有沒有一種簡單的方法來獲取Java的這些信息? 某種linux資源文件? 我從google搜索過netstat和其他幾個人,他們似乎沒有以明顯的方式向我提供我想要的東西。 我只需要總流量,我不需要知道誰在和我說話。
謝謝你的幫助。 :)
pps:我正在使用最新版本的OpenSUSE,但也有Fedora上的工作版本(最新版本)。
您可以從/proc/net/dev
讀取網絡統計信息 - 有關詳細信息,請參閱http://linuxdevcenter.com/pub/a/linux/2000/11/16/LinuxAdmin.html 。
你會看到這樣的事情:
Inter-| Receive | Transmit face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed lo: 2504 30 0 0 0 0 0 0 2504 30 0 0 0 0 0 0 eth0:33769785 2548318 0 0 0 0 0 0 4146854 215379 0 0 0 0 0 0 eth1: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
因此,您需要打開文件,讀取每一行並檢查第一列以找到您關心的接口,然后提取接收和/或發送的字節和/或數據包。 如果您跟蹤讀取之間的時間,您可以像這樣計算速率:
讓
b 0
=時間t 0
字節
b 1
=時間t 1
處的字節,比t 0
晚一些時間。
然后你可以計算出率r
,像這樣:
r = (b 1 - b 0 ) / (t 1 - t 0 )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.