mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
tools/etcd-tester: stress cluster using 50MB snapshot
This commit is contained in:
parent
7e7bc76038
commit
d920c5b801
@ -108,6 +108,9 @@ func (c *cluster) Bootstrap() error {
|
|||||||
for i, u := range clientURLs {
|
for i, u := range clientURLs {
|
||||||
s := &stresser{
|
s := &stresser{
|
||||||
Endpoint: u,
|
Endpoint: u,
|
||||||
|
// 500000 100B key (50MB)
|
||||||
|
KeySize: 100,
|
||||||
|
KeySuffixRange: 500000,
|
||||||
N: 200,
|
N: 200,
|
||||||
}
|
}
|
||||||
go s.Stress()
|
go s.Stress()
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
|
"math/rand"
|
||||||
"net"
|
"net"
|
||||||
"net/http"
|
"net/http"
|
||||||
"sync"
|
"sync"
|
||||||
@ -21,8 +23,9 @@ type Stresser interface {
|
|||||||
|
|
||||||
type stresser struct {
|
type stresser struct {
|
||||||
Endpoint string
|
Endpoint string
|
||||||
// TODO: not implemented
|
|
||||||
SuffixRange int
|
KeySize int
|
||||||
|
KeySuffixRange int
|
||||||
|
|
||||||
N int
|
N int
|
||||||
// TODO: not implemented
|
// TODO: not implemented
|
||||||
@ -58,7 +61,8 @@ func (s *stresser) Stress() error {
|
|||||||
for i := 0; i < s.N; i++ {
|
for i := 0; i < s.N; i++ {
|
||||||
go func() {
|
go func() {
|
||||||
for {
|
for {
|
||||||
_, err := kv.Set(ctx, "foo", "bar", nil)
|
key := fmt.Sprintf("foo%d", rand.Intn(s.KeySuffixRange))
|
||||||
|
_, err := kv.Set(ctx, key, randStr(s.KeySize), nil)
|
||||||
if err == context.Canceled {
|
if err == context.Canceled {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -86,3 +90,11 @@ func (s *stresser) Report() (success int, failure int) {
|
|||||||
defer s.mu.Unlock()
|
defer s.mu.Unlock()
|
||||||
return s.success, s.failure
|
return s.success, s.failure
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func randStr(size int) string {
|
||||||
|
data := make([]byte, size)
|
||||||
|
for i := 0; i < size; i++ {
|
||||||
|
data[i] = byte(int('a') + rand.Intn(26))
|
||||||
|
}
|
||||||
|
return string(data)
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user