Skip to content
Ahmad Yasin edited this page Dec 26, 2024 · 26 revisions

Welcome to the perf-tools wiki!

  • Vision

Structured SW Tuning flow - Ahmad Yasin, May 2022

Trainings

Instruction mixes

JIT profiling

Windows support

Retire-Latency DB

Useful tools

profilers

Intel PCM

perf

scalene, coz

VTune

workloads

stress-ng

Clickhouse (database)

Quick install with Ontime dataset.

Start server on 8-cores: cd /path/to/ClickHouse/data && numactl -C 4-11 ./clickhouse server -C lz4_config.xml &

Start clients: cd /path/to/ClickHouse/data && numactl -C 64-80 clients.sh where clients.sh spawns 16-processes where each execute the following query say 10 times.

./clickhouse client --port=9000 --multiquery "SELECT avg(c1) FROM ( SELECT Year, Month, count(*) AS c1 FROM ontime GROUP BY Year, Month );SELECT DayOfWeek, count(*) AS c FROM ontime WHERE Year>=2000 AND Year<=2008 GROUP BY DayOfWeek ORDER BY c DESC;SELECT DayOfWeek, count(*) AS c FROM ontime WHERE DepDelay>10 AND Year>=2000 AND Year<=2008 GROUP BY DayOfWeek ORDER BY c DESC;SELECT Origin, count(*) AS c FROM ontime WHERE DepDelay>10 AND Year>=2000 AND Year<=2008 GROUP BY Origin ORDER BY c DESC LIMIT 10;SELECT IATA_CODE_Reporting_Airline AS Carrier, count(*) FROM ontime WHERE DepDelay>10 AND Year=2007 GROUP BY Carrier ORDER BY count(*) DESC;SELECT IATA_CODE_Reporting_Airline AS Carrier, avg(DepDelay>10)*100 AS c3 FROM ontime WHERE Year=2007 GROUP BY Carrier ORDER BY c3 DESC;SELECT IATA_CODE_Reporting_Airline AS Carrier, avg(DepDelay>10)*100 AS c3 FROM ontime WHERE Year>=2000 AND Year<=2008 GROUP BY Carrier ORDER BY c3 DESC;SELECT Year, avg(DepDelay>10)*100 FROM ontime GROUP BY Year ORDER BY Year;SELECT DestCityName, uniqExact(OriginCityName) AS u FROM ontime WHERE Year >= 2000 and Year <= 2010 GROUP BY DestCityName ORDER BY u DESC LIMIT 10;SELECT Year, count(*) AS c1 FROM ontime GROUP BY Year;SELECT min(Year), max(Year), IATA_CODE_Reporting_Airline AS Carrier, count(*) AS cnt, sum(ArrDelayMinutes>30) AS flights_delayed, round(sum(ArrDelayMinutes>30)/count(*),2) AS rate FROM ontime WHERE DayOfWeek NOT IN (6,7) AND OriginState NOT IN ('AK', 'HI', 'PR', 'VI') AND DestState NOT IN ('AK', 'HI', 'PR', 'VI') AND FlightDate < '2010-01-01' GROUP by Carrier HAVING cnt>100000 and max(Year)>1990 ORDER by rate DESC LIMIT 1000;"

Performance is measured by average execution time of above query.

Stop server: killall clickhouse

resources

Multicore Performance Scalability via VTune (whitepaper)

Performance Analysis and Tuning on Modern CPUs (book by Denis Bakhvalov)

Related pages

Yasin's publications

github.com/intel/perfmon

Pyramid of Platform Analysis and Optimizations

Clone this wiki locally