Skip to content

Commit ec4c3b1

Browse files
committed
debug stats logging
1 parent 47f362a commit ec4c3b1

2 files changed

Lines changed: 25 additions & 3 deletions

File tree

synapse/app/phone_stats_home.py

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,13 +118,34 @@ async def _phone_stats_home(
118118
stats["memory_rss"] = new[1].ru_maxrss
119119

120120
# Get CPU time in % of a single core, not % of all cores
121+
logger.info("Calculating used_cpu_time")
122+
logger.info(
123+
"new_cpu_time: %r + %r = %r",
124+
new[1].ru_utime,
125+
new[1].ru_stime,
126+
new[1].ru_utime + new[1].ru_stime,
127+
)
128+
logger.info(
129+
"old_cpu_time: %r + %r = %r",
130+
old[1].ru_utime,
131+
old[1].ru_stime,
132+
old[1].ru_utime + old[1].ru_stime,
133+
)
134+
logger.info(
135+
"difference: %r",
136+
(new[1].ru_utime + new[1].ru_stime) - (old[1].ru_utime + old[1].ru_stime),
137+
)
121138
used_cpu_time = (new[1].ru_utime + new[1].ru_stime) - (
122139
old[1].ru_utime + old[1].ru_stime
123140
)
124141
if used_cpu_time == 0 or new[0] == old[0]:
125142
stats["cpu_average"] = 0
126143
else:
127-
stats["cpu_average"] = math.floor(used_cpu_time / (new[0] - old[0]) * 100)
144+
time_diff = new[0] - old[0]
145+
logger.info("time_diff: %r ", time_diff)
146+
the_number = math.floor(used_cpu_time / time_diff) * 100
147+
logger.info("calculated cpu time: %r", the_number)
148+
stats["cpu_average"] = the_number
128149

129150
#
130151
# General statistics

tests/test_phone_home.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
from synapse.types import JsonDict
3232
from synapse.util.clock import Clock
3333

34-
from tests.unittest import HomeserverTestCase
34+
from tests.unittest import DEBUG, HomeserverTestCase
3535

3636

3737
class PhoneHomeStatsTestCase(HomeserverTestCase):
@@ -46,13 +46,14 @@ def test_performance_frozen_clock(self) -> None:
4646
self.get_success(phone_stats_home(self.hs, stats, past_stats))
4747
self.assertEqual(stats["cpu_average"], 0)
4848

49+
@DEBUG
4950
def test_performance_100(self) -> None:
5051
"""
5152
1 second of usage over 1 second is 100% CPU usage.
5253
"""
5354
real_res = resource.getrusage(resource.RUSAGE_SELF)
5455
old_resource = mock.Mock(spec=real_res)
55-
old_resource.ru_utime = real_res.ru_utime - 1
56+
old_resource.ru_utime = real_res.ru_utime
5657
old_resource.ru_stime = real_res.ru_stime
5758
old_resource.ru_maxrss = real_res.ru_maxrss
5859

0 commit comments

Comments
 (0)