ClickHouse/dbms/tests/performance
alexey-milovidov 2fc799c1c1
Merge pull request #9446 from ClickHouse/akz/preformance_tests_for_logical_functions
Comprehensive performance tests for logical functions
2020-02-29 21:18:49 +03:00
..
agg_functions_min_max_any.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
and_function.xml Enforce single threaded check in existing test for logical functions 2020-02-28 20:05:10 +03:00
arithmetic.xml Added performance test for arithmetic functions (#9326) 2020-02-24 16:22:32 +03:00
array_element.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
array_fill.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
array_join.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
base64_hits.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
base64.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
basename.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
bit_operations_fixed_string_numbers.xml Added another performance test for bit operations on FixedString #9091 2020-02-24 19:39:44 +03:00
bit_operations_fixed_string.xml add bitNot performance tests 2020-02-14 10:09:46 +01:00
bitCount.xml Added performance test for bitCount function 2020-01-18 18:50:18 +03:00
bloom_filter.xml Make some performance tests faster. 2020-02-13 21:42:55 +03:00
bounding_ratio.xml Remove <name> and <metrics> from performance tests fixed-5634 2019-06-18 19:55:13 +03:00
cidr.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
codecs_float_insert.xml Fixed codec performance test 2020-01-10 19:00:31 +03:00
codecs_float_select.xml Fixed codec performance test 2020-01-10 19:00:31 +03:00
codecs_int_insert.xml Update codecs_int_insert.xml 2020-02-14 22:44:59 +03:00
codecs_int_select.xml Fixed codec performance test 2020-01-10 19:00:31 +03:00
collations.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
column_column_comparison.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
columns_hashing.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
complex_array_creation.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
concat_hits.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
conditional.xml Remove <name> and <metrics> from performance tests fixed-5634 2019-06-18 19:55:13 +03:00
consistent_hashes.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
constant_column_comparison.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
constant_column_search.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
count.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
cpu_synthetic.xml Update cpu_synthetic.xml 2020-02-13 11:56:06 +03:00
create_benchmark_page.py add string comparisons performance test [#CLICKHOUSE-3070] 2017-06-22 23:10:43 +03:00
cryptographic_hashes.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
date_parsing.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
date_time_64.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
date_time.xml More performance test for Date and DateTime 2019-10-15 15:20:54 +03:00
decimal_aggregates.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
early_constant_folding.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
empty_string_deserialization.xml Added performance test to show degradation of performance in gcc-9 in more isolated way 2019-08-02 23:16:02 +03:00
empty_string_serialization.xml Added performance test to show degradation of performance in gcc-9 in more isolated way 2019-08-02 23:18:03 +03:00
entropy.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
first_significant_subdomain.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
fixed_string16.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
float_formatting.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
float_parsing.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
format_date_time.xml Revert "Removed <name> from all performance tests #6179" 2019-07-28 00:17:44 +03:00
functions_coding.xml Remove <name> and <metrics> from performance tests fixed-5634 2019-06-18 19:55:13 +03:00
functions_geo.xml Remove <name> and <metrics> from performance tests fixed-5634 2019-06-18 19:55:13 +03:00
general_purpose_hashes_on_UUID.xml Update general_purpose_hashes_on_UUID.xml 2020-02-14 22:46:27 +03:00
general_purpose_hashes.xml Update general_purpose_hashes.xml 2020-02-07 22:01:13 +03:00
great_circle_dist.xml Fixed error in perf test 2019-12-09 01:41:45 +03:00
group_array_moving_sum.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
h3.xml Updated performance test 2019-06-30 23:14:45 +03:00
if_array_num.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
if_array_string.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
if_string_const.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
if_string_hits.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
if_to_multiif.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
information_value.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
insert_values_with_expressions.xml update tests 2019-12-16 13:24:02 +03:00
inserts_arrays_lowcardinality.xml Update inserts_arrays_lowcardinality.xml 2020-02-13 21:58:46 +03:00
int_parsing.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
IPv4.xml Remove <name> and <metrics> from performance tests fixed-5634 2019-06-18 19:55:13 +03:00
IPv6.xml Remove <name> and <metrics> from performance tests fixed-5634 2019-06-18 19:55:13 +03:00
jit_large_requests.xml Update jit_large_requests.xml 2019-07-05 15:59:52 +03:00
jit_small_requests.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
joins_in_memory_pmj.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
joins_in_memory.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
json_extract_rapidjson.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
json_extract_simdjson.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
leftpad.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
linear_regression.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
logical_functions_large.xml Tiny corrections (EOL) 2020-02-28 20:06:19 +03:00
logical_functions_medium.xml Added medium and large tests 2020-02-28 16:12:16 +03:00
logical_functions_small.xml Tiny corrections (EOL) 2020-02-28 20:06:19 +03:00
math.xml Loop queries for math perftest. 2020-01-22 19:56:49 +03:00
merge_table_streams.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
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 Faster perf tests -- a good part of #9420 2020-02-28 21:32:15 +03:00
merge_tree_many_partitions.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
merge_tree_simple_select.xml Removed <name> from all performance tests #6179 2019-07-28 00:18:54 +03:00
mingroupby-orderbylimit1.xml Faster perf tests -- a good part of #9420 2020-02-28 21:32:15 +03:00
modulo.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
ngram_distance.xml Update ngram_distance.xml 2020-02-14 22:49:54 +03:00
number_formatting_formats.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
nyc_taxi.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
order_by_decimals.xml [wip] performance comparison test 2020-01-16 17:29:53 +03:00
order_by_read_in_order.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
order_by_single_column.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
parallel_insert.xml updated perftest. 2019-12-19 22:31:06 +03:00
parse_engine_file.xml Added performance test for Avro format 2020-01-18 23:10:11 +03:00
prewhere.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
random_printable_ascii.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
range.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
read_hits_with_aio.xml Remove <name> and <metrics> from performance tests fixed-5634 2019-06-18 19:55:13 +03:00
README.md Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
right.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
round_down.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
round_methods.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
scalar.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
select_format.xml Added performance test for Avro format 2020-01-18 23:10:11 +03:00
set_hits.xml Update set_hits.xml 2020-02-14 14:15:26 +03:00
set.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
simple_join_query.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
slices_hits.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
sort.xml Remove <name> and <metrics> from performance tests fixed-5634 2019-06-18 19:55:13 +03:00
string_join.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
string_set.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
string_sort.xml less flappy 2020-02-06 16:11:02 +03:00
sum_map.xml Make some performance tests faster. 2020-02-13 21:42:55 +03:00
system_numbers.xml Remove <name> and <metrics> from performance tests fixed-5634 2019-06-18 19:55:13 +03:00
trim_numbers.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
trim_urls.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
trim_whitespace.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
uniq.xml [wip] performance comparison test 2020-01-16 22:39:07 +03:00
url_hits.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
vectorize_aggregation_combinators.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
visit_param_extract_raw.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00
website.xml Removed some garbage from Performance Test 2020-01-07 12:10:36 +03:00

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.

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/