diff options
author | Daniel Moody <daniel.moody@mongodb.com> | 2022-09-22 14:45:49 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2022-09-22 16:09:39 +0000 |
commit | 0e1fc9235a8aea220f10bacb76ef44fecd98bdfd (patch) | |
tree | c922fa9b27e1bd7e62e2d7ae6e98dc5b02b6a7ba /site_scons/site_tools | |
parent | 03714079f41a7d41a466316fd8486ee0215d2bc9 (diff) | |
download | mongo-0e1fc9235a8aea220f10bacb76ef44fecd98bdfd.tar.gz |
SERVER-69811 don't use pythons mac_ver
Diffstat (limited to 'site_scons/site_tools')
-rw-r--r-- | site_scons/site_tools/build_metrics/per_action_metrics.py | 14 | ||||
-rw-r--r-- | site_scons/site_tools/build_metrics/util.py | 19 |
2 files changed, 23 insertions, 10 deletions
diff --git a/site_scons/site_tools/build_metrics/per_action_metrics.py b/site_scons/site_tools/build_metrics/per_action_metrics.py index 95028a661bf..18a93345b8d 100644 --- a/site_scons/site_tools/build_metrics/per_action_metrics.py +++ b/site_scons/site_tools/build_metrics/per_action_metrics.py @@ -1,13 +1,13 @@ import functools import time import psutil -import platform +import subprocess import memory_profiler import SCons import sys -from .util import fullname +from .util import fullname, mem_adjustment from .protocol import BuildMetricsCollector @@ -180,14 +180,8 @@ class PerActionMetrics(BuildMetricsCollector): task_metrics['end_time'] = time.time_ns() task_metrics['cpu_time'] = int(cpu_usage * (10.0**9.0)) - # apparently macos big sur (11) changed some of the api for getting memory, - # so the memory comes up a bit larger than expected: - # https://github.com/giampaolo/psutil/issues/1908 - if sys.platform == "darwin" and platform.mac_ver()[0] and int( - platform.mac_ver()[0].split('.')[0]) > 10: - task_metrics['mem_usage'] = int(mem_usage / 1024.0) - else: - task_metrics['mem_usage'] = int(mem_usage) + task_metrics['mem_usage'] = mem_adjustment(int(mem_usage)) + self.build_tasks_metrics.append(task_metrics) task_metrics['array_index'] = self.build_tasks_metrics.index(task_metrics) diff --git a/site_scons/site_tools/build_metrics/util.py b/site_scons/site_tools/build_metrics/util.py index 5762033f007..db61782a963 100644 --- a/site_scons/site_tools/build_metrics/util.py +++ b/site_scons/site_tools/build_metrics/util.py @@ -1,4 +1,6 @@ import time +import sys +import subprocess _BUILD_METRIC_DATA = {} @@ -35,6 +37,23 @@ class CaptureAtexits: return False +def mem_adjustment(mem_usage): + # apparently macos big sur (11) changed some of the api for getting memory, + # so the memory comes up a bit larger than expected. Testing shows it about + # 10 times large then what native macos tools report, so we will do some + # adjustment in the mean time until its fixed: + # https://github.com/giampaolo/psutil/issues/1908 + try: + if sys.platform == "darwin": + mem_adjust_version = subprocess.run(['sw_vers', '-productVersion'], capture_output=True, + text=True, check=False).stdout.split('.')[0] + if int(mem_adjust_version) > 10: + return int(mem_usage / 10) + except (IndexError, ValueError): + pass + return mem_usage + + def get_build_metric_dict(): global _BUILD_METRIC_DATA return _BUILD_METRIC_DATA |