Docker 容器 CPU 用法
Docker Container CPU Usage
我正在使用 docker 远程 API 检索我的 运行 容器的统计信息。对于 CPU 用法,我得到例如:
"cpu_stats": {
"cpu_usage": {
"total_usage": 13039191340,
"percpu_usage": [
13039191340
],
"usage_in_kernelmode": 420000000,
"usage_in_usermode": 10480000000
},
"system_cpu_usage": 8.8930204e+14,
"throttling_data": {
"periods": 0,
"throttled_periods": 0,
"throttled_time": 0
}
}
如何计算 CPU 使用百分比?当我将 "usage_in_kernelmode" 除以 "total_usage" 时,我得到与 docker stats
命令类似的结果,但这是正确的方法吗?
谢谢:)
最终,它归结为您要衡量的 CPU 使用情况。
使用状态是循环的。用户周期是那些花在执行应用程序上的周期,包括在用户 space 中执行的系统应用程序(如守护进程)。内核周期是那些用于执行 基础 OS 或驱动程序功能的周期。非基本 OS 功能在用户 space 中执行。下落不明的周期可能是空闲周期,那些没有做任何有用的事情。
所以总 CPU 使用百分比是 (kernel+user)/(idle+kernel+user)*100。用户CPU使用量为(user))/(idle+kernel+user)*100。您可以猜出系统使用百分比的等式。
system_cpu_usage 让我很困惑。如果它不是 total_usage,而是指总周期数,则用它替换 (idle+kernel+user)。令我困惑的是,如果 system_cpu_usage 是总使用量,那么 total_usage 到底是什么?
我正在使用 docker 远程 API 检索我的 运行 容器的统计信息。对于 CPU 用法,我得到例如:
"cpu_stats": {
"cpu_usage": {
"total_usage": 13039191340,
"percpu_usage": [
13039191340
],
"usage_in_kernelmode": 420000000,
"usage_in_usermode": 10480000000
},
"system_cpu_usage": 8.8930204e+14,
"throttling_data": {
"periods": 0,
"throttled_periods": 0,
"throttled_time": 0
}
}
如何计算 CPU 使用百分比?当我将 "usage_in_kernelmode" 除以 "total_usage" 时,我得到与 docker stats
命令类似的结果,但这是正确的方法吗?
谢谢:)
最终,它归结为您要衡量的 CPU 使用情况。
使用状态是循环的。用户周期是那些花在执行应用程序上的周期,包括在用户 space 中执行的系统应用程序(如守护进程)。内核周期是那些用于执行 基础 OS 或驱动程序功能的周期。非基本 OS 功能在用户 space 中执行。下落不明的周期可能是空闲周期,那些没有做任何有用的事情。
所以总 CPU 使用百分比是 (kernel+user)/(idle+kernel+user)*100。用户CPU使用量为(user))/(idle+kernel+user)*100。您可以猜出系统使用百分比的等式。
system_cpu_usage 让我很困惑。如果它不是 total_usage,而是指总周期数,则用它替换 (idle+kernel+user)。令我困惑的是,如果 system_cpu_usage 是总使用量,那么 total_usage 到底是什么?