Overview
The article discusses BOSS (BOttlenecks for Site Speed), a system developed at LinkedIn to automatically identify performance bottlenecks by analyzing large volumes of performance data. It highlights the challenges of manual bottleneck analysis and presents a systematic approach to improve page load times using a unified call tree model.
What You'll Learn
1
How to implement a unified call tree model for performance data analysis
2
Why analyzing 100% of traffic is essential for identifying performance bottlenecks
3
How to use the Resource Timing API to improve client-side performance analysis
Prerequisites & Requirements
- Understanding of performance metrics and bottlenecks
- Familiarity with Resource Timing API and Call Graph(optional)
Key Questions Answered
How does BOSS identify performance bottlenecks?
BOSS identifies performance bottlenecks by analyzing millions of waterfall samples and using a unified call tree model to correlate data from various sources. This systematic approach allows performance engineers to pinpoint where optimizations are needed without relying on manual trial and error.
What challenges does manual bottleneck analysis face?
Manual bottleneck analysis struggles with dealing with multiple performance data sources, handling large volumes of data, quantifying parallel calls, and interpreting complex performance metrics. These challenges can lead to missed bottlenecks and ineffective optimization efforts.
What are the key components of the call tree model used in BOSS?
The call tree model in BOSS integrates performance data from client-side and server-side sources, allowing for a comprehensive view of user requests. It tracks multiple requests stemming from a single user action, helping to trace performance issues across various systems.
What technologies are utilized in the BOSS system for data processing?
BOSS employs a Kafka + Hadoop architecture for scalable data processing, enabling the analysis of over 100 million records per day. This setup allows for efficient handling of large datasets and supports complex queries to identify bottlenecks.
Key Statistics & Figures
Records processed per day
100M+
This volume is necessary to analyze all traffic and identify the most significant performance bottlenecks.
Performance improvement from fixing bottlenecks
21%
This statistic reflects the increase in page load speed achieved after implementing changes based on bottleneck analysis.
Technologies & Tools
Some links below are affiliate links. We may earn a commission if you make a purchase.
Backend
Kafka
Used for handling large volumes of performance data in the BOSS system.
Backend
Hadoop
Employed for scalable data processing and analysis of performance metrics.
Frontend
Resource Timing API
Utilized to gather detailed timing information about resource loading on the client side.
Key Actionable Insights
1Implement a unified call tree model to streamline performance data analysis across various sources.This approach helps in correlating client-side and server-side performance metrics, making it easier to identify bottlenecks that affect page load times.
2Analyze 100% of traffic data instead of relying on samples to ensure no critical bottlenecks are overlooked.By processing all available data, you can gain a more accurate understanding of performance issues and prioritize optimizations effectively.
3Utilize the Resource Timing API to gather detailed performance metrics for client-side analysis.This data can help pinpoint specific areas of slowness, such as slow-loading images or scripts, enabling targeted optimizations.
Common Pitfalls
1
Neglecting the importance of analyzing parallel calls can lead to misidentifying bottlenecks.
Many developers focus solely on the longest request without considering how parallel requests impact overall page load time. This oversight can result in ineffective optimizations.
2
Relying on manual sampling of performance data can miss critical bottlenecks.
Manual analysis often leads to trial and error, which is inefficient. Automating the analysis process with tools like BOSS ensures comprehensive data evaluation.
Related Concepts
Performance Optimization Techniques
Data Processing Frameworks Like Hadoop
Frontend Performance Metrics And Analysis