X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;ds=sidebyside;f=bin%2Fmemaslap.html;h=06264c2e38b959340d867d16ddfc95fe20fc324f;hb=3fc1f78f8a21346e8ddc81f5f97e49042cd3ac76;hp=29774661d8bf3ede7fdc70b1e6c5d4ceeffb7e98;hpb=b997cdd3e15a2c10dbbdf3383a64bfb0a405461e;p=awesomized%2Flibmemcached diff --git a/bin/memaslap.html b/bin/memaslap.html index 29774661..06264c2e 100644 --- a/bin/memaslap.html +++ b/bin/memaslap.html @@ -8,7 +8,7 @@ -
Deriving Statistics from a Server
Client Applications
memaslap is a load generation and benchmark tool for memcached -servers. It generates configurable workload such as threads, concurrencies, +servers. It generates configurable workload such as threads, concurrency, connections, run time, overwrite, miss rate, key size, value size, get/set -proportion, expected throughput, and so on. Furthermore, it also testss data +proportion, expected throughput, and so on. Furthermore, it also tests data verification, expire-time verification, UDP, binary protocol, facebook test, replication test, multi-get and reconnection, etc.
Memaslap manages network connections like memcached with @@ -746,11 +676,11 @@ memaslap can handle network very efficiently.
Memslap has the similar implementation of multi-threads to memcached. Memslap creates one or more self-governed threads; -each thread is bound with one CPU core if the system testss setting CPU +each thread is bound with one CPU core if the system tests setting CPU core affinity.
In addition, each thread has a libevent to manage the events of the network; -each thread has one or more self-governed concurrencies; and each -concurrency has one or more socket connections. All the concurrencies donât +each thread has one or more self-governed concurrency; and each +concurrency has one or more socket connections. All the concurrent tasks donât communicate with each other even though they are in the same thread.
Memslap can create thousands of socket connections, and each concurrency has tens of socket connections. Each concurrency randomly or @@ -784,7 +714,7 @@ into it.
Memslap uses libevent to schedule all the concurrencies of +
Memslap uses libevent to schedule all concurrent tasks of threads, and each concurrency schedules tasks based on the local task window. Memslap assumes that if each concurrency keeps the same key distribution, value distribution and commands distribution, from @@ -822,7 +752,7 @@ memcached server, and get these objects from the other servers.
By default, Memslap does single get. If the user specifies multi-get option, memaslap will collect enough get commands and pack and send the commands together.
-Memslap testss both the ASCII protocol and binary protocol, +
Memslap tests both the ASCII protocol and binary protocol, but it runs on the ASCII protocol by default. Memslap by default runs on the TCP protocol, but it also tests UDP. Because UDP is unreliable, dropped packages and out-of-order @@ -845,19 +775,18 @@ be discarded and the next command will be sent.
memaslap -s 127.0.0.1:11211,127.0.0.1:11212 -F config -t 2m -p 2
The user must specify one server at least to run memaslap. The rest of the parameters have default values, as shown below:
-Thread number = 1 Concurrency = 16
+Thread number = 1 Concurrency = 16
Run time = 600 seconds Configuration file = NULL
Key size = 64 Value size = 1024
Get/set = 9:1 Window size = 10k
-Execute number = 0 Single get = true
-Multi-get = false Number of sockets of each concurrency = 1
+Execute number = 0 Single get = true
+Multi-get = false Number of sockets of each concurrency = 1
Reconnect = false Data verification = false
-Expire-time verification = false ASCII protocol = true
-Binary protocol = false Dumping statistic information
-periodically = false
+Expire-time verification = false ASCII protocol = true
+Binary protocol = false Dumping statistic information periodically = false
Overwrite proportion = 0% UDP = false
-TCP = true Limit throughput = false
-Facebook test = false Replication test = false
+TCP = true Limit throughput = false
+Facebook test = false Replication test = false
All the distributions are read from the configuration file specified by user @@ -871,7 +800,7 @@ rounded to 3 decimal places.
The minimum value size is 1 bytes; the maximum value size is 1M bytes. The precision of proportion is 0.001. The proportion of distribution will be rounded to 3 decimal places. -Currently, memaslap only testss set and get commands. And it +Currently, memaslap only tests set and get commands. And it testss 100% set and 100% get. For 100% get, it will preset some objects to the server.
User can use ââudpâ to enable the UDP feature, but UDP comes with some limitations:
UDP cannot set data more than 1400 bytes.
-UDP is not testsed by the binary protocol because the binary protocol of +
UDP is not tested by the binary protocol because the binary protocol of memcached does not tests that.
UDP doesnât tests reconnection.
Since memcached 1.3.3 doesnât implement binary UDP protocol, memaslap does not tests UDP. In addition, memcached 1.3.3 does not tests multi-get. If you specify ââdivision=50â option, it just sends 50 get -commands together as âmulit-getâ to the server.
+commands together as âmulti-getâ to the server.memaslap -s 127.0.0.1:11211,127.0.0.1:11212 -F config -t 2m
memaslap -s 127.0.0.1:11211,127.0.0.1:11212 -F config -t 2m -p 2
To find out more information please check: -http://libmemcached.org/
-Mingqiang Zhuang <mingqiangzhuang@hengtiansoft.com> (Schooner Technolgy) -Brian Aker, <brian@tangent.org>
-memcached(1) libmemcached(3)
@@ -1572,7 +1491,7 @@ Brian Aker, <- © Copyright 2011-2020 Brian Aker, Michael Wallner + © Copyright