memcacheD performance

Ben Manes ben_manes at yahoo.com
Wed Jul 25 07:37:22 UTC 2007


Darpan,
You're pretty lucky - I was writing a performance test to judge the latency of our memcached implementation so that we'd know what to expect when its rolled out to production.  The total time represents the time it takes to perform the operation on all N elements, while the mean time is the average time of a single operation.  For our tests, N=20,000 is good enough to get an accurate idea.

Comments appreciated.

Best regards,
Ben

* Using standard Java client.
* All scenarios are executed concurrently (only 2 presently).
* A random set of keys are used (removes cache locality issues).
* Using application code path to simulate real-world requests (local caches invalidated).
** Environment #1 is running an older build than environment #2.

#1) Performance environment (client: 4x-Xeon 3.2GHz, 4GB, Red Hat 3.4.6; server: 4x-Xeon 2.8GHz, 4GB, Red Hat 3.4.6, Oracle 9i, caches: 2x-1GB instances on equivalent machine as client)
A) Compression enabled.
---------- Scenario: Customer Test ----------
- Put:
  * Remote Cache (total): 0:03:37.647 (h:m:s.mi)
  * Remote Cache (mean): 10,882,350 (ns)
- Retrieval:
  * Database (total): 0:00:27.029 (h:m:s.mi)
  * Database (mean): 1,351,450 (ns)
  * Remote Cache (total): 0:00:37.900 (h:m:s.mi)
  * Remote Cache (mean): 1,895,000 (ns)
- Removal:
  * Remote Cache (total): 0:00:23.912 (h:m:s.mi)
  * Remote Cache (mean): 1,195,600 (ns)
- Test Statistics:
  * Number of elements used: 20,000
  * Number of available elements: 96,880
  * Mean element size: 10.4326171875Kb

---------- Scenario: Customer View Test ----------
- Put:
  * Remote Cache (total): 0:05:24.534 (h:m:s.mi)
  * Remote Cache (mean): 0:00:00.016 (h:m:s.mi)
- Retrieval:
  * Database (total): 0:00:26.767 (h:m:s.mi)
  * Database (mean): 1,338,350 (ns)
  * Remote Cache (total): 0:00:41.900 (h:m:s.mi)
  * Remote Cache (mean): 2,095,000 (ns)
- Removal:
  * Remote Cache (total): 0:00:24.681 (h:m:s.mi)
  * Remote Cache (mean): 1,234,050 (ns)
- Test Statistics:
  * Number of elements used: 20,000
  * Number of available elements: 96,880
  * Mean element size: 203.923828125Kb

B) Compression disabled.
---------- Scenario: Customer Test ----------
- Put:
  * Remote Cache (total): 0:01:52.540 (h:m:s.mi)
  * Remote Cache (mean): 5,627,000 (ns)
- Retrieval:
  * Database (total): 0:00:26.721 (h:m:s.mi)
  * Database (mean): 1,336,050 (ns)
  * Remote Cache (total): 0:00:31.198 (h:m:s.mi)
  * Remote Cache (mean): 1,559,900 (ns)
- Removal:
  * Remote Cache (total): 0:00:22.722 (h:m:s.mi)
  * Remote Cache (mean): 1,136,100 (ns)
- Test Statistics:
  * Number of elements used: 20,000
  * Number of available elements: 96,880
  * Mean element size: 11.0693359375Kb

---------- Scenario: Customer View Test ----------
- Put:
  * Remote Cache (total): 0:02:11.640 (h:m:s.mi)
  * Remote Cache (mean): 6,582,000 (ns)
- Retrieval:
  * Database (total): 0:00:26.283 (h:m:s.mi)
  * Database (mean): 1,314,150 (ns)
  * Remote Cache (total): 0:00:30.462 (h:m:s.mi)
  * Remote Cache (mean): 1,523,100 (ns)
- Removal:
  * Remote Cache (total): 0:00:22.828 (h:m:s.mi)
  * Remote Cache (mean): 1,141,400 (ns)
- Test Statistics:
  * Number of elements used: 20,000
  * Number of available elements: 96,880
  * Mean element size: 203.8330078125Kb


#2) Development machine (4x-Xeon 2.33GHz, 4GB, Red Hat 3.4.6, Oracle 9i)
A) Compression enabled.
---------- Scenario: Customer Test ----------
- Put:
  * Remote Cache (total): 0:02:37.791 (h:m:s.mi)
  * Remote Cache (mean): 7,889,550 (ns)
