userver
C++ Async Framework
Loading...
Searching...
No Matches
cpu_limit.hpp
Go to the documentation of this file.
1
#
pragma
once
2
3
/// @file userver/hostinfo/cpu_limit.hpp
4
/// @brief Information about CPU limits in container.
5
/// @ingroup userver_universal
6
7
#
include
<
optional
>
8
9
USERVER_NAMESPACE_BEGIN
10
11
/// @brief Information about current host.
12
namespace
hostinfo {
13
14
/// @brief Returns the CPU limit.
15
///
16
/// Unlike `nproc` and
17
/// `std::thread::hardware_concurrency` this method considers container limits
18
/// and may return fractional values.
19
///
20
/// Uses:
21
/// * CPU_LIMIT environment variable (example: `CPU_LIMIT=1.95c`).
22
/// * DEPLOY_VCPU_LIMIT environment variable (example: `DEPLOY_VCPU_LIMIT=2000`).
23
/// * cpu limit from cgroup v2 (CFS scheduler)
24
std::optional<
double
>
CpuLimit
();
25
26
/// @brief Returns true if the current process is run in container (CPU_LIMIT
27
/// environment variable is set).
28
bool
IsInRtc
();
29
30
}
// namespace hostinfo
31
32
USERVER_NAMESPACE_END
userver
hostinfo
cpu_limit.hpp
Generated on Wed Apr 1 2026 10:52:49 for userver by
Doxygen
1.13.2