| Server IP : 101.53.144.229 / Your IP : 216.73.216.104 Web Server : Apache System : Linux host.gdigitalindia.in 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64 User : digitalshiksha ( 1179) PHP Version : 5.6.40 Disable Function : eval,show_source,system,shell_exec,escapeshellarg,escapeshellcmd,proc_close,proc_open,ini_alter,dl,show_source,curl_multi_exechellcmd, ini_restore,apache_get_modules,get_cfg_var,passthru, exec ,proc_get_status,fpassthru,c999_buff_prepare,c999_sess_put,c99_buff_prepare,c99_sess_put,proc_close,ini_alter,dl,symlink,link,proc_close,ini_alter,dl,symlink,link,mail MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /proc/self/cwd/c1/1/proc/self/root/usr/lib/python2.7/site-packages/tuned/monitors/ |
Upload File : |
import tuned.monitors
import os
import re
from tuned.utils.nettool import ethcard
class NetMonitor(tuned.monitors.Monitor):
@classmethod
def _init_available_devices(cls):
available = []
for root, dirs, files in os.walk("/sys/devices"):
if root.endswith("/net") and not root.endswith("/virtual/net"):
available += dirs
cls._available_devices = set(available)
for dev in available:
#max_speed = cls._calcspeed(ethcard(dev).get_max_speed())
cls._load[dev] = ['0', '0', '0', '0']
@classmethod
def _calcspeed(cls, speed):
# 0.6 is just a magical constant (empirical value): Typical workload on netcard won't exceed
# that and if it does, then the code is smart enough to adapt it.
# 1024 * 1024 as for MB -> B
# speed / 8 Mb -> MB
return (int) (0.6 * 1024 * 1024 * speed / 8)
@classmethod
def _updateStat(cls, dev):
files = ["rx_bytes", "rx_packets", "tx_bytes", "tx_packets"]
for i,f in enumerate(files):
with open("/sys/class/net/" + dev + "/statistics/" + f) as statfile:
cls._load[dev][i] = statfile.read().strip()
@classmethod
def update(cls):
for device in cls._updating_devices:
cls._updateStat(device)