Get this script (GPLv2 Copyright (c) 2011 Red Hat):
import ethtool
import subprocess, sys, os
max = int(sys.argv[1])
nic = sys.argv[2]
total = 0
def memory():
""" Get current memory usage in MB """
command = "ps --no-header -o rss -p %s" % os.getpid()
p = subprocess.Popen(command.split(), stdout=subprocess.PIPE)
stdout, stderr = p.communicate()
return int(stdout) / 1024
def measure(fun, arg):
""" Run given function on given arg max times """
global total
print("\n%s on %s" % (fun, arg))
start = None
for i in range(max + 1):
result = fun(arg)
if i % (max / 10) == 0:
current = memory()
# note the memory after the first round warm-up
if start is None:
start = current
print("%s %% ... %s MB" % \
(str(100 * i / max).rjust(3), str(current).rjust(3)))
increase = current - start
print("Memory increase: %s MB" % increase)
total += increase
measure(ethtool.get_active_devices, None)
measure(ethtool.get_interfaces_info, nic)
measure(ethtool.get_interfaces_info, 'bad interface name')
print("\nTotal memory increase: %s MB" % total)
if total > 0:
sys.exit(1)
Get this script (GPLv2 Copyright (c) 2011 Red Hat):
And run: