ClickHouse/dbms/tests/performance
alexey-milovidov 3399f9a73c
Merge pull request #8112 from hczhcz/patch-1210
Add function bankerRound
2019-12-15 23:57:13 +03:00
..
agg_functions_min_max_any.xml
and_function.xml add perf test for function and 2019-12-03 16:28:07 +03:00
array_element.xml
array_fill.xml Create array_fill.xml 2019-10-31 14:30:11 +08:00
array_join.xml
base64_hits.xml
base64.xml
basename.xml
bounding_ratio.xml
cidr.xml
codec_double_delta.xml
codec_gorilla.xml
collations.xml Added perf test for collations (#8087) 2019-12-09 04:23:58 +03:00
column_column_comparison.xml
columns_hashing.xml
complex_array_creation.xml
concat_hits.xml
conditional.xml
consistent_hashes.xml Updated performance test 2019-08-03 22:51:47 +03:00
constant_column_comparison.xml
constant_column_search.xml
count.xml
cpu_synthetic.xml
create_benchmark_page.py
cryptographic_hashes.xml
date_parsing.xml
date_time_64.xml Added perftest. 2019-12-11 16:17:30 +03:00
date_time.xml More performance test for Date and DateTime 2019-10-15 15:20:54 +03:00
decimal_aggregates.xml add perf test for decimal aggregates 2019-12-12 16:11:07 +03:00
early_constant_folding.xml Add perf test for early constant folding 2019-11-01 22:33:03 +08:00
empty_string_deserialization.xml
empty_string_serialization.xml
entropy.xml
first_significant_subdomain.xml
fixed_string16.xml
float_parsing.xml
format_date_time.xml
functions_coding.xml
functions_geo.xml
general_purpose_hashes_on_UUID.xml performance test added 2019-12-06 21:10:03 +03:00
general_purpose_hashes.xml Update tests. 2019-08-20 16:33:25 +03:00
great_circle_dist.xml Fixed error in perf test 2019-12-09 01:41:45 +03:00
group_array_moving_sum.xml
h3.xml
if_array_num.xml
if_array_string.xml Changed repository URL 2019-09-23 19:18:19 +03:00
if_string_const.xml
if_string_hits.xml
information_value.xml Add aggregate function categoricalInformationValue (#8117) 2019-12-12 16:28:28 +03:00
insert_values_with_expressions.xml add performance test 2019-09-20 22:45:26 +03:00
inserts_arrays_lowcardinality.xml performance test for lowcardinality array, showing significant performance degradation comparing to plain array 2019-09-12 22:46:31 +02:00
int_parsing.xml
IPv4.xml
IPv6.xml
jit_large_requests.xml
jit_small_requests.xml
joins_in_memory_pmj.xml add simple perf test for partial merge join 2019-09-18 20:04:10 +03:00
joins_in_memory.xml
json_extract_rapidjson.xml Updated json perftest to loop. 2019-08-19 00:50:51 +03:00
json_extract_simdjson.xml Updated json perftest to loop. 2019-08-19 00:50:51 +03:00
leftpad.xml
linear_regression.xml Whitespaces 2019-08-09 02:55:08 +03:00
math.xml
merge_table_streams.xml
merge_tree_huge_pk.xml Update merge_tree_huge_pk.xml 2019-09-18 23:07:23 +03:00
merge_tree_many_partitions_2.xml
merge_tree_many_partitions.xml
merge_tree_simple_select.xml
modulo.xml const modulo optimization 2019-11-15 13:56:23 +08:00
ngram_distance.xml
number_formatting_formats.xml
nyc_taxi.xml
order_by_decimals.xml add perf test 2019-08-07 17:41:03 +03:00
order_by_read_in_order.xml
order_by_single_column.xml
parse_engine_file.xml JSONCompactEachRow and JSONCompactEachRowWithNamesAndTypes (#7841) 2019-12-05 13:13:40 +03:00
prewhere.xml PREWHERE test 2019-11-14 14:21:54 +08:00
range.xml add range performance tests 2019-11-05 15:07:25 +08:00
read_hits_with_aio.xml
README.md Add performance test 2019-10-14 13:13:32 +03:00
right.xml
round_down.xml Improve roundBankers implementation 2019-12-15 16:30:54 +08:00
round_methods.xml Improve roundBankers implementation 2019-12-15 16:30:54 +08:00
scalar.xml add perf test for subqueries with large scalars 2019-10-22 23:55:11 +08:00
select_format.xml JSONCompactEachRow and JSONCompactEachRowWithNamesAndTypes (#7841) 2019-12-05 13:13:40 +03:00
set_hits.xml
set.xml
simple_join_query.xml
slices_hits.xml
sort.xml
string_join.xml String join perf test 2019-11-08 15:07:27 +08:00
string_set.xml IN (strings) perf test (#7739) 2019-11-14 23:04:11 +03:00
string_sort.xml
system_numbers.xml
trim_numbers.xml
trim_urls.xml
trim_whitespace.xml
uniq.xml
url_hits.xml
vectorize_aggregation_combinators.xml Vectorize arrayReduce and -Array combinator 2019-11-07 11:53:47 +08:00
visit_param_extract_raw.xml
website.xml

ClickHouse performance tests

This directory contains .xml-files with performance tests for clickhouse-performance-test tool.

How to write performance test

First of all you should check existing tests don't cover your case. If there are no such tests than you should write your own.

There two types of performance tests:

  • First is executed in loop, and have tag <type>loop</type> in config.
  • Second one is executed only once and have tag <type>once</type> in config.

Type once should be used only for endless queries. Even if your query really long (10 seconds+), it's better to choose loop test.

After you have choosen type, you have to specify preconditions. It contains table names. Only hits_100m_single, hits_10m_single, test.hits are available in CI.

The most important part of test is stop_conditions. For loop test you should always use min_time_not_changing_for_ms stop condition. For once test you can choose between average_speed_not_changing_for_ms and max_speed_not_changing_for_ms, but first is preferable. Also you should always specify total_time_ms metric. Endless tests will be ignored by CI.

metrics and main_metric settings are not important and can be ommited, because loop tests are always compared by min_time metric and once tests compared by max_rows_per_second.

You can use substitions, create, fill and drop queries to prepare test. You can find examples in this folder.

Take into account, that these tests will run in CI which consists of 56-cores and 512 RAM machines. Queries will be executed much faster than on local laptop.

If your test continued more than 10 minutes, please, add tag long to have an opportunity to run all tests and skip long ones.

How to run performance test

You have to run clickhouse-server and after you can start testing:

$ clickhouse-performance-test --input-file my_lovely_test1.xml --input-file my_lovely_test2.xml
$ clickhouse-performance-test --input-file /my_lovely_test_dir/