Commit Graph

49 Commits

Author SHA1 Message Date
Azat Khuzhin
9e622b5add perf: switch *_log tables to Memory engine (attempt to reduce cache misses)
trace_log/query_log from performance tests shows (for
cases when prewarm query fails with timeout, 15sec) excessive
writeTraceInfo() in trace_log and QueryProfilerRuns in query_log, but
this is not the root cause of the timeout, but consequence.

Also query_log shows that on failures the following profile events has
significantly higher values:
- PerfLocalMemoryMisses (6.3x more)
- PerfLocalMemoryReferences (7x more)
- PerfDataTLBMisses (6.9x more)
- PerfInstructionTLBMisses (6.4x more)

During looking at performance tests logs I noticed that once the prewarm
query fails other server (left/right) was merging (MergeTree) something
in *_log tables.

But, using MergeTree for *_log in performance tests is useless, since
anyway environment for performance tests uses ramdrive.

And so MergeTree merges just increase overhead.

Eventually I expect that this should decrease extra memory referencing
and so this should decrease cache/TLB misses.

CI: https://clickhouse-test-reports.s3.yandex.net/30886/c504e0c08df7a926bb479a1d297f326f5c48a32f/performance_comparison/report.html#fail1

v2: <partition_by remove="remove"/>
2021-11-04 09:26:46 +03:00
Azat Khuzhin
ff19d22305 perf: remove over *_log tables that does not exported into artifacts 2021-11-03 08:29:18 +03:00
Azat Khuzhin
837fe8554f perf: remove zookeeper to avoid configuring DDLWorker 2021-11-03 08:29:18 +03:00
Azat Khuzhin
acef85b17d perf: cleanup server overrides 2021-11-03 08:29:18 +03:00
Azat Khuzhin
7957079f95 perf: disable query/memory profiling for non prewarm queries 2021-10-27 23:20:51 +03:00
Alexey Milovidov
fb7ce28198 Merge branch 'master' into yandex-to-clickhouse-in-configs 2021-09-26 02:10:11 +03:00
Alexey Milovidov
90e74aff70 Fix performance test 2021-09-26 02:08:46 +03:00
Alexey Milovidov
e513a5db32 Change <yandex> to <clickhouse> in configs 2021-09-20 01:38:53 +03:00
Alexey Milovidov
143744f5a7 Fix perf test 2021-08-31 02:53:55 +03:00
Maksim Kita
577e69898a Compile aggregate functions perf tests fix 2021-07-05 12:17:01 +03:00
Maksim Kita
d78c1f11d0 Performance tests disable compile expressions 2021-05-12 11:06:10 +03:00
Azat Khuzhin
6fba6f7ddd Disable min_bytes_to_use_mmap_io by default
Reading files using mmap() does not have any significant benefits over
plain read() [1].

  [1]: https://gist.github.com/azat/3d6c8d82bdd91e7a38d997fd6bcfd574

And not only it does not have significant benefits, it also has some
issues, due to max_server_memory_usage (default to 90% of available
RAM), since when you read files with mmap() eventually process RSS may
exceed max_server_memory_usage, and in this case any allocation will
fail (with "Memory limit exceeded (total)") error (yes kernel will
unload pages, but likely it will happens after queries will starting to
fail), like in this test [2].

  [2]: https://gist.github.com/azat/4813489828162e6c2ce131963c6a1acb

TL;DR;

Note that there was also an idea to take those mmap()'ed regions in
memory tracking (#23211), but there are some drawbacks (since accounting
mmap() is tricky, first of all you need to account only once per inode
for file and plus kernel can unload some pages and those memory will not
be used by the server anymore).

