From 3cffc910de5da3d8b9ced73add479ea32e782250 Mon Sep 17 00:00:00 2001 From: Yicheng Qin Date: Thu, 5 Mar 2015 12:46:31 -0800 Subject: [PATCH] tools/etcd-tester: use stresser --- tools/functional-tester/etcd-tester/main.go | 14 +++++++++++++ .../functional-tester/etcd-tester/stresser.go | 21 +++++++++++++++---- 2 files changed, 31 insertions(+), 4 deletions(-) diff --git a/tools/functional-tester/etcd-tester/main.go b/tools/functional-tester/etcd-tester/main.go index 708b221d5..f0854de46 100644 --- a/tools/functional-tester/etcd-tester/main.go +++ b/tools/functional-tester/etcd-tester/main.go @@ -33,10 +33,24 @@ func main() { } defer c.Terminate() + stressers := make([]Stresser, len(c.ClientURLs)) + for i, u := range c.ClientURLs { + s := &stresser{ + Endpoint: u, + N: 200, + } + go s.Stress() + stressers[i] = s + } + t := &tester{ failures: []failure{newFailureBase(), newFailureKillAll()}, cluster: c, limit: *limit, } t.runLoop() + + for _, s := range stressers { + s.Cancel() + } } diff --git a/tools/functional-tester/etcd-tester/stresser.go b/tools/functional-tester/etcd-tester/stresser.go index 2aef38961..680d47337 100644 --- a/tools/functional-tester/etcd-tester/stresser.go +++ b/tools/functional-tester/etcd-tester/stresser.go @@ -1,6 +1,8 @@ package main import ( + "net" + "net/http" "sync" "time" @@ -18,10 +20,12 @@ type Stresser interface { } type stresser struct { - Endpoint string - SuffexRange int + Endpoint string + // TODO: not implemented + SuffixRange int - N int + N int + // TODO: not implemented Interval time.Duration mu sync.Mutex @@ -32,7 +36,16 @@ type stresser struct { } func (s *stresser) Stress() error { - cfg := client.Config{Endpoints: []string{s.Endpoint}} + cfg := client.Config{ + Endpoints: []string{s.Endpoint}, + Transport: &http.Transport{ + Dial: (&net.Dialer{ + Timeout: time.Second, + KeepAlive: 30 * time.Second, + }).Dial, + MaxIdleConnsPerHost: s.N, + }, + } c, err := client.New(cfg) if err != nil { return err