Infos
09:00 - 17:00
Description
A key part of any organization’s testing strategy is the performance test harness. Without access to accurate telemetry and results, it is difficult to reason about the limits of a system’s performance. We place our trust in various tools to place our services under stress, but how can we be sure that the outputs from these tests reflect reality?
This full-day course explores how to validate that your load-testing harness is producing accurate results. Attendees will develop and iterate on a load-test harness to measure the responsiveness of a simple microservice. The course will cover how to measure and report system throughput and latency, and how to measure the system-under-test to understand where bottlenecks lie.
Key takeaways:
- JVM internals
- System profiling tools
- Benchmarking methods
- Performance monitoring and metrics collection
- High-performance programming techniques
Audience & Requirements
Workshop attendees should ensure that they have the following installed:
Gradle 3.2.1+
Latest _Oracle_ JDK 1.8 (not OpenJDK, not JRE)
For Linux users:
clone the grav repository:
https://github.com/epickrram/grav
clone the perf-map-agent repository:
https://github.com/jvm-profiling-tools/perf-map-agent
(and follow installation instructions)
clone the Flamegraph repository:
https://github.com/brendangregg/Flamegraph
All code samples will work cross-platform, but advanced profiling techniques are only possible on Linux systems.
Attendees running MacOS/Windows should dual-boot to Linux if possible, or run a Linux VM to participate in all exercises.
Some exercises will require a machine with 4 or more hardware threads.
All exercises will be demonstrated by the presenter, so don’t worry if you don’t have a Linux system.