def update(self):
"""Update CPU frequency data"""
def get_avarage_cpu_freq():
with open("/proc/cpuinfo") as cpuinfo:
cores_freq = []
for line in cpuinfo:
if "cpu MHz" in line:
core_freq = re.findall('\d+\.\d+', line)
cores_freq += core_freq
return round(sum(float(x) for x in cores_freq) / len(cores_freq), 1)
try:
cur_freq = int(psutil.cpu_freq().current)
except:
cur_freq = 0
try:
cur_freq = get_avarage_cpu_freq()
except:
cur_freq = 0
logging.debug("Frequency unavailable")
if self.stress_started:
self.samples_taken += 1
# Here is where we need to generate the max frequency lost
if self.is_admin and self.samples_taken > self.WAIT_SAMPLES:
self.perf_lost = int(self.top_freq) - int(cur_freq)
if self.top_freq != 0:
self.perf_lost = (round(float(self.perf_lost) / float(self.top_freq) * 100, 1))
else:
self.perf_lost = 0
if self.perf_lost > self.max_perf_lost:
self.max_perf_lost = self.perf_lost
elif not self.is_admin:
self.max_perf_lost = 0
self.last_freq = cur_freq
评论列表
文章目录