spiegel_podman/libpod
Paul Holzinger 0edb3ddd39
podman stats: calc CPU percentage correctly
When you run podman stats, the first interval always shows the wrong cpu
usage. To calculate cpu percentage we get the cpu time from the cgroup
and compare this against the system time between two stats. Since the
first time we do not have a previous stats an empty struct is used
instead. Thus we do not use the actual running time of the container but
the current unix timestamp (time since Jan 1 1970).

To fix this we make sure that the previous stats time is set to the
container start time, when it is empty.

[NO NEW TESTS NEEDED] No idea how I could create a test which would have
a predictable cpu usage.

See the linked bugzilla for a reproducer.

Fixes https://bugzilla.redhat.com/show_bug.cgi?id=2066145

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
2022-03-22 17:43:49 +01:00
..
common Set blob cache directory based on GraphDriver 2019-03-29 08:27:33 -04:00
define Add support for --chrootdirs 2022-03-14 10:31:58 +02:00
driver bump go module to version 4 2022-01-18 12:47:07 +01:00
events go fmt: use go 1.18 conditional-build syntax 2022-03-18 09:11:53 +01:00
layers Initial checkin from CRI-O repo 2017-11-01 11:24:59 -04:00
linkmode go fmt: use go 1.18 conditional-build syntax 2022-03-18 09:11:53 +01:00
lock go fmt: use go 1.18 conditional-build syntax 2022-03-18 09:11:53 +01:00
logs bump go module to version 4 2022-01-18 12:47:07 +01:00
plugin bump go module to version 4 2022-01-18 12:47:07 +01:00
shutdown Fix CI flake on time of shutdown for API service 2021-10-12 09:53:19 -07:00
boltdb_state.go bump go module to version 4 2022-01-18 12:47:07 +01:00
boltdb_state_internal.go bump go module to version 4 2022-01-18 12:47:07 +01:00
boltdb_state_linux.go go fmt: use go 1.18 conditional-build syntax 2022-03-18 09:11:53 +01:00
common_test.go bump go module to version 4 2022-01-18 12:47:07 +01:00
container.go Implement Podman Container Clone 2022-02-20 21:11:14 -05:00
container_api.go bump go module to version 4 2022-01-18 12:47:07 +01:00
container_commit.go container-commit: support --squash to squash layers into one 2022-02-23 17:38:28 +05:30
container_config.go Add support for --chrootdirs 2022-03-14 10:31:58 +02:00
container_copy_linux.go go fmt: use go 1.18 conditional-build syntax 2022-03-18 09:11:53 +01:00
container_exec.go exec: retry rm -rf on ENOTEMPTY and EBUSY 2022-01-24 16:58:05 +01:00
container_graph.go bump go module to version 4 2022-01-18 12:47:07 +01:00
container_graph_test.go bump go module to version 4 2022-01-18 12:47:07 +01:00
container_inspect.go Add support for --chrootdirs 2022-03-14 10:31:58 +02:00
container_internal.go Merge pull request #13585 from flouthoc/fix-no-healthcheck 2022-03-22 14:44:26 +01:00
container_internal_linux.go Add support for --chrootdirs 2022-03-14 10:31:58 +02:00
container_internal_linux_test.go bump go module to version 4 2022-01-18 12:47:07 +01:00
container_internal_test.go Refactor container config 2020-07-23 10:18:14 -04:00
container_linux.go go fmt: use go 1.18 conditional-build syntax 2022-03-18 09:11:53 +01:00
container_log.go bump go module to version 4 2022-01-18 12:47:07 +01:00
container_log_linux.go Add the names flag for pod logs 2022-03-01 00:18:39 +01:00
container_log_unsupported.go go fmt: use go 1.18 conditional-build syntax 2022-03-18 09:11:53 +01:00
container_path_resolution.go volumes: be more tolerant and fix infinite loop 2021-10-28 16:37:33 +02:00
container_stat_linux.go go fmt: use go 1.18 conditional-build syntax 2022-03-18 09:11:53 +01:00
container_top_linux.go go fmt: use go 1.18 conditional-build syntax 2022-03-18 09:11:53 +01:00
container_validate.go bump go module to version 4 2022-01-18 12:47:07 +01:00
diff.go bump go module to version 4 2022-01-18 12:47:07 +01:00
events.go bump go module to version 4 2022-01-18 12:47:07 +01:00
healthcheck.go healthcheck, libpod: Read healthcheck event output from os pipe 2022-02-04 21:15:03 +05:30
healthcheck_linux.go bump go module to version 4 2022-01-18 12:47:07 +01:00
info.go bump go module to version 4 2022-01-18 12:47:07 +01:00
kube.go move k8s deps into podman 2022-03-15 14:46:29 +01:00
mounts_linux.go go fmt: use go 1.18 conditional-build syntax 2022-03-18 09:11:53 +01:00
networking_linux.go go fmt: use go 1.18 conditional-build syntax 2022-03-18 09:11:53 +01:00
networking_linux_test.go bump go module to version 4 2022-01-18 12:47:07 +01:00
networking_machine.go use libnetwork from c/common 2022-01-12 17:07:30 +01:00
networking_slirp4netns.go go fmt: use go 1.18 conditional-build syntax 2022-03-18 09:11:53 +01:00
oci.go bump go module to version 4 2022-01-18 12:47:07 +01:00
oci_attach_linux.go go fmt: use go 1.18 conditional-build syntax 2022-03-18 09:11:53 +01:00
oci_conmon.go podman: add new cgroup mode split 2020-06-25 17:16:12 +02:00
oci_conmon_exec_linux.go fix: Multiplication of durations 2022-02-08 09:15:45 +08:00
oci_conmon_linux.go bump golangci-lint to v1.45.0 2022-03-21 10:42:53 +01:00
oci_missing.go bump go module to version 4 2022-01-18 12:47:07 +01:00
oci_util.go bump go module to version 4 2022-01-18 12:47:07 +01:00
options.go Add support for --chrootdirs 2022-03-14 10:31:58 +02:00
pod.go podman stats: calc CPU percentage correctly 2022-03-22 17:43:49 +01:00
pod_api.go bump go module to version 4 2022-01-18 12:47:07 +01:00
pod_internal.go bump go module to version 4 2022-01-18 12:47:07 +01:00
pod_status.go bump go module to version 4 2022-01-18 12:47:07 +01:00
pod_top_linux.go go fmt: use go 1.18 conditional-build syntax 2022-03-18 09:11:53 +01:00
reset.go system prune: remove all networks 2022-02-03 13:14:07 +01:00
runtime.go Exit with 0 when receiving SIGTERM 2022-03-15 14:45:11 -07:00
runtime_cstorage.go Remove the runtime lock 2022-02-22 11:05:26 -05:00
runtime_ctr.go Merge pull request #13232 from rhatdan/volumes 2022-02-23 03:26:59 -05:00
runtime_img.go Remove the runtime lock 2022-02-22 11:05:26 -05:00
runtime_migrate.go go fmt: use go 1.18 conditional-build syntax 2022-03-18 09:11:53 +01:00
runtime_pod.go Remove the runtime lock 2022-02-22 11:05:26 -05:00
runtime_pod_linux.go libpod: pods do not use cgroups if --cgroups=disabled 2022-03-03 13:23:07 +01:00
runtime_renumber.go bump go module to version 4 2022-01-18 12:47:07 +01:00
runtime_volume.go Remove the runtime lock 2022-02-22 11:05:26 -05:00
runtime_volume_linux.go go fmt: use go 1.18 conditional-build syntax 2022-03-18 09:11:53 +01:00
state.go use libnetwork from c/common 2022-01-12 17:07:30 +01:00
state_test.go bump go module to version 4 2022-01-18 12:47:07 +01:00
stats.go podman stats: calc CPU percentage correctly 2022-03-22 17:43:49 +01:00
storage.go bump go module to version 4 2022-01-18 12:47:07 +01:00
util.go Show version of the deb package in info output 2022-02-24 20:24:31 +01:00
util_linux.go go fmt: use go 1.18 conditional-build syntax 2022-03-18 09:11:53 +01:00
util_linux_test.go Fix mismatch between log messages and behavior of libpod.LabelVolumePath. 2020-09-13 23:24:15 -04:00
util_test.go bump go module to version 4 2022-01-18 12:47:07 +01:00
volume.go Add podman volume mount support 2022-02-28 14:26:22 -05:00
volume_inspect.go bump go module to version 4 2022-01-18 12:47:07 +01:00
volume_internal.go bump go module to version 4 2022-01-18 12:47:07 +01:00
volume_internal_linux.go Add podman volume mount support 2022-02-28 14:26:22 -05:00