main: parameterize stress key size and key suffix range

It faciliates tester to adjust the size of each request, the number of
keys in the store and the size of snapshot.
This commit is contained in:
Yicheng Qin 2015-04-21 18:12:14 -07:00
parent b99c80874f
commit 057d21cf79
2 changed files with 15 additions and 10 deletions

View File

@ -30,8 +30,10 @@ import (
const peerURLPort = 2380
type cluster struct {
agentEndpoints []string
datadir string
agentEndpoints []string
datadir string
stressKeySize int
stressKeySuffixRange int
Size int
Agents []client.Agent
@ -45,10 +47,12 @@ type ClusterStatus struct {
}
// newCluster starts and returns a new cluster. The caller should call Terminate when finished, to shut it down.
func newCluster(agentEndpoints []string, datadir string) (*cluster, error) {
func newCluster(agentEndpoints []string, datadir string, stressKeySize, stressKeySuffixRange int) (*cluster, error) {
c := &cluster{
agentEndpoints: agentEndpoints,
datadir: datadir,
agentEndpoints: agentEndpoints,
datadir: datadir,
stressKeySize: stressKeySize,
stressKeySuffixRange: stressKeySuffixRange,
}
if err := c.Bootstrap(); err != nil {
return nil, err
@ -109,10 +113,9 @@ func (c *cluster) Bootstrap() error {
stressers := make([]Stresser, len(clientURLs))
for i, u := range clientURLs {
s := &stresser{
Endpoint: u,
// 500000 100B key (50MB)
KeySize: 100,
KeySuffixRange: 500000,
Endpoint: u,
KeySize: c.stressKeySize,
KeySuffixRange: c.stressKeySuffixRange,
N: 200,
}
go s.Stress()

View File

@ -24,11 +24,13 @@ import (
func main() {
endpointStr := flag.String("agent-endpoints", ":9027", "")
datadir := flag.String("data-dir", "agent.etcd", "")
stressKeySize := flag.Int("stress-key-size", 100, "stress-key-size is the size of each key written into etcd")
stressKeySuffixRange := flag.Int("stress-key-count", 250000, "stress-key-count is the count of key range written into etcd")
limit := flag.Int("limit", 3, "")
flag.Parse()
endpoints := strings.Split(*endpointStr, ",")
c, err := newCluster(endpoints, *datadir)
c, err := newCluster(endpoints, *datadir, *stressKeySize, *stressKeySuffixRange)
if err != nil {
log.Fatal(err)
}