If you can't read please download the document
Upload
dynamical-software-inc
View
553
Download
0
Embed Size (px)
Citation preview
Clojure Performance
Measuring throughputand latencyOf a news feedWeb serviceWritten in Clojure
Features
Participant Profiles
Social Graph
Social Broadcast
Inbound Activity
Outbound Activity
Keyword Search
Components
Postgresql
Cassandra
Solr
Kafka
Redis
Jetty
Source Code
https://github.com/gengstrand/clojure-news-feed
AWS Deployment
Ubuntu Server 12.04.3 LTS 64 bit
Servers (no provisioned IOPs)m1.medium (2 ECUs, 1 vCPUs, 3.7 GiB memory, 1 x 410 GiB Storage Capacity)
Database (RDS)db.m1.medium
Client Load Machinem1.large (4 ECUs, 2 vCPUs, 7.5 GiB memory, 2 x 420 GiB Storage Capacity)
Throughput
Throughput
100 threads
Connection pool max size: 50
5 < Social Broadcast < 50
10 posts per user
10% searches
55 posts per second
Latency Overall
Poor at the beginning cold cache
Really good 15 minutes in
Bad spike near the end of the first hour
Steady performance in the second hour
Postgresql Latency
Cassandra Latency
Solr Latency
Web Service Latency
Summary
Cloud Spike
Postgresql latency similar to Cassandra
Solr indexing twice as slow
Between 50 and 70 requests per second
Clojure just as fast as Java
Jetty performed well
Thanks
Glenn Engstrand
Click to edit the title text format
Click to edit the title text format
Click to edit the title text format
Click to edit the title text format