Skip to content

Commit c4df82e

Browse files
authored
[tests] Use memory diffs from baseline in observer helper module stats (#668)
Absolute values of RSS memory are not really useful as the setup may be different before the observer is run so we now initialize these value when the observer is created and we only record the relative difference of the context-managed block.
1 parent 5df90b1 commit c4df82e

File tree

2 files changed

+11
-6
lines changed

2 files changed

+11
-6
lines changed

tests/performance/test_statsd_throughput.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ class TestDogStatsdThroughput(unittest.TestCase):
108108

109109
RUN_MESSAGE = (
110110
"Run #{:2d}/{:2d}: {:.4f}s (latency: {:.2f}μs, cpu: {:.4f},"
111-
+ " mem.rss: {:.0f}kb, recv: {:.2f}%)"
111+
+ " mem.rss_diff: {:.0f}kb, recv: {:.2f}%)"
112112
)
113113

114114
def setUp(self):
@@ -192,22 +192,22 @@ def test_statsd_performance(self):
192192
duration,
193193
avg_latency,
194194
sys_stats["cpu.user"] + sys_stats["cpu.system"],
195-
sys_stats["mem.rss_kb"],
195+
sys_stats["mem.rss_diff_kb"],
196196
received_packet_pct,
197197
)
198198
)
199199

200200
run_durations.append(duration)
201201
run_cpu_stats.append(sys_stats["cpu.user"] + sys_stats["cpu.system"])
202-
run_memory_stats.append(sys_stats["mem.rss_kb"])
202+
run_memory_stats.append(sys_stats["mem.rss_diff_kb"])
203203
run_latencies.append(float(avg_latency))
204204
received_packet_pcts.append(received_packet_pct)
205205

206206
result_msg = "\nTotal for {} run(s), {} threads, {} points/thread via {}:\n"
207207
result_msg += "\tDuration:\t\t{:.4f}s\n"
208208
result_msg += "\tLatency:\t\t{:.2f}μs\n"
209209
result_msg += "\tCPU:\t\t\t{:.4f}\n"
210-
result_msg += "\tMemory:\t\t\t{:.0f}kb\n"
210+
result_msg += "\tMemory (rss) diff:\t{:.0f}kb\n"
211211
result_msg += "\tReceived packets:\t{:.2f}%"
212212
print(
213213
result_msg.format(

tests/util/system_info_observer.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,11 @@ def __enter__(self):
3939
pid = os.getpid()
4040
self.proc_info = psutil.Process(pid)
4141

42+
# Record baselines
4243
self.initial_cpu_user = self.proc_info.cpu_times().user
4344
self.initial_cpu_system = self.proc_info.cpu_times().system
45+
self.initial_mem_rss = self.proc_info.memory_full_info().rss
46+
self.initial_mem_vms = self.proc_info.memory_full_info().vms
4447

4548
self.observer_thread = Thread(
4649
name=self.__class__.__name__,
@@ -53,6 +56,8 @@ def __enter__(self):
5356
self.observer_thread.daemon = True
5457
self.observer_thread.start()
5558

59+
return self
60+
5661
def __exit__(self, exception_type, exception_value, exception_traceback):
5762
self.exit.set()
5863
self.observer_thread.join()
@@ -64,8 +69,8 @@ def poll_system_info(self, proc_info, interval):
6469
mem_info = proc_info.memory_full_info()
6570
datapoint = {
6671
"interval": interval,
67-
"mem.rss_kb": mem_info.rss / 1024,
68-
"mem.vms_kb": mem_info.vms / 1024,
72+
"mem.rss_diff_kb": (mem_info.rss - self.initial_mem_rss) / 1024,
73+
"mem.vms_diff_kb": (mem_info.vms- self.initial_mem_vms) / 1024,
6974
}
7075

7176
self._stats.append(datapoint)

0 commit comments

Comments
 (0)