File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff 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
Original file line number Diff line number Diff line change 3131from synapse .types import JsonDict
3232from synapse .util .clock import Clock
3333
34- from tests .unittest import HomeserverTestCase
34+ from tests .unittest import DEBUG , HomeserverTestCase
3535
3636
3737class PhoneHomeStatsTestCase (HomeserverTestCase ):
@@ -46,6 +46,7 @@ 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.
You can’t perform that action at this time.
0 commit comments