fanmin shi
60b9adc267
Merge pull request #7812 from fanminshi/refactor_runner
...
etcd-runner: fix runner and minor refactoring.
2017-04-25 15:21:57 -07:00
fanmin shi
a9e04061b1
etcd-runner: integrate etcd runner in to etcd tester
...
etcd tester runs etcd runner as a separate binary.
it signals sigstop to the runner when tester wants to stop stressing.
it signals sigcont to the runner when tester wants to start stressing.
when tester needs to clean up, it signals sigint to runner.
FIXES #7026
2017-04-25 14:53:23 -07:00
fanmin shi
77fbe10dfc
etcd-runner: add --prefix flag, allows inf round, and minor vars refactoring in watch runner.
2017-04-25 14:18:42 -07:00
fanmin shi
debc69e1f2
etcd-runner: pass in lock name as a command arg for lock_racer.
2017-04-25 14:18:42 -07:00
fanmin shi
72fb756af3
etcd-runner: add lease ttl as a flag and fatal when err in lease-runner.
2017-04-25 14:18:42 -07:00
fanmin shi
d57ad8ec8d
etcd-runner: add barrier, observe !ok handling, and election name arg to election-runner.
2017-04-25 14:17:59 -07:00
fanmin shi
fa85445ef8
etcd-runner: add rate limiting in doRounds()
2017-04-25 14:00:52 -07:00
fanmin shi
b94b8b5707
etcd-runner: move root cmd into command package
...
this allows easier sharing of global variable for sub commands.
2017-04-25 10:19:20 -07:00
Anthony Romano
cb8524fbec
benchmark: use new lease interface
2017-04-24 23:49:45 -07:00
Anthony Romano
78afc853f4
etcd-runner: update to use new lease interface
2017-04-24 23:49:45 -07:00
Hitoshi Mitake
6b030ed7db
benchmark: a new flag --target-leader for targetting a leader endpoint
...
Current benchmark picks destinations of RPCs in a random
manner. However, it will result divergent benchmarking result because
RPCs other than serializable range must be forwarded to a leader node
when a follower node receives it. This commit adds a new flag
--target-leader for avoid the problem. If the flag is passed,
benchmark always picks an endpoint of a leader node.
2017-04-17 14:24:35 +09:00
Gyu-Ho Lee
373a04a181
tools/benchmark: fix misc gofmt warnings
...
ref. https://golang.org/cmd/gofmt/#hdr-The_simplify_command
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-12 14:12:05 -07:00
Anthony Romano
95c6c4b713
Merge pull request #7712 from heyitsanthony/stm-sersnap
...
*: rename Snapshot STM isolation to SerializableSnapshot
2017-04-12 09:03:13 -07:00
Anthony Romano
4f9aa276bd
*: rename Snapshot STM isolation to SerializableSnapshot
...
Pure Snapshot isolation would permit read conflicts. Change the name
from Snapshot to SerializableSnapshot to reflect that it will also
reject read conflicts.
2017-04-11 17:17:50 -07:00
Anthony Romano
7684bfdf65
Merge pull request #7704 from heyitsanthony/txn-bench
...
benchmark: add txn-put benchmark
2017-04-11 12:44:20 -07:00
Gyu-Ho Lee
7fb1f68ff8
*: coreos/rkt -> rkt/rkt
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-11 08:48:48 -07:00
Anthony Romano
4d1b8b1e47
benchmark: add txn-put benchmark
...
Submits multiple put ops in a single txn.
2017-04-10 17:01:49 -07:00
Anthony Romano
5f366db7d1
etcd-runner: update election command to use new Leader() interface
2017-04-07 16:36:38 -07:00
Gyu-Ho Lee
8afc468b64
tools/etcd-tester: add timeout for 'defrag'
...
etcd panic-ed, so defrag response just blocked for "days"
when the actual 'v3rpc' path never returned.
We should catch this earlier.
ref. https://github.com/coreos/etcd/issues/7526
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-03-23 10:22:20 -07:00
Anthony Romano
5e4b008106
*: base initial mmap size on quota size
2017-03-17 15:38:49 -07:00
Anthony Romano
2f1542c06d
*: use filepath.Join for files
2017-03-16 07:46:06 -07:00
Anthony Romano
0ed3c83e49
benchmark: support mvcc txn
2017-03-08 20:54:15 -08:00
Anthony Romano
c8a2c7f64f
*: eschew you from documentation
...
Removed line wrapping in affected files as well.
2017-03-06 11:40:46 -08:00
Gyu-Ho Lee
fb81fb44fa
etcd-tester: check expired lease with -1 TTL
...
Following the change at 2ca1823a96
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-03-03 11:41:53 -08:00
Manjunath A Kumatagi
0914b8b707
test: Fix gosimple errors
...
Getting gosimple suggestion while running test script, so this PR is for fixing gosimple S1019 check.
raft/node_test.go:456:40: should use make([]raftpb.Entry, 1) instead (S1019)
raft/node_test.go:457:49: should use make([]raftpb.Entry, 1) instead (S1019)
raft/node_test.go:458:43: should use make([]raftpb.Message, 1) instead (S1019)
Refer https://github.com/dominikh/go-tools/blob/master/cmd/gosimple/README.md#checks for more information.
2017-02-09 08:01:28 -05:00
Anthony Romano
13420b33a0
benchmark: update for new stm interface
2017-01-20 16:22:43 -08:00
Gyu-Ho Lee
6f9a20803c
etcd-tester: use 10K for '--snapshot-count'
...
Since we want to send snapshot more often in failure injected cluster
2017-01-14 17:29:35 -08:00
Anthony Romano
6e730af65a
benchmark: option to rate limit range benchmark
2017-01-11 14:36:46 -08:00
Anthony Romano
fd72ecfe92
Merge pull request #7087 from sinsharat/make_etcd-runner_command_compliant
...
etcd-runner: make command compliant
2017-01-04 16:33:19 -08:00
sharat
d0f301adb7
etcd-runner:add flags in watcher for hardcoded values
2017-01-04 15:17:53 +05:30
Anthony Romano
b8444d4d35
benchmark: enable grpc error logging on stderr
...
Lets you see connection errors (e.g., if tls is misconfigured)
2017-01-04 00:26:43 -08:00
sharat
5cb6dd268b
etcd-runner: make command compliant
2017-01-03 14:43:58 +05:30
Xiang Li
3519a9784e
Merge pull request #7039 from mitake/benchmark-dialtimeout
...
benchmark: a new option for configuring dial timeout
2016-12-28 13:12:11 -08:00
Hitoshi Mitake
a662ddefbb
benchmark: a new option for configuring dial timeout
...
Current benchmark doesn't have an option for configuring dial timeout
of gRPC. This commit adds --dial-timeout for the purpose. It is useful
for stopping long sticking benchmarks.
2016-12-28 14:07:43 +09:00
Gyu-Ho Lee
db8b15bf8f
etcd-tester: remove unused err var from maxRev
2016-12-27 12:16:43 -08:00
Gyu-Ho Lee
591bb5e7f6
etcd-tester: fix typo, add endpoint in logs
2016-12-22 12:51:27 -08:00
Gyu-Ho Lee
301abddc72
etcd-tester: cancel lease stream; fix OOM panic
...
It was never closing lease keep-alive streams, leaking memory.
Fix OOM panics in etcd-tester (after 1K rounds).
2016-12-13 09:56:30 -08:00
Gyu-Ho Lee
7d16e7d27e
etcd-tester: add 'enable-pprof' option
2016-12-13 05:03:27 -08:00
Gyu-Ho Lee
b8e09bf849
tools: simplify boolean comparison, remove unused
2016-12-12 10:07:14 -08:00
Xiang Li
e62e9ce193
benchmark: add rate limit
2016-12-05 09:54:30 -08:00
fanmin shi
b9e9c9483b
Merge pull request #6885 from fanminshi/refractor_lease_checker
...
etcd-tester: refactor lease checker
2016-12-01 10:11:15 -08:00
fanmin shi
394ab43587
etcd-tester: refactor lease checker
...
Move few checking logic from lease stresser to lease checker and change connection logic for lease stresser and checker
2016-11-30 17:29:58 -08:00
fanmin shi
ec5f9bce63
Merge pull request #6886 from fanminshi/fix_dial_grpc
...
functional-tester: add withBlock() to grpc dial
2016-11-21 11:33:31 -08:00
fanmin shi
2ccba33dd1
functional-tester: add withBlock() to grpc dial
...
grpc dail withTimeout() only works if withBlock() option is present.
2016-11-21 11:15:12 -08:00
fanmin shi
2ac1c4c9ed
etcd-tester:limit max retry backoff delay
...
grpc uses expoential retry if a connection is lost. grpc will sleep base on exponential delay.
if delay is too large, it slows down tester.
2016-11-21 10:58:55 -08:00
Xiang Li
b1178469be
etcd-tester: do not resolve localhost
2016-11-19 18:38:26 -08:00
sharat
e5b6324771
benchmark: added watch-latency
2016-11-12 01:08:35 +05:30
Xiang Li
0a8e28524b
Merge pull request #6779 from xiang90/watch_clean
...
etcd-runner: clean up watcher runner
2016-11-10 09:59:08 -08:00
Xiang Li
523a859ad9
etcd-runner: clean up watcher runner
2016-11-10 08:56:19 -08:00
Gyu-Ho Lee
55d25f6f4d
tools: remove 'etcd-top'
...
Travis CI breaks because of cgo dependencies on 'etcd-top'.
This can leave outside of project.
2016-11-09 15:59:47 -08:00
fanmin shi
0f5d9f00ad
Merge pull request #6808 from fanminshi/functional-tester-compaction-deadline-fix
...
etcd-tester: increase compaction timeout limit
2016-11-08 17:18:40 -08:00
fanmin shi
107d7b663c
etcd-tester: changed compaction timeout calculation
...
functional tester sometime experiences timeout during compaction phase. I changed the timeout calculation base on number of entries created and deleted.
FIX #6805
2016-11-08 17:00:04 -08:00
Anthony Romano
2af31f99c3
etcd-top: make build require -tags pcap
...
Fixes travis.
2016-11-07 15:54:40 -08:00
Gyu-Ho Lee
f82aac2fc6
Merge pull request #6797 from fanminshi/lease_checker_println_fix
...
etcd-tester: fix lease checker logging format.
2016-11-03 10:17:54 -07:00
fanmin shi
6968028020
etcd-tester: fix lease checker logging format.
...
lease checker used a wrong print format for a variable. this change fixes it.
2016-11-03 10:11:00 -07:00
fanmin shi
649fe7f2af
etcd-tester: add retry logic on retriving lease info
...
getting lease and keys info through raw rpcs rarely experience error such as EOF. This is considered as a failure and causes tester to clean up.
however, they are just transient problem with temporary connection issue which should not be considered as a testing failure. so we add retry logic in case of transient failure.
FIX #6754
2016-11-03 10:05:06 -07:00
fanmin shi
8a03c95dd4
etcd-tester: refactor checking short lived lease logic
...
move the logic of waiting lease expired from stresser to checker
2016-11-01 14:06:22 -07:00
fanmin shi
c781f30ed5
functional-tester: remove stablilization limit
...
This change removes the waiting needed to ensure the cluster to be stable.
FIX #6760
2016-11-01 10:01:59 -07:00
Anthony Romano
4969a0e9e7
Merge pull request #6758 from heyitsanthony/move-checker
...
etcd-tester: refactor stresser / checker management
2016-10-31 13:59:54 -07:00
Anthony Romano
308f2a1695
etcd-tester: refactor stresser/checker organization
...
The checkers and stressers should be composable without special cases; this
patch tries to address that while refactoring out some old cruft.
Namely,
* Single stresser/checker for a tester; built from composition
* Composite stresser via comma-separated list of stressers
* Split stressers into separate files
* Removed v2 only flags and special cases
* Rate limiter shared among key stresser and leases stresser
* Composite checker is now concurrent
* Stresser can return a Checker to check its invariants
* Each lease checker only operates on a single lease stresser
2016-10-31 13:59:04 -07:00
Xiang Li
9f0ee53e86
etcd-runner: move string generation to pkg/stringutil
2016-10-31 12:20:02 -07:00
Gyu-Ho Lee
5bd00ab1f6
*: fix minor typos
2016-10-31 09:47:15 -07:00
Xiang Li
7e06a95942
Merge pull request #6759 from xiang90/tester
...
etcd-runner: refactor code structure and flag cleanup
2016-10-31 09:07:18 -07:00
Xiang Li
e5c3978725
etcd-runner: refactor code structure and flag cleanup
2016-10-30 18:45:16 -07:00
Anthony Romano
86c4a74139
etcd-tester: move stresser and checker to tester
...
These really belong in tester code; the stressers and
checkers are higher order operations that are orchestrated
by the tester. They're not really cluster primitives.
2016-10-29 10:57:17 -07:00
fanmin shi
34c906be55
functional-tester: fix log statement
...
simple fix for wrongly printed statement.
2016-10-28 14:27:09 -07:00
fanmin shi
7f5a7d1da5
functional-tester: always clean up if tester encouters an error
...
The current tester doesn't not clean up if any of the failure injection/recovery fails. if tester fails to recover a dead node, tester hangs in the next round because the tester will keep waiting until cluster becomes healthy which is impossible since a node is down. To fix this issue, we will always clean up if any error happens during each round so that cluster will be healthy for next round.
FIX #6743
2016-10-27 15:07:58 -07:00
fanmin shi
8d9e2623e1
functional-tester: add short lived leases checking
...
lease stresser now generates short lived leases that will expire before invariant checking.
this addition verifies that the expired leases are indeed being deleted on the sever side.
2016-10-26 14:46:57 -07:00
fanmin shi
1dc60bb97e
functional-tester: increase lease TTL
...
increasing lease TTL ensure that lease doesn't expire during hashes stabilization period.
I observed that it can take a long time for etcd cluster to become stable.
2016-10-26 10:32:52 -07:00
Xiang Li
12e4dfa9c4
Merge pull request #6715 from fanminshi/lease_hash_fix
...
Lease hash fix
2016-10-25 16:28:11 -07:00
Xiang Li
b398233f4f
Merge pull request #6730 from gyuho/round-prefix
...
etcd-runner: fix typo in round prefix
2016-10-25 16:24:27 -07:00
Gyu-Ho Lee
12488d4a70
etcd-runner: fix typo in round prefix
2016-10-25 15:59:44 -07:00
fanmin shi
bb97adda0d
functional-tester: add retries to hash checking
...
allows hashes to converge through retrying.
2016-10-25 14:27:36 -07:00
sharat
6e7e346c93
etcd-runner: Added client connection timeout flag
2016-10-26 01:58:22 +05:30
Gyu-Ho Lee
924ece6ae7
etcd-dump-db: initial commit
2016-10-25 10:18:51 -07:00
sharat
69ae49a1dd
etcd-runner: remove unused code and change name for randClient
2016-10-25 19:16:27 +05:30
Xiang Li
92c987f75d
Merge pull request #6695 from sinsharat/watch_runner_respect_rounds
...
etcd-runner: watcher runner respect rounds
2016-10-21 20:28:29 -07:00
sharat
90146d863c
etcd-runner: watcher runner respect rounds
2016-10-22 05:00:10 +05:30
fanmin shi
d582fdcc1b
functional-tester: add rate limiter to lease stresser
...
too many leases created can cause compaction to timeout. adding a rate limiter limits number of leases and attched keys.
2016-10-21 12:34:49 -07:00
fanmin shi
161eb2c457
Merge pull request #6696 from fanminshi/lease_expire_fix
...
functional-tester: modify lease renew logic
2016-10-20 16:25:04 -07:00
fanmin shi
a25d4ac821
functional-tester: modify lease renew logic
...
only renew a lease if the lease is present.
2016-10-20 15:27:46 -07:00
fanmin shi
94ea82c00d
functional-tester: add logic to ensure etcd node is alive after fault recovery returns
...
failure recovery needs to wait etcd node to become alive before returning
FIX #6654
2016-10-20 10:31:08 -07:00
sharat
50523e22d8
etcd-runner: make run watcher fail safe
2016-10-20 00:23:35 +05:30
fanmin shi
ab2b58a80f
functional-tester: add lease stresser
...
Add lease stresser to test lease code under stress and etcd failures
resolve #6380
2016-10-18 14:20:26 -07:00
fanmin shi
ed75d93625
Merge pull request #6666 from fanminshi/function-tester-refractor
...
functional-tester: move checker logic to cluster
2016-10-18 11:44:37 -07:00
fanmin shi
7d86d1050e
functional-tester: move checker logic to cluster
...
I move the checker logic from tester to cluster so that stressers and checkers can be initialized at the same time.
this is useful because some checker depends on stressers.
2016-10-18 11:17:40 -07:00
Xiang Li
24c284160b
Merge pull request #6635 from sinsharat/etcd_runner_add_watcher_runner
...
etcd-runner:added watch runner
2016-10-17 11:02:06 -07:00
sharat
8297322176
etcd-runner:added watch runner
2016-10-17 23:04:33 +05:30
Hitoshi Mitake
b2b03d9926
functional-tester: a new option -failure-wrapper for enabling/disabling external fault injector
...
This commit adds a new option -failure-wrapper to etcd-tester. The
option receives a path of script that is used for enabling/disabling
external fault injectors. The script is called with an option "enable"
when it needs to be enabled (when failure.Inject() is called) and
called with "disabled" in an opposite case (when failure.Recover() is
called).
2016-10-14 11:31:28 +09:00
Anthony Romano
c1d115b322
benchmark: submit keepalive requests concurrently with report.Run()
...
Otherwise report won't consume the results and the benchmark hangs.
2016-10-07 15:57:38 -07:00
Anthony Romano
e7d8292cd1
benchmark: add --precise flag
...
Usually benchmark writes with %4.4f; this adds optional %g formatting.
2016-10-06 16:18:47 -07:00
Anthony Romano
3d28faa3eb
pkg/report, tools/benchmark: refactor report out of tools/benchmark
...
Only tracks time series when requested. Can configure output precision.
2016-10-06 16:18:47 -07:00
Hitoshi Mitake
7d48855630
functional-tester: decouple failures from tester
...
This commit adds a new option --failures to etcd-tester. The option
receives a comma-delimited argument like this:
"default,failpoints". The given arguments are interpreted as names of
failures and they are injected to an etcd cluster. Available failures
are default (default scenario in etcd-tester) and failpoints. If no
args are passed to the option (--failures=""), no failures are
injected during testing.
2016-09-28 11:30:53 +09:00
Hitoshi Mitake
0e493c11c2
functional-tester: decouple stresser from tester
...
This commit decouples stresser from the tester of
functional-tester. For doing it, this commit adds a new option
--stresser to etcd-tester. The option accepts two types of stresser:
"default" and "nop". If the option is "default", etcd-tester stresses
its etcd cluster with the existing stresser. If the option is "nop",
etcd-tester does nothing for stressing.
Partially fixes https://github.com/coreos/etcd/issues/6446
2016-09-24 01:04:57 +09:00
Gyu-Ho Lee
4ec0fce109
Merge pull request #6493 from gyuho/tester-build
...
functional-tester: build from repo root, vendor
2016-09-21 16:57:34 -07:00
Gyu-Ho Lee
b2c4992a82
functional-tester: use different ports in Procfile
2016-09-21 02:39:45 -07:00
Gyu-Ho Lee
e8adc24c32
functional-tester: build from repo root, vendor
2016-09-21 02:06:13 -07:00
Anthony Romano
d4eff5381c
etcd-tester: split out consistency checking code from tester
2016-09-20 10:26:58 -07:00
fanmin shi
8a63071463
etcd-tester: fix peer-port parsing bug with localhost url
...
The following format "http://localhost:1234 " causes existing port parser to fail. Add new logic to parse the host name first then extract port.
Fixes #6409
2016-09-12 13:29:52 -07:00
fanmin shi
a571655983
functional-tester: correct goreman command in readme
...
update readme file to have the correct goreman command to start the functional tester locally.
2016-09-09 14:56:23 -07:00
Anthony Romano
aa6b1e6a10
functional-tester: add Procfile
2016-09-08 16:35:55 -07:00
Anthony Romano
55ba3d95fb
etcd-tester: support per-agent client/peer/failpoint ports
2016-09-08 16:15:18 -07:00
Anthony Romano
2e25a772a5
etcd-agent: support rootless operation and configurable gofail ports
2016-09-08 16:12:00 -07:00
Gyu-Ho Lee
0bf2ef3c1b
etcd-tester: return error for mismatch rev/hash
2016-08-27 22:14:42 -07:00
Xiang Li
017aac88a8
etcd-tester: do not restart stresser on error
2016-08-27 20:47:45 -07:00
Gyu-Ho Lee
0c37df7265
etcd-tester: fix compact rev counting
2016-08-22 22:58:44 -07:00
Anthony Romano
47b6449934
functional-tester: put large keys
...
For testing writes that must span multiple pages.
2016-08-17 09:51:44 -07:00
Xiang Li
feaff17259
session: remove session manager and add ttl
2016-08-15 14:12:25 -07:00
Gyu-Ho Lee
c6cf015e26
etcd-tester: fix tester for 5-node cluster
...
1. fix failure case counting
2. match ErrClientConnClosing in stresser
3. longer timeout for set-health-key
4. fixed range for range/delete stresser
5. remove Limit in RangeRequest
2016-08-07 21:15:01 -07:00
Anthony Romano
978ae9de29
functional-tester: share limiter among stresser
...
Otherwise, adding more members stresses the cluster with more ops.
2016-08-07 19:15:00 -07:00
Xiang Li
7678b84f2c
Merge pull request #6123 from xiang90/fix_limiter
...
tools/functional-tester: fix limiter
2016-08-07 16:20:17 -07:00
Xiang Li
f6a1585902
functional-tester: reduce rate to 3000
2016-08-07 14:34:01 -07:00
Xiang Li
107a07563f
tools/functional-tester: fix limiter
2016-08-07 14:28:16 -07:00
Xiang Li
69204397ee
tools/functional-tester: better logging
2016-08-07 14:21:44 -07:00
Gyu-Ho Lee
854a215329
etcd-tester: delete/range with limit, clean up
2016-08-05 11:21:36 -07:00
Gyu-Ho Lee
755eee0d30
etcd-tester: remove unnecessary arg from stresser
2016-08-01 15:35:31 -07:00
Gyu-Ho Lee
969bcd282b
etcd-tester: stress with range, delete
2016-07-18 15:17:08 -07:00
Anthony Romano
0419d3ecf7
etcd-tester: add FailFast(false) to grpc calls
2016-07-14 19:16:41 -07:00
Gyu-Ho Lee
ceb9fe4822
etcd-tester: stop stress before compact, fix races
...
fix race condition between stresser cancel, start
2016-07-14 12:16:42 -07:00
Gyu-Ho Lee
8e59fb749c
etcd-tester: increase default qps, fix cleanup
2016-07-14 11:20:16 -07:00
Xiang Li
7114a27345
Merge pull request #5922 from xiang90/l_b
...
tools/benchmark: add benchmark for lease keepalive
2016-07-12 10:48:04 -07:00
Xiang Li
8273e1c07e
tools/benchmark: add benchmark for lease keepalive
2016-07-12 10:40:56 -07:00
Xiang Li
4bc29e2b9c
Merge pull request #5902 from mitake/bench-auth
...
tools: add --user for auth in benchmarks
2016-07-11 18:38:07 -07:00
Hitoshi Mitake
a153448b84
tools: add --user for auth in benchmarks
...
This commit adds --user for auth in benchmarks. Its purpose is
measuring overhead of authentication of v3 API. Of course the given
user must be granted permission of target keys before benchmarking.
Example of a case with no authentication:
% ./benchmark range k1
bench with linearizable range
10000 / 10000 Booooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo! 100.00%2m10s
Summary:
Total: 130.1850 secs.
Slowest: 0.4071 secs.
Fastest: 0.0064 secs.
Average: 0.0130 secs.
Stddev: 0.0079 secs.
Requests/sec: 76.8138
Response time histogram:
0.006 [1] |
0.046 [9990] |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
0.087 [3] |
0.127 [0] |
0.167 [3] |
0.207 [2] |
0.247 [0] |
0.287 [0] |
0.327 [0] |
0.367 [0] |
0.407 [1] |
Latency distribution:
10% in 0.0076 secs.
25% in 0.0086 secs.
50% in 0.0113 secs.
75% in 0.0146 secs.
90% in 0.0209 secs.
95% in 0.0272 secs.
99% in 0.0344 secs.
Example of a case with authentication:
% ./benchmark --user=u1:p range k1
bench with linearizable range
10000 / 10000 Booooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo! 100.00%2m11s
Summary:
Total: 131.4923 secs.
Slowest: 0.1637 secs.
Fastest: 0.0065 secs.
Average: 0.0131 secs.
Stddev: 0.0070 secs.
Requests/sec: 76.0501
Response time histogram:
0.006 [1] |
0.022 [9075] |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
0.038 [875] |∎∎∎
0.054 [36] |
0.069 [5] |
0.085 [1] |
0.101 [1] |
0.117 [0] |
0.132 [0] |
0.148 [5] |
0.164 [1] |
Latency distribution:
10% in 0.0076 secs.
25% in 0.0087 secs.
50% in 0.0114 secs.
75% in 0.0150 secs.
90% in 0.0215 secs.
95% in 0.0272 secs.
99% in 0.0347 secs.
It seems that current auth mechanism does not introduce visible overhead.
2016-07-08 16:53:05 +09:00
Gyu-Ho Lee
7c39f41e7c
etcd-tester: add rate limiter to stresser
2016-07-07 21:55:12 -07:00
Anthony Romano
a5f043c85b
etcd-tester: add failpoint cases
...
Fixes #5754
2016-07-01 15:31:49 -07:00
Anthony Romano
8d4701bb1d
etcd-agent: enable GOFAIL_HTTP endpoint
2016-07-01 14:39:48 -07:00
Gyu-Ho Lee
0d44947c11
etcd-tester: fix slow leader with injectLatency
2016-06-30 13:41:27 -07:00
Gyu-Ho Lee
dc49016987
etcd-tester: handle error in RevHash
2016-06-29 19:31:45 -07:00
Anthony Romano
5f459a64ce
etcd-tester: refactor cluster member handling
2016-06-29 11:25:33 -07:00
Anthony Romano
402df5bd03
etcd-tester: refactor failure code to reduce code duplication
2016-06-29 11:03:34 -07:00
Anthony Romano
63f78bf7c8
etcd-tester: refactor round loop
2016-06-29 11:03:34 -07:00
Gyu-Ho Lee
15f2fd0726
etcd-tester: match ErrTimeout in stresser
...
Fix https://github.com/coreos/etcd/issues/5804 .
2016-06-28 19:20:28 -07:00
Gyu-Ho Lee
ae057ec508
benchmark: fix Compact request
2016-06-28 13:58:28 -07:00
Gyu-Ho Lee
ac68f70843
etcd-tester: match ErrTimeoutDueToLeaderFail
...
stresser in followers should retry when failure is injected to
their leader.
2016-06-27 20:48:06 -07:00
Anthony Romano
244266708b
local-tester: support failpoints
2016-06-23 12:04:11 -07:00
Gyu-Ho Lee
a1c7a7df5e
*: use capnslog for grpclog
2016-06-20 20:35:03 -07:00
Xiang Li
2bd5d66596
benchmark: fix watch bench
2016-06-20 14:00:46 -07:00
Gyu-Ho Lee
50f2f984e4
etcd-agent: set up directory for etcd logs
2016-06-20 11:32:14 -07:00
Xiang Li
2a2dd1075f
benchmark: correctly count number of watchers
2016-06-20 10:37:17 -07:00
Anthony Romano
9feb3d0e51
etcd-tester: fix goword warnings
2016-06-17 13:37:35 -07:00
Anthony Romano
f7b84d69a4
etcd-agent/client: fixup godocs
2016-06-17 13:37:35 -07:00
Gyu-Ho Lee
63c13e8b98
etcd-agent: fix test
2016-06-17 10:47:15 -07:00
Anthony Romano
5385ca0a43
Merge pull request #5659 from heyitsanthony/bridge-more-errors
...
bridge: packet corruption and reordering
2016-06-15 19:23:22 -07:00
Anthony Romano
11869905ae
bridge: packet corruption and reordering
...
With bonus bridge connection code refactor.
2016-06-15 17:08:19 -07:00
Gyu-Ho Lee
bd604a029e
etcd-agent: SIGQUIT when cleanup
2016-06-15 16:03:25 -07:00
Gyu-Ho Lee
84953365a2
etcd-tester: cleanup in compact error, log level
2016-06-13 14:54:53 -07:00
Gyu-Ho Lee
5631acdb8f
etcd-tester: do not exit for compact timeout
...
Temporary fix for https://github.com/coreos/etcd/issues/5606 .
2016-06-10 09:44:45 -07:00
Gyu-Ho Lee
350673f1f8
etcd-tester: retry for 'etcdserver: not capable'
...
Fix https://github.com/coreos/etcd/issues/5573 .
Currently stresser starts at the same time as cluster start.
If the stresser got launched too fast/early, all stressers
exit from the error 'etcdserver: not capable', which
means the cluster is not ready yet. This adds additional
error checking, so stresser can retry.
2016-06-07 21:56:04 -07:00
Anthony Romano
51551abef5
concurrency, benchmark: read-committed STM isolation policy
2016-05-31 14:35:27 -07:00
Anthony Romano
f34a9350c3
benchmark: benchmark stm workload with distributed mutex
2016-05-31 14:35:27 -07:00
Anthony Romano
bb2a3ea8d8
benchmark: respect stm isolation mode flag
2016-05-31 14:35:27 -07:00
Gyu-Ho Lee
20fc3e968f
Merge pull request #5465 from gyuho/compact1
...
etcd-tester: log more for compact errors
2016-05-27 16:16:04 -07:00
Anthony Romano
fc7da09d67
*: add missing godoc package descriptions
...
Fixes #4074
2016-05-27 15:15:26 -07:00
Gyu-Ho Lee
04039eb006
etcd-tester: more logs for compact operations
2016-05-27 09:55:13 -07:00
Gyu-Ho Lee
3ed5d28e2e
etcd-tester: fix, clean up multiple things ( #5462 )
...
* etcd-tester: more logging, fix typo
* etcd-tester: fix prevCompactRev scope
Fix https://github.com/coreos/etcd/issues/5440 .
* etcd-tester: move utils to bottom, clean up logs
And remove stresser operation inside defrag
* etcd-tester: separate update revision call
* etcd-tester: fix cleanup when case is -1
2016-05-26 11:37:49 -07:00
Gyu-Ho Lee
4c7af825c7
etcd-tester: timeout per number of compact entries
...
Fix https://github.com/coreos/etcd/issues/5440 .
2016-05-25 18:37:13 -07:00
Gyu-Ho Lee
9ca84e814f
benchmark: fix watch command
...
Fix https://github.com/coreos/etcd/issues/5099 .
2016-05-19 09:57:35 -07:00
Anthony Romano
393725fe5f
clientv3/concurrency: ctx-ize Leader(), Resign(), and Unlock()
2016-05-13 10:07:35 -07:00
Anthony Romano
2e93c65c96
bridge: fix command line flag handling
...
flag package expects flags in Argv[1:] and stops on non-flag arguments
but bridge was expecting the forwarding address in os.Argv[1]
2016-05-13 10:07:35 -07:00
Anthony Romano
4612e2d59a
Merge pull request #5340 from heyitsanthony/etcd-runner-election
...
etcd-runner: election mode
2016-05-12 22:53:35 -07:00
Anthony Romano
4fe91ed1e2
etcd-runner: election mode
2016-05-12 22:32:33 -07:00
Anthony Romano
215afb9b1d
etcd-runner: refactor round code
2016-05-12 22:32:33 -07:00
Gyu-Ho Lee
3d523e34b1
tools: update LICENSE header
2016-05-12 20:50:17 -07:00
Anthony Romano
dcb3b7aecf
*: scrub legacy ports from code and scripts
2016-05-11 13:46:30 -07:00
Anthony Romano
f5165a0149
benchmark: make number of watcher streams configurable in watch-get
...
Each stream uses a client goroutine and a grpc stream; the setup causes
considerable client-side latency on the first get requests.
2016-05-11 11:16:43 -07:00
Anthony Romano
2aa4dd52cc
benchmark: use separate connection for get in watch-get
...
The watcher traffic interferes with the get latency when sharing connections.
2016-05-11 11:16:43 -07:00
Anthony Romano
467de8cb4f
benchmark: watch-get for testing unsynced watcher/get contention
2016-05-10 10:24:40 -07:00
Gyu-Ho Lee
cc7dd9b729
etcd-tester: refactor
2016-05-05 10:55:42 -07:00
Xiang Li
28f3cb0f14
Merge pull request #5171 from xiang90/runner
...
etcd-runner: initial commit
2016-04-30 19:39:53 -07:00
Xiang Li
73ecb61ff4
etcd-runner: initial commit
2016-04-30 17:24:03 -07:00
Anthony Romano
c0ff77e809
local-tester: procfile, faults, and network bridge
...
Creates a local fault injected cluster and stresser for etcd.
Usage: goreman -f tools/local-tester/Procfile start
2016-04-29 09:57:02 -07:00
Gyu-Ho Lee
de7c18909f
etcd-tester: match more grpc errors
...
To prevent stressers from returning from failure injections
2016-04-27 09:34:05 -07:00
Anthony Romano
b7ac758969
*: rename storage package to mvcc
2016-04-25 15:25:51 -07:00
Gyu-Ho Lee
151d0d3831
etcd-tester: flag consistency-check
2016-04-22 22:22:12 -07:00
Gyu-Ho Lee
6a0664d701
etcd-tester: wait more for slow network recovery
...
For https://github.com/coreos/etcd/issues/5121 .
2016-04-22 15:24:47 -07:00
Gyu-Ho Lee
0feb88cee1
etcd-tester: change var success->failed
...
Previous success overwrites the later failure.
Make it simpler by changing the variable to 'failed'.
2016-04-22 09:27:37 -07:00
Gyu-Ho Lee
e835d24bea
etcd-tester: skip compaction after different hash
...
When hashes don't match, there could be some nodes
falling behind and the compact request can then error
with 'future revision compact'.
2016-04-20 17:13:51 -07:00
Gyu-Ho Lee
ad226f2020
benchmark: ensure all watcher receivers to finish
...
Fix https://github.com/coreos/etcd/issues/5099 .
2016-04-15 11:11:14 -07:00
Gyu-Ho Lee
641a1a66e1
*: fix govet -shadow in go tip
2016-04-15 07:39:52 -07:00
Gyu-Ho Lee
8515ae30fb
functional-tester/etcd-tester: fix error check
2016-04-14 21:31:12 -07:00
Anthony Romano
21233416e8
etcd-tester: return error if first compaction times out
...
Fixes #5081
2016-04-14 17:11:53 -07:00
Gyu-Ho Lee
6af40ea1e1
functional-tester: add latency test (simulate slow network)
...
Fix https://github.com/coreos/etcd/issues/4666 .
2016-04-13 17:00:09 -07:00
Gyu-Ho Lee
2c6176b5f2
*: remove MemberLeader API in client side (fix examples)
2016-04-13 16:23:57 -07:00
Gyu-Ho Lee
cb280bae91
etcd-tester: fix govet
2016-04-13 11:12:31 -07:00
Gyu-Ho Lee
2aab6ff2eb
benchmark: return time series with missing periods filled in
2016-04-11 23:07:45 -07:00
Gyu-Ho Lee
953a08d841
*: clean up from gosimple
2016-04-08 11:55:03 -07:00
Gyu-Ho Lee
139f23fd13
etcd-agent: fix etcd agent tests, remove unused listener
2016-04-07 17:04:24 -07:00
Gyu-Ho Lee
b866337f25
functional-tester: defrag every 500 round
...
Fix https://github.com/coreos/etcd/issues/4665 .
2016-04-02 18:51:26 -07:00
Anthony Romano
307cb5167c
Merge pull request #4925 from heyitsanthony/wal-dump-lock
...
etcd-dump-logs: don't try to acquire wal file locks
2016-03-31 22:24:54 -07:00
Anthony Romano
7fffd6ffd2
etcd-dump-logs: don't try to acquire wal file locks
...
can now dump logs from a running etcd instance
2016-03-31 21:51:20 -07:00
Gyu-Ho Lee
f9b90e13ac
etcd-tester: no error for compact double-send
...
When compactKV request is halted before final acknowledgement,
it used to just continue on the next endpoint. But there could be
a case than compactKV is requested twice, and the first one is already
replicated and applied by the time the second request was to be
applied (returning compact revision error). This skips the case
by parsing the error message.
2016-03-31 21:29:02 -07:00
Xiang Li
14f146b9f7
Merge pull request #4908 from xiang90/c
...
*: simplify consistent index handling
2016-03-30 13:53:21 -07:00
Xiang Li
eddc741b5e
*: simplify consistent index handling
2016-03-30 13:38:28 -07:00
Anthony Romano
4c65f3fe7a
etcd-tester: check compaction revision
...
Faster than waiting 30 seconds between rounds.
2016-03-30 09:45:30 -07:00
Anthony Romano
3fbacf4be2
v3rpc: move Hash RPC to Maintenance service
2016-03-28 17:15:58 -07:00
Anthony Romano
4a17097d00
tools/functional-tester: --schedule-cases flag
...
Command line argument for specifying a schedule of test cases per round.
Default is run each test case once each round.
2016-03-24 19:43:23 -07:00
Xiang Li
d0d3b32210
Merge pull request #4850 from xiang90/rm_demo
...
*: enable v3 by default
2016-03-23 23:48:29 -07:00
Xiang Li
70a9391378
*: enable v3 by default
2016-03-23 17:01:36 -07:00
Gyu-Ho Lee
9fb60deb7c
functional-tester: add GRPCURLs for cluster config
...
GRPC and v2 client address share the same host(port)
but GRPC does not work with schema specified. This fixes
it by adding another member for GRPC without schema, as
we had before.
2016-03-23 16:28:05 -07:00
Gyu-Ho Lee
012143e703
functional-tester: set gRPC endpoint for stresser
2016-03-23 15:23:19 -07:00
Anthony Romano
bd832e5b0a
*: migrate Godeps to vendor/
2016-03-22 17:10:28 -07:00
Gyu-Ho Lee
bb9a7f5a7c
Godeps: semantic versioning cheggaaa/pb
...
Fix https://github.com/coreos/etcd/issues/4832 .
2016-03-21 22:06:16 -07:00
Xiang Li
d3809abe42
*: gRPC + HTTP on the same port
...
We use cmux to do this since we want to do http+https on the same
port in the near future too.
2016-03-21 14:29:25 -07:00
Anthony Romano
1383da1030
benchmark: STM benchmark
2016-03-20 12:21:29 -07:00
Gyu-Ho Lee
58792ca59b
bench/cmd: print csv-format timeseries
2016-03-16 11:06:36 -07:00
Gyu-Ho Lee
c9e4e2b6dc
benchmark: move sample flag to root command
...
Sample is configuration for reports. This should be
flag at top command.
2016-03-15 10:36:27 -07:00
Gyu-Ho Lee
5eefff12e1
benchmark: printSecondSample with time series
2016-03-15 08:35:03 -07:00
Gyu-Ho Lee
a932674a5b
benchmark: minor typos
2016-03-14 13:45:08 -07:00
Anthony Romano
78132c9b5b
clientv3: use tls.Config in clientv3.Config
...
Fixes #4648
2016-03-07 16:08:40 -08:00
Gyu-Ho Lee
b8912c9fb1
benchmark: change complete notifier first
...
Fix https://github.com/coreos/etcd/issues/4708 .
2016-03-07 14:54:11 -08:00
Gyu-Ho Lee
b3f0bcbeb4
functional-tester: less intensive stresser
2016-03-05 13:16:26 -08:00
Gyu-Ho Lee
b73c1223d8
Merge pull request #4638 from gyuho/compact
...
benchmark: add auto-compact flags
2016-03-04 10:15:02 -08:00
Gyu-Ho Lee
da0f77dc14
benchmark: measure Put with auto-compact
2016-03-04 09:34:24 -08:00
Gyu-Ho Lee
536b028831
benchmark: watch, key-space-size(max possible key)
...
By specifying 'key-space-size', we can test min/max-key-range
of keys to watch.
For https://github.com/coreos/etcd/issues/3863 .
2016-03-03 13:46:17 -08:00
Anthony Romano
4fb25d5f0e
Merge pull request #4613 from heyitsanthony/clientv3-composite
...
clientv3: compose API interfaces into client struct
2016-02-29 11:23:34 -08:00
Gyu-Ho Lee
64e276800f
benchmark: use endpoints for benchmark flag
2016-02-26 16:55:49 -08:00
Anthony Romano
298c1e2487
tools/benchmark: port to clientv3 API
2016-02-25 18:13:26 -08:00
Xiang Li
e316678a4d
tools/functional-tester: fix leaky issue by closing conn
2016-02-19 22:04:01 -08:00
Gyu-Ho Lee
8bcd823ed7
etcd-tester: continue for deadline exceeded
2016-02-19 13:48:58 -08:00
Gyu-Ho Lee
b2bad7bd79
etcd-agent: get base when renaming
...
Partially related to https://github.com/coreos/etcd/issues/4552 .
2016-02-18 09:03:34 -08:00
Gyu-Ho Lee
061e996998
functional-tester: remove log prefixes
...
capnslog already prefixes with its package name.
2016-02-17 19:01:16 -08:00
Gyu-Ho Lee
7aa62ec595
functional-tester: plog for milli-second timestamp
...
Standard log package by default only prints out the second-scale
so the 3rd party log feeder mixes the order of the events, which makes
the debugging hard. This replaces it with capnslog and make them consistent
with all other etcd log formats.
2016-02-17 18:39:05 -08:00
Gyu-Ho Lee
239a6d89c5
etcd-tester: 10-second timeout for stressers
...
For https://github.com/coreos/etcd/issues/4477 .
2016-02-17 15:44:05 -08:00
Gyu-Ho Lee
56e3ab0943
etcd-agent: tidy cleanup before SIGKILL
...
https://github.com/golang/go/blob/master/src/os/exec_posix.go#L18 shows that
cmd.Process.Kill calls syscall.SIGKILL to the command. But
http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_12_01.html explains
'If you send a SIGKILL to a process, you remove any chance for the process to
do a tidy cleanup and shutdown, which might have unfortunate consequences.'
This sends SIGTERM, SIGINT syscalls to the PID so that the process could
have more time to clean up the resources.
Related to https://github.com/coreos/etcd/issues/4517 .
2016-02-16 13:08:22 -08:00
Gyu-Ho Lee
20ac633059
Merge pull request #4516 from gyuho/path
...
etcd-agent: ignore error when no file to rename
2016-02-13 14:24:17 -08:00
Xiang Li
cff1208005
Merge pull request #4520 from xiang90/bench
...
tools/benchmark: support serializable range benchmark
2016-02-13 09:25:24 -08:00
Xiang Li
4d0a2b4215
Merge pull request #4462 from mitake/benchmark-watch
...
tools/benchmark: revive watch benchmark
2016-02-13 09:24:00 -08:00
Xiang Li
3a9a1c7d9b
tools/benchmark: support serializable range benchmark
2016-02-13 09:23:35 -08:00
Hitoshi Mitake
99e7449f44
tools/benchmark: revive watch benchmark
...
Current watch benchmark seems to be broken. This commit revives it.
2016-02-14 01:15:04 +09:00
Gyu-Ho Lee
205033d25f
etcd-agent: ignore error when no file to rename
...
Fixes https://github.com/coreos/etcd/issues/4512 .
When cluster fails before creation of log or data directory
the file does not exist and cannot be renamed. This skips such
error because there's no need to store empty logs in failure_archive.
2016-02-12 16:37:04 -08:00
Xiang Li
c15b2a5077
Merge pull request #4514 from xiang90/tester
...
tools/functional-tester: add metrics
2016-02-12 14:45:10 -08:00
Xiang Li
1bec0e6a0b
tools/functional-tester: add metrics
2016-02-12 14:42:41 -08:00
Gyu-Ho Lee
5b2847b338
etcd-tester: use Hash method to get both revision and hash
2016-02-12 14:40:51 -08:00
Gyu-Ho Lee
c1851dfca1
etcd-tester: add leader failure cases
2016-02-11 15:46:44 -08:00
Gyu-Ho Lee
78df258ea8
etcd-agent: cleans page cache when cleaning up
...
Reference:
- https://www.kernel.org/doc/Documentation/sysctl/vm.txt
- https://github.com/torvalds/linux/blob/master/fs/drop_caches.c
2016-02-11 13:48:54 -08:00
Xiang Li
4b68977851
Merge pull request #4481 from xiang90/testing-tool
...
tools/etcd-dump-logs: support parsing v3 log
2016-02-10 14:00:32 -08:00
Xiang Li
3611a9ad2e
tools/etcd-dump-logs: support parsing v3 log
2016-02-10 13:52:02 -08:00
Gyu-Ho Lee
7b2ce70783
etcd-tester: count success for v3
...
needed for snapshot count comparison
2016-02-09 17:12:03 -08:00
Gyu-Ho Lee
7d2b7e0d23
etcd-tester: close leaky gRPC connections
...
when closed errors will be one of:
```
grpc.ErrorDesc(err) == context.Canceled.Error() ||
grpc.ErrorDesc(err) == context.DeadlineExceeded.Error() ||
grpc.ErrorDesc(err) == "transport is closing" ||
grpc.ErrorDesc(err) == "grpc: the client connection is closing"
```
2016-02-09 16:26:33 -08:00
Gyu-Ho Lee
16aa263d8c
etcd-tester: continue after cleanup
2016-02-09 13:32:39 -08:00
Gyu-Ho Lee
c8994aab62
Merge pull request #4466 from gyuho/f0
...
etcd-tester: close gRPC connection when canceling
2016-02-09 11:07:00 -08:00
Gyu-Ho Lee
a46e20f92a
etcd-tester: close gRPC connection when canceling
...
Currently gRPC connection just gets recreated
for every Stress call. When Stress ends or gets
canceled, gRPC connection must also be closed.
For https://github.com/coreos/etcd/issues/4464 .
2016-02-09 11:04:16 -08:00
Gyu-Ho Lee
e252c0c0ca
etcd-tester: fix wrong error checking
...
Hash method returns either (nil, err) or (Hash, nil).
The current error checking is wrong. It only needs to check
the error is either nil or non-nil.
This causes panic in https://github.com/coreos/etcd/issues/4463
by allowing the case when resp is nil, but err is not nil.
2016-02-09 10:00:05 -08:00
Xiang Li
fa71bec550
Merge pull request #4458 from xiang90/cl
...
etcd-tester: cleanup
2016-02-08 21:16:28 -08:00
Xiang Li
25834211a9
etcd-tester: cleanup
2016-02-08 20:54:25 -08:00
Gyu-Ho Lee
77f753ac32
etcd-agent: mkdir with read/write to all users
2016-02-08 20:50:11 -08:00
Gyu-Ho Lee
16543778f1
etcd-tester: avoid directory name conflict
2016-02-08 13:38:26 -08:00
Gyu-Ho Lee
08dbabdb5f
etcd-tester: add compactKV
...
It compacts storage for every case.
For https://github.com/coreos/etcd/issues/4380 .
2016-02-06 15:02:58 -08:00
Gyu-Ho Lee
044f7775e3
etcd-tester: log cancel in stresser
...
And fix some minor print formats.
2016-02-05 18:31:27 -08:00