// qps is a function used by tests to run a zkocc load check. // It will get zk paths as fast as possible and display the QPS. func qps(paths []string) { var count sync2.AtomicInt32 for _, path := range paths { for i := 0; i < 10; i++ { go func() { rpcClient := connect() for true { get(rpcClient, path, false) count.Add(1) } }() } } ticker := time.NewTicker(time.Second) i := 0 for _ = range ticker.C { c := count.Get() count.Set(0) println(fmt.Sprintf("QPS = %v", c)) i++ if i == 10 { break } } }
// qps2 is a function used by tests to run a vtgate load check. // It will get the same srvKeyspaces as fast as possible and display the QPS. func qps2(cell string, keyspaces []string) { var count sync2.AtomicInt32 for _, keyspace := range keyspaces { for i := 0; i < 10; i++ { go func() { rpcClient := connect() for true { getSrvKeyspace(rpcClient, cell, keyspace, false) count.Add(1) } }() } } ticker := time.NewTicker(time.Second) i := 0 for _ = range ticker.C { c := count.Get() count.Set(0) println(fmt.Sprintf("QPS = %v", c)) i++ if i == 10 { break } } }
func commandPruneActionLogs(wr *wrangler.Wrangler, subFlags *flag.FlagSet, args []string) error { keepCount := subFlags.Int("keep-count", 10, "count to keep") if err := subFlags.Parse(args); err != nil { return err } if subFlags.NArg() == 0 { return fmt.Errorf("action PruneActionLogs requires <zk action log path> ...") } paths, err := zkResolveWildcards(wr, subFlags.Args()) if err != nil { return err } zkts, ok := wr.TopoServer().(*zktopo.Server) if !ok { return fmt.Errorf("PruneActionLogs requires a zktopo.Server") } var errCount sync2.AtomicInt32 wg := sync.WaitGroup{} for _, zkActionLogPath := range paths { wg.Add(1) go func(zkActionLogPath string) { defer wg.Done() purgedCount, err := zkts.PruneActionLogs(zkActionLogPath, *keepCount) if err == nil { wr.Logger().Infof("%v pruned %v", zkActionLogPath, purgedCount) } else { wr.Logger().Errorf("%v pruning failed: %v", zkActionLogPath, err) errCount.Add(1) } }(zkActionLogPath) } wg.Wait() if errCount.Get() > 0 { return fmt.Errorf("some errors occurred, check the log") } return nil }