You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+51-13Lines changed: 51 additions & 13 deletions
Original file line number
Diff line number
Diff line change
@@ -46,16 +46,44 @@ The aggregate queries are designed to be extremely costly both on computation an
46
46
47
47
### Installation
48
48
49
-
FTSB is a collection of Go programs (with some auxiliary bash and Python scripts). The easiest way to get and install the Go programs is to use go get and then issuing make:
49
+
#### Download Standalone binaries ( no Golang needed )
50
+
51
+
If you don't have go on your machine and just want to use the produced binaries you can download the following prebuilt bins:
To install the benchmark utility with a Go Env do as follow:
75
+
76
+
```bash
51
77
# Fetch FTSB and its dependencies
52
78
go get github.com/RediSearch/ftsb
53
79
cd$GOPATH/src/github.com/RediSearch/ftsb
54
80
55
81
# Install desired binaries. At a minimum this includes ftsb_redisearch binary:
56
82
make
57
-
```
58
83
84
+
# give it a try
85
+
./bin/ftsb_redisearch --help
86
+
```
59
87
60
88
61
89
@@ -96,11 +124,16 @@ Apart from the CSV files, and not mandatory, there is a benchmark suite specific
96
124
So that benchmarking results are not affected by generating data or queries on-the-fly, you are always required to feed an input file to the benchmark runner that respects the previous specification format. The overall idea is that the benchmark runner only concerns himself on executing the queries as fast as possible while enabling client runtime variations that influence performance ( and are not related to the use-case himself ) like, command pipelining ( auto pipelining based on time or number of commands ), cluster support, number of concurrent clients, rate limiting ( to find sustainable throughputs ), etc…
97
125
98
126
Running a benchmark is as simple as feeding an input file to the DB benchmark runner ( in this case ftsb_redisearch ):
@@ -122,30 +155,35 @@ Issued 9885 Commands in 5.455sec with 8 workers
122
155
Overall TX Byte Rate: 3KB/sec
123
156
Overall RX Byte Rate: 1.4MB/sec
124
157
```
158
+
159
+
125
160
Apart from the input file, you should also always specify the name of JSON output file to output benchmark results, in order to do more complex analysis or store the results. Here is the full list of supported options:
126
-
```
127
-
$ ftsb_redisearch -h
128
-
Usage of ftsb_redisearch:
161
+
162
+
```bash
163
+
$ ./ftsb_redisearch --help
164
+
Usage of ./bin/ftsb_redisearch:
165
+
-a string
166
+
Password for Redis Auth.
129
167
-cluster-mode
130
168
If set to true, it will run the client in cluster mode.
169
+
-continue-on-error
170
+
If set to true, it will continue the benchmark and print the error message to stderr.
131
171
-debug int
132
172
Debug printing (choices: 0, 1, 2). (default 0)
133
173
-do-benchmark
134
174
Whether to write databuild. Set this flag to false to check input read speed. (default true)
135
-
-file string
136
-
File name to read databuild from
137
175
-host string
138
176
The host:port for Redis connection (default "localhost:6379")
177
+
-input string
178
+
File name to read databuild from
139
179
-json-out-file string
140
180
Name of json output file to output benchmark results. If not set, will not print to json.
141
181
-max-rps uint
142
182
enable limiting the rate of queries per second, 0 = no limit. By default no limit is specified and the binaries will stress the DB up to the maximum. A normal "modus operandi" would be to initially stress the system ( no limit on RPS) and afterwards that we know the limit vary with lower rps configurations.
143
183
-metadata-string string
144
184
Metadata string to add to json-out-file. If -json-out-file is not set, will not use this option.
145
-
-pipeline-max-size int
146
-
If limit is zero then no limit will be used and pipelines will only be limited by the specified time window (default 100)
147
-
-pipeline-window-ms float
148
-
If window is zero then implicit pipelining will be disabled (default 0.5)
185
+
-pipeline int
186
+
Pipeline <numreq> requests. Default 1 (no pipeline). (default 1)
0 commit comments