Real-World Web Application Benchmarking

Visit the post for more.

Jason Taylor
9 min readadvanced
--
View Original

Overview

The article discusses the importance of benchmarking web application performance to accurately forecast compute capacity and financial costs. It highlights the differences between industry-standard benchmarks and real-world performance, detailing Facebook's proprietary testing methodology and results from evaluating their technology stack on new micro-architectures.

What You'll Learn

1

How to benchmark web application performance using real-world traffic measurements

2

Why memory access contention is critical in determining web node throughput

3

When to use industry-standard benchmarks versus proprietary testing methodologies

Prerequisites & Requirements

  • Understanding of web application architecture and performance metrics
  • Experience with performance testing tools and methodologies(optional)

Key Questions Answered

What are the key factors to consider when benchmarking application performance?
The key factors include maximum throughput, acquisition cost, and operating cost. These factors help developers understand the performance and financial implications of their applications under real-world conditions.
How does Facebook's Dyno testing methodology work?
Dyno measures request duration as a function of throughput by observing the wall-time recorded in milliseconds to process queries. It allows for testing under controlled conditions with both organic and synthetic workloads to evaluate performance accurately.
What performance improvements were observed with the Nehalem architecture compared to Harpertown?
The Nehalem/Tylersburg node delivered a 62% increase in requests per second (RPS) compared to the Harpertown/San Clemente node, indicating significant performance gains due to advancements in memory architecture.
What role does memory access latency play in web node throughput?
Memory access latency is a significant factor affecting overall throughput. The article notes that the maximum request throughput is often limited by memory access contention, especially as applications allocate substantial memory per request.

Key Statistics & Figures

Increase in requests per second (RPS) with Nehalem architecture
62%
Compared to the Harpertown/San Clemente node
Performance-per-watt improvement
44%
Nehalem/Tylersburg platform compared to Harpertown/San Clemente
Contention-induced latency threshold
100ms
Defined as the threshold for 100% utilization

Technologies & Tools

Some links below are affiliate links. We may earn a commission if you make a purchase.

Backend
Php
Used for web applications at Facebook
Backend
C++
Used for performance-critical applications
Backend
Erlang
Part of Facebook's technology stack
Hardware
Intel Nehalem
Micro-architecture evaluated for performance improvements
Hardware
Intel Harpertown
Previous micro-architecture compared against Nehalem
Operating System
Centos 5
Operating system used in the testing environment

Key Actionable Insights

1
Implement a proprietary benchmarking methodology similar to Dyno to better understand application performance under real-world conditions.
By simulating organic traffic and measuring performance metrics, developers can gain insights that industry-standard benchmarks may not provide.
2
Focus on optimizing memory access patterns in your applications to improve throughput.
Since memory access contention is a common bottleneck, optimizing how your application interacts with memory can lead to significant performance gains.
3
Consider the performance-per-watt metric when evaluating new hardware for your server fleet.
This metric helps in understanding the total cost of ownership (TCO) and ensures that performance improvements do not come at an unsustainable power cost.

Common Pitfalls

1
Relying solely on industry-standard benchmarks can lead to inaccurate assessments of application performance.
These benchmarks may not reflect real-world usage patterns, which can result in overestimating or underestimating the performance capabilities of your application.
2
Neglecting the impact of memory access latency on throughput.
Many developers may overlook how memory contention can bottleneck performance, leading to suboptimal application design and resource allocation.

Related Concepts

Benchmarking Methodologies
Performance Optimization Techniques
Micro-architecture Comparisons
Total Cost Of Ownership (tco) Considerations