dbbench is a tool I've been working on for a while at MemSQL. It is an open source database workload driver engineers at MemSQL and I use for performance testing. One often-overlooked feature in
dbbench is the ability to replay query log files. Previously, this was a somewhat manual process …
I survey some dynamic tracers (e.g. perf, sysdig) available on Linux.
I document some pain points from recent performance investigations and then speculate that such issues are endemic to the Linux community.
I use off-cpu flame graphs to identify that repeated mmap calls are slowing my database.
We use flame graphs to identify that hgfs is the bottleneck in my build.
My coworkers presented a silly programming interview style question to me the other day: given a list of words, find the largest set of words from that list that all have the same hash value. Everyone was playing around with a different language, and someone made the claim that it …
I embarked upon a quest to understand some unexpected behavior and write a program that achieved the theoretical maximum memory bandwidth.
I've been working on writing a memory bandwidth benchmark for a while and needed to use a monotonic timer to compute accurate timings. I have since learned that this is more challenging to do that I initially expected and each platform has a different way of doing it.
Some students had some difficulty profiling their code because
omp_get_num_procswas dominating the profiling traces. I tracked it down and found that the profiling tools emitted misleading results when the library didn't have symbols.
In this article, you will see several performance tools used to identify bottlenecks in a simple program.
I implemented and tested different configurations of a modern parallel memory allocator.