And as an adddition to #23211 there was #23212, that adds
max_bytes_to_use_mmap_io, but since mmap is not a subject for memory
accounting there is no need in it.
2021-04-20 00:25:16 +03:00
Azat Khuzhin
7083d126f7 Disable postgresql_port in perf tests
To avoid port overlaps
2021-04-17 15:28:09 +03:00
Alexander Tokmakov
9925110713 rename other occurrances 2021-03-29 23:04:50 +03:00
Denis Glazachev
6f4e883d8d Factor out settings
Enable parallel insert select
Reduce the amount of data to process
2021-03-06 15:09:45 +04:00
Nikolai Kochetov
a195e783d2 Try fix perftests. 2021-03-04 13:25:49 +03:00
Nikolai Kochetov
019513d869 Try fix perftests. 2021-03-03 13:42:44 +03:00
Azat Khuzhin
95c35b318e Avoid using symlinks for top_level_domains
Move the main copy into the tests/config and ship it to the perf tests
via the perf package.
2020-12-15 21:58:46 +03:00
Alexander Kuzmenkov
5f424f7c5c
Update zzz-perf-comparison-tweaks-config.xml 2020-12-14 20:08:32 +03:00
Alexander Kuzmenkov
e7f93b5563
Merge pull request #18058 from azat/perf-test-zk-port-fix
Remove test_keeper_server in perf tests
2020-12-14 17:54:47 +03:00
Alexander Kuzmenkov
2edabd5519
Update zzz-perf-comparison-tweaks-config.xml 2020-12-14 17:45:58 +03:00
Azat Khuzhin
653ddab63e Remove test_keeper_server in perf tests
To avoid port overlaps for right and left server (anyway it is not
used).
2020-12-14 10:59:01 +03:00
Azat Khuzhin
6f2c559398 Convert top_level_domains_lists.xml into regular file
docker/test/performance-comparison/config/config.d is not allowed to has
symlinks, since it is copied with the COPY docker command.
2020-12-10 21:01:17 +03:00
Azat Khuzhin
0f1d9f3a6f Put top_level_domains into the docker/test/performance-comparison/config
Since in docker/test/performance-comparison there is Dockerfile that is
runned from that directory, so it cannot COPY anything outside of it.
2020-12-09 21:08:31 +03:00
Azat Khuzhin
8a4b29495b perf: override top_level_domains_path via command line arguments 2020-12-09 21:08:31 +03:00
Azat Khuzhin
7b0c720922 Add top_level_domains into perf tests
And change Dockerfile to trigger image rebuild
2020-12-09 21:08:31 +03:00
Azat Khuzhin
79e6348282 perf: load overrides last of all 2020-12-09 07:31:54 +03:00
Azat Khuzhin
d33b0ad33b Use interserver_http_port remove=remove over auto-port
Revert "perf: fix port conflict for tcp_with_proxy_port"

This reverts commit 89b3566824e5c0a87b6310fc4b6f9d300d2e17db.
2020-12-09 00:11:12 +03:00
Alexander Kuzmenkov
030419db90 Try 12 threads max in perf test.
This will allow us to use more machines, not only Gold 6320.
2020-11-09 19:14:05 +03:00
Alexander Kuzmenkov
8d5fe1148c add client config 2020-11-04 18:07:34 +03:00
Alexander Kuzmenkov
764f19820b max threads 2020-10-19 17:39:52 +03:00
Alexey Milovidov
35e8a895b6 Calculate profiler data in separate query runs 2020-09-19 20:38:21 +03:00
Alexey Milovidov
b87c108246 Enable remap in performance tests 2020-09-14 21:14:28 +03:00
Alexander Kuzmenkov
000326b627 Avoid timeouts in perf test 2020-08-19 18:08:23 +03:00
Alexander Kuzmenkov
f514d0da77
Revert "Run perf tests with memory sampling (for allocations >1M)" 2020-07-07 19:59:42 +03:00
Azat Khuzhin
307c3c92a5 Run perf tests with memory sampling (for allocations >1M)
This is to know the memory allocation size distribution, that can be
obtained later from left-metric-log.tsv.

This is an attempt to tune tcmalloc (new CPP version by google) to use
lock-free part of the allocator for typical allocations (and it is a bad
idea just to increase kMaxSize there, since number of allocation for
each size class is also important).

P.S. hope that this file will be applied, if no, then the same effect
can be reached by tunning defaults in Settings.h

Refs: #11590
Cc: @akuzm
2020-07-05 12:43:12 +03:00
Alexander Kuzmenkov
8b82ff215f muzzy decay 10 ms 2020-06-27 04:08:21 +03:00
Alexander Kuzmenkov
b14cc1dc56
Merge pull request #11449 from ClickHouse/check-for-incorrect-settings
Added a check for incorrect settings
2020-06-06 00:15:27 +03:00
Alexander Kuzmenkov
14c55b940e
peftest settings: use_uncompressed_cache goes to profile 2020-06-05 16:32:21 +03:00
Alexander Kuzmenkov
377da4656d cleanup 2020-06-04 18:51:34 +03:00
Alexander Kuzmenkov
f6dd8d3f78
Enable perf event metrics in performance test 2020-05-23 04:40:57 +03:00
Alexander Kuzmenkov
93e0313ed4
boop the CI 2020-04-14 01:40:07 +03:00
Alexander Kuzmenkov
bcc77fc96a
Update perf-comparison-tweaks-config.xml 2020-04-06 23:42:20 +03:00
Nikolai Kochetov
8e18f56d4f Try fix perftest distributed_aggregation.xml 2020-04-01 14:53:09 +03:00
Alexander Kuzmenkov
5fd5b15c36 performance comparison 2020-03-24 20:33:42 +03:00
Alexander Kuzmenkov
fe1eb691fd
Update perf-comparison-tweaks-config.xml 2020-03-23 23:53:25 +03:00
Alexander Kuzmenkov
d396a7c650 Some tweaks for performance comparison 2020-03-23 12:39:12 +03:00
Alexander Kuzmenkov
ea67cba608 performance comparison 2020-02-25 22:51:27 +03:00
Alexander Kuzmenkov
ebe70f5bcb performance comparison 2020-02-25 16:12:26 +03:00