Skip to content

Add TLB misses perf counters.#12033

Merged
akuzm merged 6 commits intomasterfrom
aku/tlb-perf-counter
Jun 30, 2020
Merged

Add TLB misses perf counters.#12033
akuzm merged 6 commits intomasterfrom
aku/tlb-perf-counter

Conversation

@akuzm
Copy link
Contributor

@akuzm akuzm commented Jun 29, 2020

Changelog category (leave one):

  • Not for changelog (changelog entry is not required)

@blinkov blinkov added the pr-not-for-changelog This PR should not be mentioned in the changelog label Jun 29, 2020
@akuzm
Copy link
Contributor Author

akuzm commented Jun 30, 2020

Well, it does show something (average relative data tlb misses for perf tests):

$ clickhouse-local --query "select floor((sumMap([metric_name], [right]).2 as a)[1]/a[2], 5) tlb_misses, test from file('report/query-metric-stats.tsv', TSVWithNamesAndTypes, 'metric_name text, left float, right float, diff float, stat_threshold float, test text, query_index int, query_display_name text') where metric_name like '%DataTLB%' group by test order by tlb_misses desc limit 10 format PrettySpace"
 tlb_misses   test                                    

    0.02094   simple_join_query                        
    0.02064   string_set                               
    0.01548   string_join                              
    0.00652   distributed_aggregation_memory_efficient 
    0.00606   removing_group_by_keys                   
    0.00554   synthetic_hardware_benchmark             
    0.00492   decimal_aggregates                       
    0.00453   uniq                                     
    0.00452   agg_functions_min_max_any                
     0.0045   set_hits                                 

Let's see if it helps when we have another mysterious arihmetic speedup.
Instruction TLB data make less sense (these are relative values, not percent):

$ clickhouse-local --query "select floor((sumMap([metric_name], [right]).2 as a)[1]/a[2], 5) tlb_misses, test from file('report/query-metric-stats.tsv', TSVWithNamesAndTypes, 'metric_name text, left float, right float, diff float, stat_threshold float, test text, query_index int, query_display_name text') where metric_name like '%InstructionTLB%' group by test order by tlb_misses desc limit 10 format PrettySpace"
 tlb_misses   test                      

   15.89152   sum_map                    
   14.18856   string_join                
   11.94182   string_set                 
    6.46297   arithmetic                 
    5.21992   point_in_polygon           
    5.04008   decimal_aggregates         
    3.66157   jit_large_requests         
    3.51341   select_format              
    3.30932   functions_with_hash_tables 
    3.17226   number_formatting_formats  

Apparently you can't treat them as relative values: https://stackoverflow.com/questions/49933319/how-to-interpret-perf-itlb-loads-itlb-load-misses
I'll still leave them like this, maybe they'll be useful to compare the servers.

@akuzm akuzm merged commit 094334d into master Jun 30, 2020
@akuzm akuzm deleted the aku/tlb-perf-counter branch June 30, 2020 11:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pr-not-for-changelog This PR should not be mentioned in the changelog

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants