mirror of
https://github.com/facebook/sapling.git
synced 2024-10-11 01:07:15 +03:00
19472ea493
Summary: Replace the methods to get CPU and memory usage statistics: - For the memory: use `VmRSS` of `/proc/[pid]/status`: http://man7.org/linux/man-pages/man5/proc.5.html - For the CPU%: calculate the process is occupied how much percentage of the CPU time, use `getrusage()`: http://man7.org/linux/man-pages/man2/getrusage.2.html - Implemented like the sigar: https://our.intern.facebook.com/intern/diffusion/FBS/browse/master/third-party/sigar/src/sigar.c?commit=4f945812675131ea64cb3d143350b1414f34a351&lines=111-169 - Formula: - CPU% = `process used time` during the period / `time period` * 100 - `time period` = current query timestamp - last query timestamp - `process used time` = current `process total time` - last query `process total time` - `process total time` = CPU time used in user mode + CPU time used in system mode // get from the API `ru_utime` and `ru_stime` Remove the `fbzmq::ResourceMonitor` and `sigar`: - Change and rename the UT - `ResourceMonitorTest.cpp` -> `SystemMetricsTest.cpp` - `ResourceMonitor` -> `SystemMetricsTest` in `openr/tests/OpenrSystemTest.cpp` - Remove `ResourceMonitor` code and dependency for `Watchdog` and `ZmqMonitor` - Remove `sigar` dependency used in building Reviewed By: saifhhasan Differential Revision: D20049944 fbshipit-source-id: 00b90c8558dc5f0fb18cc31a09b9666a47b096fe
41 lines
1.4 KiB
Python
41 lines
1.4 KiB
Python
#!/usr/bin/env python
|
|
# Copyright (c) Facebook, Inc. and its affiliates.
|
|
from __future__ import absolute_import
|
|
from __future__ import division
|
|
from __future__ import print_function
|
|
from __future__ import unicode_literals
|
|
|
|
import specs.fbthrift as fbthrift
|
|
import specs.fmt as fmt
|
|
import specs.folly as folly
|
|
import specs.gmock as gmock
|
|
import specs.sodium as sodium
|
|
|
|
from shell_quoting import ShellQuoted
|
|
|
|
|
|
def fbcode_builder_spec(builder):
|
|
builder.add_option('zeromq/libzmq:git_hash', 'v4.2.2')
|
|
return {
|
|
'depends_on': [fmt, folly, fbthrift, gmock, sodium],
|
|
'steps': [
|
|
builder.github_project_workdir('zeromq/libzmq', '.'),
|
|
builder.step('Build and install zeromq/libzmq', [
|
|
builder.run(ShellQuoted('./autogen.sh')),
|
|
builder.configure(),
|
|
builder.make_and_install(),
|
|
]),
|
|
|
|
builder.fb_github_project_workdir('fbzmq/_build', 'facebook'),
|
|
builder.step('Build and install fbzmq/', [
|
|
builder.cmake_configure('fbzmq/_build'),
|
|
# we need the pythonpath to find the thrift compiler
|
|
builder.run(ShellQuoted(
|
|
'PYTHONPATH="$PYTHONPATH:"{p}/lib/python2.7/site-packages '
|
|
'make -j {n}'
|
|
).format(p=builder.option('prefix'), n=builder.option('make_parallelism'))),
|
|
builder.run(ShellQuoted('make install')),
|
|
]),
|
|
],
|
|
}
|