- Retrieval:
  * Single element request:
    - Database (total): 0:02:47.563 (h:m:s.mi)
    - Database (mean): 8,378,150 (ns)
    - Remote Cache (total): 0:01:58.538 (h:m:s.mi)
    - Remote Cache (mean): 5,926,900 (ns)
  * Bulk element request:
    - Remote Cache (total): 0:00:22.731 (h:m:s.mi)
- Removal:
  * Remote Cache (total): 0:00:06.154 (h:m:s.mi)
  * Remote Cache (mean): 307,700 (ns)
- Test Statistics:
  * Number of elements used: 20,000
  * Number of available elements: 96,885
  * Mean element size: 10.3037109375Kb

---------- Scenario: Customer View Test ----------
- Put:
  * Remote Cache (total): 0:04:16.113 (h:m:s.mi)
  * Remote Cache (mean): 0:00:00.012 (h:m:s.mi)
- Retrieval:
  * Single element request:
    - Database (total): 0:04:33.528 (h:m:s.mi)
    - Database (mean): 0:00:00.013 (h:m:s.mi)
    - Remote Cache (total): 0:02:38.933 (h:m:s.mi)
    - Remote Cache (mean): 7,946,650 (ns)
  * Bulk element request:
    - Remote Cache (total): 0:00:09.849 (h:m:s.mi)
- Removal:
  * Remote Cache (total): 0:00:04.977 (h:m:s.mi)
  * Remote Cache (mean): 248,850 (ns)
- Test Statistics:
  * Number of elements used: 20,000
  * Number of available elements: 96,885
  * Mean element size: 203.1474609375Kb

B) Compression disabled.
---------- Scenario: Customer Test ----------
- Put:
  * Remote Cache (total): 0:01:15.580 (h:m:s.mi)
  * Remote Cache (mean): 3,779,000 (ns)
- Retrieval:
  * Single element request:
    - Database (total): 0:02:29.240 (h:m:s.mi)
    - Database (mean): 7,462,000 (ns)
    - Remote Cache (total): 0:01:39.165 (h:m:s.mi)
    - Remote Cache (mean): 4,958,250 (ns)
  * Bulk element request:
    - Remote Cache (total): 0:00:33.387 (h:m:s.mi)
- Removal:
  * Remote Cache (total): 0:00:09.171 (h:m:s.mi)
  * Remote Cache (mean): 458,550 (ns)
- Test Statistics:
  * Number of elements used: 20,000
  * Number of available elements: 96,885
  * Mean element size: 10.1787109375Kb

---------- Scenario: Customer View Test ----------
- Put:
  * Remote Cache (total): 0:01:42.935 (h:m:s.mi)
  * Remote Cache (mean): 5,146,750 (ns)
- Retrieval:
  * Single element request:
    - Database (total): 0:04:22.415 (h:m:s.mi)
    - Database (mean): 0:00:00.013 (h:m:s.mi)
    - Remote Cache (total): 0:02:14.100 (h:m:s.mi)
    - Remote Cache (mean): 6,705,000 (ns)
  * Bulk element request:
    - Remote Cache (total): 0:00:50.595 (h:m:s.mi)
- Removal:
  * Remote Cache (total): 0:00:04.712 (h:m:s.mi)
  * Remote Cache (mean): 235,600 (ns)
- Test Statistics:
  * Number of elements used: 20,000
  * Number of available elements: 96,885
  * Mean element size: 204.166015625Kb


----- Original Message ----
From: Darpan Dinker <darpandinker at gmail.com>
To: memcached at lists.danga.com
Sent: Saturday, July 21, 2007 1:02:54 AM
Subject: memcacheD performance

Can somebody provide a ballpark response time for a get( ) under light
load for:
 - a memcached server on the same system as the client
 - a remove server with 1 Gigabit Ethernet network

I am guessing that it is on the order of 20ms and 150ms.

Feedback appreciated; please include the processor, memory size and OS.
Darpan

-- 
Blog: http://darpanetwork.blogspot.com/
Atom: http://darpanetwork.blogspot.com/feeds/posts/default








      ____________________________________________________________________________________
Shape Yahoo! in your own image.  Join our Network Research Panel today!   http://surveylink.yahoo.com/gmrs/yahoo_panel_invite.asp?a=7 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.danga.com/pipermail/memcached/attachments/20070725/5b0a6a6c/attachment.htm


More information about the memcached mailing list