These stress test results are useful to figure out how much workload a single Memcached cluster node can cope with.
A fleet of Ec2 has been used to split the traffic coming toward the cache cluster.
Settings:
- Memcache 1.4.14
- Max Memory Size 1.3GiB
- Pointer Size 64bit
- Elasticache instance class cache.t3.small
Workload type: set,sleep,get each request
This workload generates 100% evictions
Sleep time is various from 0.01 and 0.001
while True: magic_number = random.randrange(1, 1000000000) key = "key_{}".format(magic_number) value = os.urandom(size_payload) mc.set(key, value) time.sleep(sleep_time) mc.get(key) |
Payload 100KiB sleep 0.01
10c - 0.01s - payload 100KiB - CPU 8% time cnct used gets hits miss sets evic miss% evic% in out16:36:48 18 11.0M 4.8k 4.8k 0 4.8k 0 0.00 0.00 483.0M 483.4M16:36:53 18 11.0M 4.9k 4.9k 0 4.9k 0 0.00 0.00 486.3M 486.3M16:36:58 18 11.0M 4.8k 4.8k 0 4.8k 0 0.00 0.00 482.4M 482.3M20c - 0.01s - payload 100KiB ~ CPU 20% time cnct used gets hits miss sets evic miss% evic% in out16:44:34 29 12.2M 9.6k 9.6k 0 9.6k 0 0.00 0.00 961.6M 961.7M16:44:39 29 12.2M 9.6k 9.6k 0 9.6k 0 0.00 0.00 958.1M 957.9M16:44:45 29 12.2M 9.6k 9.6k 0 9.6k 0 0.00 0.00 958.3M 958.3M30c - 0.01s - payload 100KiB ~ CPU 28% time cnct used gets hits miss sets evic miss% evic% in out16:51:56 40 13.3M 14.2k 14.2k 0 14.2k 0 0.00 0.00 1.4G 1.4G16:52:01 40 13.3M 14.0k 14.0k 0 14.0k 0 0.00 0.00 1.4G 1.4G16:52:06 40 13.3M 13.9k 13.9k 0 13.9k 0 0.00 0.00 1.4G 1.4G40c - 0.01s - payload 100KiB ~ CPU 34% time cnct used gets hits miss sets evic miss% evic% in out17:01:19 51 32.0M 18.1k 18.1k 0 18.1k 0 0.00 0.00 1.8G 1.8G17:01:24 51 32.0M 18.4k 18.4k 0 18.4k 0 0.00 0.00 1.8G 1.8G17:01:29 51 32.0M 18.4k 18.4k 0 18.4k 0 0.00 0.00 1.8G 1.8G80c - 0.01s - payload 10KiB ~ CPU 15% time cnct used gets hits miss sets evic miss% evic% in out11:22:41 92 1.2G 32.8k 32.8k 0 32.8k 32.8k 0.00 99.99 329.3M 329.2M11:22:46 92 1.2G 32.8k 32.8k 0 32.8k 32.7k 0.00 99.98 329.1M 328.9M11:22:51 92 1.2G 31.9k 31.9k 0 31.9k 31.9k 0.00 99.99 320.4M 320.1M |
Payload 10KiB sleep 0.01
160c - 10K ~ 5% CPU time cnct used gets hits miss sets evic miss% evic% in out13:04:30 170 1.2G 7.5k 7.5k 0 7.5k 7.5k 0.00 99.99 75.7M 75.8M13:04:35 168 1.2G 7.5k 7.5k 0 7.5k 7.5k 0.00 100.00 75.5M 75.4M13:04:40 168 1.2G 7.5k 7.5k 1 7.5k 7.5k 0.01 100.00 75.3M 75.4M240c - 10K ~ 11% CPU time cnct used gets hits miss sets evic miss% evic% in out13:09:32 250 1.2G 7.5k 7.5k 1 7.5k 7.5k 0.01 99.99 75.3M 75.4M13:09:37 249 1.2G 7.5k 7.5k 0 7.5k 7.5k 0.00 100.00 75.6M 75.4M13:09:43 249 1.2G 8.3k 8.3k 8 8.3k 8.3k 0.10 99.99 83.2M 83.0M |
Payload 1KiB sleep 0.01
160c - 1K - 33% CPU time cnct used gets hits miss sets evic miss% evic% in out13:16:33 173 1.2G 64.6k 64.6k 0 64.6k 64.6k 0.00 99.99 69.4M 69.0M13:16:39 173 1.2G 64.6k 64.6k 0 64.6k 64.6k 0.00 99.98 69.4M 69.0M13:16:44 173 1.2G 64.6k 64.6k 0 64.7k 64.6k 0.00 99.99 69.5M 69.0M240c - 1K ~ 33% CPU13:23:39 257 1.2G 65.8k 65.6k 224 65.8k 65.8k 0.34 100.00 69.6M 68.9M13:23:44 257 1.2G 65.7k 65.5k 254 65.7k 65.7k 0.39 99.99 69.6M 68.9M13:23:49 257 1.2G 65.8k 65.6k 217 65.8k 65.8k 0.33 99.99 69.5M 68.9M320c - 1K ~ 33% CPU time cnct used gets hits miss sets evic miss% evic% in out13:37:11 341 1.2G 66.1k 65.2k 931 66.2k 66.2k 1.41 99.99 70.1M 68.7M13:37:16 341 1.2G 66.4k 65.4k 1.0k 66.4k 66.4k 1.56 99.99 70.1M 68.7M13:37:22 341 1.2G 66.8k 65.8k 981 66.7k 66.7k 1.47 99.99 70.1M 68.7M |
Payload 100B sleep 0.01
160c - 100B ~ 35% CPU time cnct used gets hits miss sets evic miss% evic% in out13:40:34 173 1.2G 75.4k 75.4k 0 75.4k 75.4k 0.00 99.99 15.2M 14.7M13:40:39 173 1.2G 75.5k 75.5k 0 75.5k 75.5k 0.00 99.99 15.2M 14.7M13:40:44 173 1.2G 75.3k 75.3k 0 75.3k 75.3k 0.00 99.99 15.1M 14.7M320c - 100B ~ 57% CPU time cnct used gets hits miss sets evic miss% evic% in out13:43:56 337 1.2G 87.3k 87.3k 0 87.5k 87.5k 0.00 99.98 16.5M 15.9M13:44:01 337 1.2G 144.8k 144.8k 0 144.8k 144.8k 0.00 99.99 24.8M 23.9M13:44:06 337 1.2G 145.5k 145.5k 0 145.5k 145.5k 0.00 99.98 24.9M 24.0M400c - 100B ~ 62% CPU13:53:23 421 1.2G 170.4k 170.4k 0 170.4k 170.3k 0.00 99.98 27.8M 26.7M13:53:28 421 1.2G 170.7k 170.7k 0 170.7k 170.7k 0.00 99.98 28.0M 26.9M13:53:33 421 1.2G 170.5k 170.5k 0 170.5k 170.5k 0.00 99.99 27.7M 26.6M480c - 100B ~ 70% CPU13:58:02 501 1.2G 182.7k 182.7k 0 182.6k 182.6k 0.00 99.98 29.1M 27.9M13:58:07 501 1.2G 199.7k 199.7k 0 199.7k 199.7k 0.00 99.98 31.9M 30.6M13:58:12 501 1.2G 207.6k 207.6k 0 207.6k 207.6k 0.00 99.99 33.0M 31.6M600c - 100B ~ 77% CPU time cnct used gets hits miss sets evic miss% evic% in out14:09:05 623 1.2G 250.7k 250.7k 13 250.8k 250.7k 0.01 99.99 39.3M 37.6M14:09:10 623 1.2G 262.0k 262.0k 0 262.0k 262.0k 0.00 99.99 40.9M 39.2M14:09:15 623 1.2G 258.6k 258.6k 0 258.6k 258.6k 0.00 99.99 40.4M 38.7M |
Payload 100B sleep 0.001
600c - 0.001 - 100B - 84% CPU time cnct used gets hits miss sets evic miss% evic% in out14:24:48 614 1.2G 322.4k 322.4k 3 322.4k 322.3k 0.00 99.98 48.7M 46.5M14:24:53 614 1.2G 296.3k 296.3k 1 296.2k 296.2k 0.00 99.99 44.8M 42.9M14:24:58 614 1.2G 318.7k 318.7k 0 318.7k 318.7k 0.00 99.99 48.1M 46.0M |
Workload type: set,and loop on get. Read workload
This workload doesn't generate any evictions
Sleep time is various from 0.01 and 0.001 as well as the payload changes
magic_number = random.randrange(1, 1000000000)key = "key_{}".format(magic_number)value = os.urandom(size_payload)mc.set(key, value)while True: time.sleep(sleep_time) mc.get(key) |
Payload 100B sleep 0.001
150c - 0.001 - 100B ~ 66% CPU time cnct used gets hits miss sets evic miss% evic% in out14:49:30 163 27.4k 540.6k 540.6k 0 0 0 0.00 0.00 9.7M 69.0M14:49:37 163 27.4k 695.5k 695.5k 0 0 0 0.00 0.00 12.5M 88.8M14:49:42 163 27.4k 615.1k 615.1k 0 0 0 0.00 0.00 11.1M 78.6M300c - 0.001 - 100B ~ 76% CPU ( 5 Ec2 instances hitting 100% CPU)14:52:05 319 54.8k 618.9k 618.9k 0 0 0 0.00 0.00 11.2M 79.0M14:52:10 319 54.8k 693.3k 693.3k 0 0 0 0.00 0.00 12.5M 88.5M14:52:15 319 54.8k 684.4k 684.4k 0 0 0 0.00 0.00 12.3M 87.4M |
Payload 1K sleep 0.001
150c - 0.001 - 1K ~ 20% CPU time cnct used gets hits miss sets evic miss% evic% in out15:28:46 163 393.6k 517.9k 517.9k 0 0 0 0.00 0.00 9.3M 523.0M15:28:51 163 393.6k 528.1k 528.1k 0 0 0 0.00 0.00 9.5M 533.2M15:28:56 163 393.6k 528.1k 528.1k 0 0 0 0.00 0.00 9.5M 533.3M |