SlideShare a Scribd company logo
Fusion-io and MySQL 5.5at CraigslistJeremy ZawodnyJeremy@Zawodny.comjzawodn@craigslist.org
Story Time(but first, some architectureand numbers)
Some Numbers~100,000,000 postings in live databaseOver 1,000,000,000 page views dailyHigh churn rate (avg lifetime ~14 days)~350-500GB on diskMySQL 5.5.x and InnoDB CompressionUsed to be ~100-150GB larger (or more!)All records touched multiple times98% of queries are OLTP
The Posting CacheWeb Server Tier(apache/mod_perl)Posting Cache Tier(memcached + perl)Database Tier(MySQL)
The ProblemAdding more memcached nodesLots of cache misses initiallyMySQL boxes take a big query load(time passes)MySQL boxes pegged many hours later(time passes)Next day: WTF?!
Fire!Web Server Tier(apache/mod_perl)We were sending nearly 30% of requests all the way back to the DB tier instead of the normal 2-5%Posting Cache Tier(memcached + perl)Database Tier(MySQL)
SolutionLet’s put the New Hardware in the poolAdd 4 machinesAnd it still sucked…The 4 were fast but only took ~20% of the hitsRemove all the Old HardwareRemove 14 of 18 machinesSounds totally sane, right?
Old Hardware3 years old3U, Dual AMD 2218 HE32GB RAM16 15k RPM SAS disksRAID-10~2,000 iops/sec~325 watts
New HardwareHP DL-380G6Intel Xeon X5570Dual Proc, Quad Core, HT16 “cores”Dual Fusion-io 640GB SLCSoftware RAID-0~80,000 iops/sec (conservative)~200 watts
Before and AfterLoad AverageI/O Capacity of Data DisksNight and Day!Old boxes return to “steady state”
This Chart Should be GreenAverage power for Fusion-io equipped server: ~200 watts.It was closer to 160 when replicating but not serving traffic.
Fusion-io FTWCan you tell when this machine started getting live traffic?OLTP means disk matters WAY more than CPUInto the fire!
The NumbersOld: 2,000iops / 325W = 6.15 iops/wattNew: 40,000iops / 200W = 200 iops/wattConservatively assumes a lot of degradation33-66x performance/wattBut let’s just call it 50x
EpilogueA week later, we re-purposed 1 Fusion-io boxThe cache eventually did fillPoor slab size configuration had been causing early expiration of cached objects14 “old” servers: 4,500 watts28,000 iops/sec capacity3 “new” servers: 570 watts240,000+ iops/sec capacityWhat to do with 10+ spare “db class” boxes?

More Related Content

ODP
MySQL And Search At Craigslist
KEY
Sphinx at Craigslist in 2012
PPTX
Lessons Learned Migrating 2+ Billion Documents at Craigslist
PDF
Realtime Search Infrastructure at Craigslist (OpenWest 2014)
KEY
Living with SQL and NoSQL at craigslist, a Pragmatic Approach
PDF
Zero to 1 Billion+ Records: A True Story of Learning & Scaling GameChanger
PPTX
Understanding and tuning WiredTiger, the new high performance database engine...
PDF
Real time fulltext search with sphinx
MySQL And Search At Craigslist
Sphinx at Craigslist in 2012
Lessons Learned Migrating 2+ Billion Documents at Craigslist
Realtime Search Infrastructure at Craigslist (OpenWest 2014)
Living with SQL and NoSQL at craigslist, a Pragmatic Approach
Zero to 1 Billion+ Records: A True Story of Learning & Scaling GameChanger
Understanding and tuning WiredTiger, the new high performance database engine...
Real time fulltext search with sphinx

What's hot (20)

