| Server IP : 23.254.227.96 / Your IP : 216.73.216.21 Web Server : Apache/2.4.62 (Unix) OpenSSL/1.1.1k System : Linux hwsrv-1277026.hostwindsdns.com 4.18.0-477.13.1.el8_8.x86_64 #1 SMP Tue May 30 14:53:41 EDT 2023 x86_64 User : viralblo ( 1001) PHP Version : 8.1.31 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /usr/lib/python3.6/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)