Bottom-up Database Benchmarking

Talk Type: 
45 Minute Talk
Technical Level: 
Creative Commons - Attribution Only

While databases are increasingly being distributed across multiple nodes, the performance of every node still matters--especially if you're considering virtualized or cloud deployments that have their own specific trade-offs. Memory performance scaling as core count changes, all aspects of disk performance, and using pgbench to test PostgreSQL are all topics covered here.

The increasing use of virtual hardware and multi-node clusters makes the performance of individual nodes seem less relevant than it used to be. But databases have unique consistency and workload requirements that still make hardware performance and choice critical. And particularly with the complexity of today's hardware, running your own bottom-up benchmarks is vital for defending against the very common hardware vendor errors you should expect to happen to you eventually, not be surprised by. A large percentage of new server hardware ships with at least one major performance issue. Deploy a production server without making sure the hardware itself performs as expected, and troubleshooting the resulting problems is vastly more difficult.

Oh, and don't forget one more thing--the information you need to know to make informed hardware changes changes constantly. This session includes the speaker's latest unique research into database performance tuning, which includes a variety of custom-designed tools aimed at this area. The "stream-scaling" project provides a new way to visualize how memory performance scales with the number of active cores involved in the workload, a vital component to quantify on today's many core designs when running a database server. stream-scaling highlights the speed vs. capacity trade-offs in server memory you must be aware of to size the latest server hardware appropriately. The recently developed "seek-scaling" uses the same approach to reinvent measuring disk speed for databases much larger than the RAM in the server. And the benchmarking automation set of "pgbench-tools" is now easier than ever to use for comparing the performance of different systems or server configurations.