func benchmarkVariesInterval(d *helpers.DockerHelper) { alive := d.GetContainerNum(false) dead := d.GetContainerNum(true) - alive containerIDs := d.GetContainerIDs() cfg := variesIntervalConfig listIntervals := cfg["list interval"].([]time.Duration) listPeriod := cfg["list period"].(time.Duration) func() { defer d.LogError() helpers.LogTitle("list_all") helpers.LogEVar(map[string]interface{}{ "#alive": alive, "#dead": dead, "all": true, "period": listPeriod, }) helpers.LogLabels("interval") for _, curInterval := range listIntervals { latencies := d.DoListContainerBenchmark(curInterval, listPeriod, true) helpers.LogResult(latencies, helpers.Itoas(int(curInterval/time.Millisecond))...) } }() func() { defer d.LogError() helpers.LogTitle("list_alive") helpers.LogEVar(map[string]interface{}{ "#alive": alive, "#dead": dead, "all": false, "period": listPeriod, }) helpers.LogLabels("interval") for _, curInterval := range listIntervals { latencies := d.DoListContainerBenchmark(curInterval, listPeriod, false) helpers.LogResult(latencies, helpers.Itoas(int(curInterval/time.Millisecond))...) } }() func() { defer d.LogError() inspectIntervals := cfg["inspect interval"].([]time.Duration) inspectPeriod := cfg["inspect period"].(time.Duration) helpers.LogTitle("inspect") helpers.LogEVar(map[string]interface{}{ "#alive": alive, "#dead": dead, "period": inspectPeriod, }) helpers.LogLabels("interval") for _, curInterval := range inspectIntervals { latencies := d.DoInspectContainerBenchmark(curInterval, inspectPeriod, containerIDs) helpers.LogResult(latencies, helpers.Itoas(int(curInterval/time.Millisecond))...) } }() }
func benchmarkVariesContainerNumber(d *helpers.DockerHelper) { cfg := variesContainerNumConfig deadContainers := cfg["dead"].([]int) aliveContainers := cfg["alive"].([]int) period := cfg["period"].(time.Duration) interval := cfg["interval"].(time.Duration) dead := deadContainers[0] alive := aliveContainers[0] ids := append(d.CreateDeadContainers(dead), d.CreateAliveContainers(alive)...) func() { defer d.LogError() helpers.LogTitle("varies_container") helpers.LogEVar(map[string]interface{}{ "period": period, "interval": interval, }) helpers.LogLabels("#dead", "#alive", "#total") for i, num := range append(deadContainers, aliveContainers...) { if i < len(deadContainers) { // Create more dead containers ids = append(ids, d.CreateDeadContainers(num-dead)...) dead = num } else { // Create more alive containers ids = append(ids, d.CreateAliveContainers(num-alive)...) alive = num } total := dead + alive latencies := d.DoListContainerBenchmark(interval, period, true) helpers.LogResult(latencies, helpers.Itoas(dead, alive, total)...) latencies = d.DoListContainerBenchmark(interval, period, false) helpers.LogResult(latencies, helpers.Itoas(dead, alive, total)...) latencies = d.DoInspectContainerBenchmark(interval, period, ids) helpers.LogResult(latencies, helpers.Itoas(dead, alive, total)...) } }() }