Back of the envelope Calculations
Web
Low
High
Low
Application
High
Medium
Medium
Storage
Low
Medium
High
Facebook open-sourced its data center design in 2011
Web Servers - 32GB RAM, 500GB Storage, For high end computations - Custom 16 core processors (partnered with Intel)
Application Servers - RAM up to 256GB, and Storage (Disk + Flash) - up to 6.5TB
Storage Servers, youtube example
Blob Storage - for its encoded videos
A temporary processing queue storage that can hold a few hundred hours of video content uploaded daily to YouTube for processing
Specialized storage called Bigtable for storing a large number of thumbnails of videos.
RDBMS - Relational database management system for users and videos metadata
Typical Server Specifications
No. of sockets - 2
Processors - Intel Xeon X2686
No. of cores - 36 cores (72 threads)
RAM - 256 GB
Cache L3 - 45 MB
Storage Capacity - 15TB
Important Latencies
L1 cache reference
0.9
L2 cache reference
2.8
L3 cache reference
12.9
Main memory reference
100
Compress 1KB with Snzip
3,000 (3 microseconds)
Read 1MB sequentially from memory
9,000 (9 microseconds)
Read 1MB sequentially from SSD
200,000 (200 microseconds)
Roundtrip within the same data center
500,000 (500 microseconds)
Read 1MB sequentially from SSD with speed ~1DB/sec SSD
1,000,000 (1ms)
Disk seek
4ms
Read 1MB sequentially from disk
2ms
Send packet SF->NYC
71ms
Important Rates / QPS
QPS = Queries per second
MySQL
1,000
Key-value store
10,000
Cache server
100,000 - 1M
Requests estimations
RPS = Requests per second
CPU bound requests
Memory bound requests
RPS_CPU = NUM_CPU / Task time
RPS Memory = RAM_SIZE / (WORKER_MEMORY X TASK_TIME)
Eg. for RPS_CPU, Assuming each tasks takes 200ms and the CPU has 72 threads
RPS_CPU = 72 / 200ms = 360RPPS
Eg. for RPS Memory, Assuming Each worker needs 300MB, and takes 50ms for a request for a server with 240GB RAM,
240GB/(300MB * 50MS) = 16000RPS
Last updated
Was this helpful?