mirror of
https://mau.dev/maunium/synapse.git
synced 2024-12-15 05:33:53 +01:00
Merge pull request #270 from matrix-org/markjh/fix_metrics
Fix the size reported by maxrss.
This commit is contained in:
commit
4ae73d16a9
1 changed files with 7 additions and 4 deletions
|
@ -17,7 +17,7 @@
|
||||||
from __future__ import absolute_import
|
from __future__ import absolute_import
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
from resource import getrusage, getpagesize, RUSAGE_SELF
|
from resource import getrusage, RUSAGE_SELF
|
||||||
import functools
|
import functools
|
||||||
import os
|
import os
|
||||||
import stat
|
import stat
|
||||||
|
@ -100,7 +100,6 @@ def render_all():
|
||||||
# process resource usage
|
# process resource usage
|
||||||
|
|
||||||
rusage = None
|
rusage = None
|
||||||
PAGE_SIZE = getpagesize()
|
|
||||||
|
|
||||||
|
|
||||||
def update_resource_metrics():
|
def update_resource_metrics():
|
||||||
|
@ -113,8 +112,8 @@ resource_metrics = get_metrics_for("process.resource")
|
||||||
resource_metrics.register_callback("utime", lambda: rusage.ru_utime * 1000)
|
resource_metrics.register_callback("utime", lambda: rusage.ru_utime * 1000)
|
||||||
resource_metrics.register_callback("stime", lambda: rusage.ru_stime * 1000)
|
resource_metrics.register_callback("stime", lambda: rusage.ru_stime * 1000)
|
||||||
|
|
||||||
# pages
|
# kilobytes
|
||||||
resource_metrics.register_callback("maxrss", lambda: rusage.ru_maxrss * PAGE_SIZE)
|
resource_metrics.register_callback("maxrss", lambda: rusage.ru_maxrss * 1024)
|
||||||
|
|
||||||
TYPES = {
|
TYPES = {
|
||||||
stat.S_IFSOCK: "SOCK",
|
stat.S_IFSOCK: "SOCK",
|
||||||
|
@ -131,6 +130,10 @@ def _process_fds():
|
||||||
counts = {(k,): 0 for k in TYPES.values()}
|
counts = {(k,): 0 for k in TYPES.values()}
|
||||||
counts[("other",)] = 0
|
counts[("other",)] = 0
|
||||||
|
|
||||||
|
# Not every OS will have a /proc/self/fd directory
|
||||||
|
if not os.path.exists("/proc/self/fd"):
|
||||||
|
return counts
|
||||||
|
|
||||||
for fd in os.listdir("/proc/self/fd"):
|
for fd in os.listdir("/proc/self/fd"):
|
||||||
try:
|
try:
|
||||||
s = os.stat("/proc/self/fd/%s" % (fd))
|
s = os.stat("/proc/self/fd/%s" % (fd))
|
||||||
|
|
Loading…
Reference in a new issue