From 41a1ba52e6fc193308f49e88b6fc0ac2afb83eca Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Tue, 14 Jul 2020 13:40:13 -0700 Subject: [PATCH] add cached kic system info --- cmd/minikube/cmd/start.go | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/cmd/minikube/cmd/start.go b/cmd/minikube/cmd/start.go index 03566d0683..b4c2d8fe01 100644 --- a/cmd/minikube/cmd/start.go +++ b/cmd/minikube/cmd/start.go @@ -70,6 +70,7 @@ var ( insecureRegistry []string apiServerNames []string apiServerIPs []net.IP + kicSysInfo *oci.SysInfo ) func init() { @@ -752,12 +753,11 @@ func memoryLimits(drvName string) (int, int, error) { containerLimit := 0 if driver.IsKIC(drvName) { - s, err := oci.DaemonInfo(drvName) + s, err := cachedKicSystemInfo(drvName) if err != nil { return -1, -1, err } containerLimit = int(s.TotalMemory / 1024 / 1024) - myabeAdviceDockerResources(containerLimit, sysLimit, s.CPUs, drvName) } return sysLimit, containerLimit, nil @@ -885,8 +885,8 @@ func validateFlags(cmd *cobra.Command, drvName string) { } } + validateMemorySize() if cmd.Flags().Changed(memory) { - validateMemorySize() if !driver.HasResourceLimits(drvName) { out.WarningT("The '{{.name}}' driver does not respect the --memory flag", out.V{"name": drvName}) } @@ -1132,3 +1132,14 @@ func getKubernetesVersion(old *config.ClusterConfig) string { return version.VersionPrefix + nvs.String() } + +// cachedKicSystemInfo will return docker/podman info. it will call docker/podam info only once per minikube start to avoid perforamce side effects +func cachedKicSystemInfo(ociBin string) (oci.SysInfo, error) { + var err error + if kicSysInfo == nil { + si, err := oci.DaemonInfo(ociBin) + kicSysInfo = &si + return *kicSysInfo, err + } + return *kicSysInfo, err +}