PPTX
Managing 50K+ Redis Databases Over 4 Public Clouds ... with a Tiny Devops Team
PDF
Optimizing MongoDB: Lessons Learned at Localytics
PDF
Frontera распределенный робот для обхода веба в больших объемах / Александр С...
PDF
«Scrapy internals» Александр Сибиряков, Scrapinghub
PPTX
Introduction to Redis
PDF
MongoUK - Approaching 1 billion documents with MongoDB1 Billion Documents
PDF
Webinar - Approaching 1 billion documents with MongoDB
PDF
Using Sphinx for Search in PHP
PDF
Boosting Machine Learning with Redis Modules and Spark
KEY
MongoFr : MongoDB as a log Collector
PDF
企業・業界情報プラットフォームSPEEDAにおけるElasticsearchの活用
PPTX
Attack monitoring using ElasticSearch Logstash and Kibana
PPTX
A simple introduction to redis
PDF
MyRocks Deep Dive
PPTX
Ops Jumpstart: Admin 101
PDF
Fluentd - Flexible, Stable, Scalable
PPTX
Webinar Back to Basics 3 - Introduzione ai Replica Set
PDF
Monitoramento com ELK - Elasticsearch - Logstash - Kibana
PDF
PostgreSQL - масштабирование в моде, Valentine Gogichashvili (Zalando SE)
PDF
Mongodb
Managing 50K+ Redis Databases Over 4 Public Clouds ... with a Tiny Devops Team
Optimizing MongoDB: Lessons Learned at Localytics
Frontera распределенный робот для обхода веба в больших объемах / Александр С...
«Scrapy internals» Александр Сибиряков, Scrapinghub
Introduction to Redis
MongoUK - Approaching 1 billion documents with MongoDB1 Billion Documents
Webinar - Approaching 1 billion documents with MongoDB
Using Sphinx for Search in PHP
Boosting Machine Learning with Redis Modules and Spark
MongoFr : MongoDB as a log Collector
企業・業界情報プラットフォームSPEEDAにおけるElasticsearchの活用
Attack monitoring using ElasticSearch Logstash and Kibana
A simple introduction to redis
MyRocks Deep Dive
Ops Jumpstart: Admin 101
Fluentd - Flexible, Stable, Scalable
Webinar Back to Basics 3 - Introduzione ai Replica Set
Monitoramento com ELK - Elasticsearch - Logstash - Kibana
PostgreSQL - масштабирование в моде, Valentine Gogichashvili (Zalando SE)
Mongodb
Ad

Viewers also liked (10)

PPT
SphinxSearch
PDF
Managing Big Data with MySQL
PPTX
Sphinx - High performance full-text search for MySQL
PPTX
MySQL Indexing - Best practices for MySQL 5.6
PPTX
MySQL Performance Tips & Best Practices
PPT
Fast querying indexing for performance (4)
PDF
MySQL Performance Tuning: Top 10 Tips
PDF
How to Design Indexes, Really
PDF
10 SQL Tricks that You Didn't Think Were Possible
PPTX
Indexing with MongoDB
SphinxSearch
Managing Big Data with MySQL
Sphinx - High performance full-text search for MySQL
MySQL Indexing - Best practices for MySQL 5.6
MySQL Performance Tips & Best Practices
Fast querying indexing for performance (4)
MySQL Performance Tuning: Top 10 Tips
How to Design Indexes, Really
10 SQL Tricks that You Didn't Think Were Possible
Indexing with MongoDB
Ad

Similar to Fusion-io and MySQL at Craigslist (20)

PPT
Mysql talk
PPT
Scaling With Postgres
PDF
Answering the Database Scale Out Problem with PCI SSDs
PDF
Fusion-IO - Building a High Performance and Reliable VSAN Environment
PDF
Pluk2013 bodybuilding ratheesh
PPTX
What every data programmer needs to know about disks
PDF
MySQL Performance Tuning London Meetup June 2017
PDF
PhpTek Ten Things to do to make your MySQL servers Happier and Healthier
PPTX
Nexcess Magento Imagine 2014 Performance Breakout
PDF
The Smug Mug Tale
PDF
My Sql And Search At Craigslist
PDF
Evolution of DBA in the Cloud Era
ODP
The care and feeding of a MySQL database
PDF
Webinar slides: Our Guide to MySQL & MariaDB Performance Tuning
PDF
Database performance tuning for SSD based storage
PDF
OSDC 2016 - Tuning Linux for your Database by Colin Charles
PDF
Perconalive feb-2011-share
PDF
2008 MySQL Conference Recap
PDF
Performance Whack A Mole
PDF
Presentation database on flash
Mysql talk
Scaling With Postgres
Answering the Database Scale Out Problem with PCI SSDs
Fusion-IO - Building a High Performance and Reliable VSAN Environment
Pluk2013 bodybuilding ratheesh
What every data programmer needs to know about disks
MySQL Performance Tuning London Meetup June 2017
PhpTek Ten Things to do to make your MySQL servers Happier and Healthier
Nexcess Magento Imagine 2014 Performance Breakout
The Smug Mug Tale
My Sql And Search At Craigslist
Evolution of DBA in the Cloud Era
The care and feeding of a MySQL database
Webinar slides: Our Guide to MySQL & MariaDB Performance Tuning
Database performance tuning for SSD based storage
OSDC 2016 - Tuning Linux for your Database by Colin Charles
Perconalive feb-2011-share
2008 MySQL Conference Recap
Performance Whack A Mole
Presentation database on flash

Recently uploaded (20)

PDF
cuic standard and advanced reporting.pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Electronic commerce courselecture one. Pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
A comparative analysis of optical character recognition models for extracting...
PPTX
A Presentation on Artificial Intelligence
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPT
Teaching material agriculture food technology
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
cuic standard and advanced reporting.pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Electronic commerce courselecture one. Pdf
Advanced methodologies resolving dimensionality complications for autism neur...
A comparative analysis of optical character recognition models for extracting...
A Presentation on Artificial Intelligence
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Teaching material agriculture food technology
MIND Revenue Release Quarter 2 2025 Press Release
MYSQL Presentation for SQL database connectivity
Assigned Numbers - 2025 - Bluetooth® Document
Spectral efficient network and resource selection model in 5G networks
Mobile App Security Testing_ A Comprehensive Guide.pdf
gpt5_lecture_notes_comprehensive_20250812015547.pdf
20250228 LYD VKU AI Blended-Learning.pptx
Per capita expenditure prediction using model stacking based on satellite ima...
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Programs and apps: productivity, graphics, security and other tools
Diabetes mellitus diagnosis method based random forest with bat algorithm

Fusion-io and MySQL at Craigslist

  • 1. Fusion-io and MySQL 5.5at CraigslistJeremy [email protected]@craigslist.org
  • 2. Story Time(but first, some architectureand numbers)
  • 3. Some Numbers~100,000,000 postings in live databaseOver 1,000,000,000 page views dailyHigh churn rate (avg lifetime ~14 days)~350-500GB on diskMySQL 5.5.x and InnoDB CompressionUsed to be ~100-150GB larger (or more!)All records touched multiple times98% of queries are OLTP
  • 4. The Posting CacheWeb Server Tier(apache/mod_perl)Posting Cache Tier(memcached + perl)Database Tier(MySQL)
  • 5. The ProblemAdding more memcached nodesLots of cache misses initiallyMySQL boxes take a big query load(time passes)MySQL boxes pegged many hours later(time passes)Next day: WTF?!
  • 6. Fire!Web Server Tier(apache/mod_perl)We were sending nearly 30% of requests all the way back to the DB tier instead of the normal 2-5%Posting Cache Tier(memcached + perl)Database Tier(MySQL)
  • 7. SolutionLet’s put the New Hardware in the poolAdd 4 machinesAnd it still sucked…The 4 were fast but only took ~20% of the hitsRemove all the Old HardwareRemove 14 of 18 machinesSounds totally sane, right?
  • 8. Old Hardware3 years old3U, Dual AMD 2218 HE32GB RAM16 15k RPM SAS disksRAID-10~2,000 iops/sec~325 watts
  • 9. New HardwareHP DL-380G6Intel Xeon X5570Dual Proc, Quad Core, HT16 “cores”Dual Fusion-io 640GB SLCSoftware RAID-0~80,000 iops/sec (conservative)~200 watts
  • 10. Before and AfterLoad AverageI/O Capacity of Data DisksNight and Day!Old boxes return to “steady state”
  • 11. This Chart Should be GreenAverage power for Fusion-io equipped server: ~200 watts.It was closer to 160 when replicating but not serving traffic.
  • 12. Fusion-io FTWCan you tell when this machine started getting live traffic?OLTP means disk matters WAY more than CPUInto the fire!
  • 13. The NumbersOld: 2,000iops / 325W = 6.15 iops/wattNew: 40,000iops / 200W = 200 iops/wattConservatively assumes a lot of degradation33-66x performance/wattBut let’s just call it 50x
  • 14. EpilogueA week later, we re-purposed 1 Fusion-io boxThe cache eventually did fillPoor slab size configuration had been causing early expiration of cached objects14 “old” servers: 4,500 watts28,000 iops/sec capacity3 “new” servers: 570 watts240,000+ iops/sec capacityWhat to do with 10+ spare “db class” boxes?