- 浏览: 83570 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
xiaopeng187:
I/O密集操作的线程应该和业务逻辑的线程尽量分开,mina中是 ...
[mina指南]mina中Half Sync/Half Async模式 -
yzhw:
...
【mina指南】mina中的reactor模式(一) -
uniseraph:
ubuntu dia
[mina指南]诡异的IoFilterChain实现 -
thomescai:
请问,你这个类图用什么工具画得?
[mina指南]诡异的IoFilterChain实现 -
nextw3:
MINA为什么要采用这种过滤链结构那?请赐教
[mina指南]诡异的IoFilterChain实现
今天找了两台服务器进行Memcached Client java的测试,其中
服务器为:
CPU:2* Socket Designation: CPU1 Version: Intel(R) Xeon(R) CPU E5320 @ 1.86GHz
内存:8G
起8个线程,运行memcached-1.2.6
客户端为:
CPU: 2* Socket Designation: CPU1
Version: Intel(R) Xeon(R) CPU E5310 @ 1.60GHz
内存:8G
jdk1.6
代码分支:https://commons-client.googlecode.com/svn/trunk
版本:144
测试多次以后发现,最高达到:66000TPS,基本稳定在61000TPS
可以借用你的代码继续开发么? 我想在周边做些实验, 估计要比较大的改动代码. 可以么? 行的话, PM我下. 因为我这样可以节省时间网络/协议的代码.
当然可以,呵呵。
刚才发现dev分支最新版本比144版本的性能差25%不知道哪儿改出问题了,呵呵。查一下,然后拿spymemcached做一把对比测试。
测试类在那儿?
我那条回复的附件中啊。
有点事情要出去一下,先说一下分析结果,比较仓促,不一定对。
commons-client 在windows和linux下性能相差比较大,怀疑和不同thread操作系统下的实现相关,明天我回公司做一下测试。
spymemcached的set方法是异步的,他没有等待返回结果,所以比同步的get方法快,有点不公平,呵呵。
spymemcached用了一些spy的底层实现,而且不是开源的,不好分析,头痛,明天具体测一下好了。
只是希望对你的开源项目有所帮助。另外你的代码里
start 参数, cdl 参数 似乎只看到传入,没看到使用,这是我的一点疑问,请赐教,呵呵。
你说的有道理。今天是在家里本本上 windows+ubuntu 测试的。
明天回公司再全用linux测测。 其实 spymemcache 的 MemcacheClient类也有点问题,比较原始,像一个connection,需要再做pool化才行,50个thread时,由于量大,已经 内存暴了,加大到 160m才行 ; 好像 javaeye 的 wenchu 已经对 whalin 做了封装,明天我测测whalin 。
另外,我觉得测压力,thread 到一定值就可以了,一般服务器系统thread pool到一定数值就可以了,有pool就可以应付高并发了, 只要用非阻塞io就能保证性能。 大系统主要看memcached 对海量数据的处理能力,如集群时的性能和可靠性。
因为最近要选型,几种client 都要用用才行,最后会选一种。
我花了点时间对 spmemcache 和 楼主的 commons-client 做了一下测试。测试代码采用楼主的源码中的测试代码写法。
主要变量:线程数thread,最大值repeat。
我略微修改了一下楼主的MemcacheClient中的 测试代码, 将 write,read分开。
key,value策略: key,value 相同,1 - repeat , 其中repeat是最大值
(测试环境:
硬件:机器: 酷睿T2350,1.86G双核,2G内存。
系统1:XP,运行memcached客户端测试。 测试程序,JDK1.6.0_10, -Xmx=160m
系统2:Ubuntu 8.0.4,运行于VMWare虚拟机中。memcached 1.2.6 + libevent 1.3, memcached 进程 1个,32M内存,最大256并发连接
)
引用
1 spymemcache测试结果
1线程
write test:thread num=1, repeat=10000,size=1, all=10000 ,velocity=21367 , using time:468
read test: thread num=1, repeat=10000,size=1, all=10000 ,velocity=3516 , using time:2844
10线程
write test:thread num=10, repeat=10000,size=1, all=100000 ,velocity=14712 , using time:6797
read test: thread num=10, repeat=10000,size=1, all=100000 ,velocity=5258 , using time:19016
50线程
write test:thread num=50, repeat=10000,size=1, all=500000 ,velocity=8355 , using time:59844
read test: thread num=50, repeat=10000,size=1, all=500000 ,velocity=5631 , using time:88781
2 commons-client测试结果
1线程
INFO [main] (MemcachedClient.java:282) - write test:thread num=1, repeat=10000,size=1, all=10000 ,velocity=2806 , using time:3563
INFO [main] (MemcachedClient.java:309) - read test: thread num=1, repeat=10000,size=1, all=10000 ,velocity=3351 , using time:2984
10线程
INFO [main] (MemcachedClient.java:282) - write test:thread num=10, repeat=10000,size=1, all=100000 ,velocity=5855 , using time:17078
INFO [main] (MemcachedClient.java:309) - read test: thread num=10, repeat=10000,size=1, all=100000 ,velocity=4815 , using time:20765
50线程
INFO [main] (MemcachedClient.java:282) - write test:thread num=50, repeat=10000,size=1, all=500000 ,velocity=5856 , using time:85375
INFO [main] (MemcachedClient.java:309) - read test: thread num=50, repeat=10000,size=1, all=500000 ,velocity=5612 , using time:89094
测试结果可能没楼主的TPS大,只反映我机器上的结果。主要是有同样的测试基准才好对比。
从测试结果看spymemcached的 velocity反映较好一些。spymemcache client, commons-client都 用了nio。
其中read性能表现较低,不知为什么?
我将测试类附上,楼主可以分析一下结果。或者也对 spymemcache做做测试。
有点事情要出去一下,先说一下分析结果,比较仓促,不一定对。
commons-client 在windows和linux下性能相差比较大,怀疑和不同thread操作系统下的实现相关,明天我回公司做一下测试。
spymemcached的set方法是异步的,他没有等待返回结果,所以比同步的get方法快,有点不公平,呵呵。
spymemcached用了一些spy的底层实现,而且不是开源的,不好分析,头痛,明天具体测一下好了。
我花了点时间对 spmemcache 和 楼主的 commons-client 做了一下测试。测试代码采用楼主的源码中的测试代码写法。
主要变量:线程数thread,最大值repeat。
我略微修改了一下楼主的MemcacheClient中的 测试代码, 将 write,read分开。
key,value策略: key,value 相同,1 - repeat , 其中repeat是最大值
(测试环境:
硬件:机器: 酷睿T2350,1.86G双核,2G内存。
系统1:XP,运行memcached客户端测试。 测试程序,JDK1.6.0_10, -Xmx=160m
系统2:Ubuntu 8.0.4,运行于VMWare虚拟机中。memcached 1.2.6 + libevent 1.3, memcached 进程 1个,32M内存,最大256并发连接
)
引用
1 spymemcache测试结果
1线程
write test:thread num=1, repeat=10000,size=1, all=10000 ,velocity=21367 , using time:468
read test: thread num=1, repeat=10000,size=1, all=10000 ,velocity=3516 , using time:2844
10线程
write test:thread num=10, repeat=10000,size=1, all=100000 ,velocity=14712 , using time:6797
read test: thread num=10, repeat=10000,size=1, all=100000 ,velocity=5258 , using time:19016
50线程
write test:thread num=50, repeat=10000,size=1, all=500000 ,velocity=8355 , using time:59844
read test: thread num=50, repeat=10000,size=1, all=500000 ,velocity=5631 , using time:88781
2 commons-client测试结果
1线程
INFO [main] (MemcachedClient.java:282) - write test:thread num=1, repeat=10000,size=1, all=10000 ,velocity=2806 , using time:3563
INFO [main] (MemcachedClient.java:309) - read test: thread num=1, repeat=10000,size=1, all=10000 ,velocity=3351 , using time:2984
10线程
INFO [main] (MemcachedClient.java:282) - write test:thread num=10, repeat=10000,size=1, all=100000 ,velocity=5855 , using time:17078
INFO [main] (MemcachedClient.java:309) - read test: thread num=10, repeat=10000,size=1, all=100000 ,velocity=4815 , using time:20765
50线程
INFO [main] (MemcachedClient.java:282) - write test:thread num=50, repeat=10000,size=1, all=500000 ,velocity=5856 , using time:85375
INFO [main] (MemcachedClient.java:309) - read test: thread num=50, repeat=10000,size=1, all=500000 ,velocity=5612 , using time:89094
测试结果可能没楼主的TPS大,只反映我机器上的结果。主要是有同样的测试基准才好对比。
从测试结果看spymemcached的 velocity反映较好一些。spymemcache client, commons-client都 用了nio。
其中read性能表现较低,不知为什么?
我将测试类附上,楼主可以分析一下结果。或者也对 spymemcache做做测试。
测试类在那儿?
我花了点时间对 spmemcache 和 楼主的 commons-client 做了一下测试。测试代码采用楼主的源码中的测试代码写法。
主要变量:线程数thread,最大值repeat。
我略微修改了一下楼主的MemcacheClient中的 测试代码, 将 write,read分开。
key,value策略: key,value 相同,1 - repeat , 其中repeat是最大值
(测试环境:
硬件:机器: 酷睿T2350,1.86G双核,2G内存。
系统1:XP,运行memcached客户端测试。 测试程序,JDK1.6.0_10, -Xmx=160m
系统2:Ubuntu 8.0.4,运行于VMWare虚拟机中。memcached 1.2.6 + libevent 1.3, memcached 进程 1个,32M内存,最大256并发连接
)
引用
1 spymemcache测试结果
1线程
write test:thread num=1, repeat=10000,size=1, all=10000 ,velocity=21367 , using time:468
read test: thread num=1, repeat=10000,size=1, all=10000 ,velocity=3516 , using time:2844
10线程
write test:thread num=10, repeat=10000,size=1, all=100000 ,velocity=14712 , using time:6797
read test: thread num=10, repeat=10000,size=1, all=100000 ,velocity=5258 , using time:19016
50线程
write test:thread num=50, repeat=10000,size=1, all=500000 ,velocity=8355 , using time:59844
read test: thread num=50, repeat=10000,size=1, all=500000 ,velocity=5631 , using time:88781
2 commons-client测试结果
1线程
INFO [main] (MemcachedClient.java:282) - write test:thread num=1, repeat=10000,size=1, all=10000 ,velocity=2806 , using time:3563
INFO [main] (MemcachedClient.java:309) - read test: thread num=1, repeat=10000,size=1, all=10000 ,velocity=3351 , using time:2984
10线程
INFO [main] (MemcachedClient.java:282) - write test:thread num=10, repeat=10000,size=1, all=100000 ,velocity=5855 , using time:17078
INFO [main] (MemcachedClient.java:309) - read test: thread num=10, repeat=10000,size=1, all=100000 ,velocity=4815 , using time:20765
50线程
INFO [main] (MemcachedClient.java:282) - write test:thread num=50, repeat=10000,size=1, all=500000 ,velocity=5856 , using time:85375
INFO [main] (MemcachedClient.java:309) - read test: thread num=50, repeat=10000,size=1, all=500000 ,velocity=5612 , using time:89094
测试结果可能没楼主的TPS大,只反映我机器上的结果。主要是有同样的测试基准才好对比。
从测试结果看spymemcached的 velocity反映较好一些。spymemcache client, commons-client都 用了nio。
其中read性能表现较低,不知为什么?
我将测试类附上,楼主可以分析一下结果。或者也对 spymemcache做做测试。
多谢反馈,
我花了点时间对 spmemcache 和 楼主的 commons-client 做了一下测试。测试代码采用楼主的源码中的测试代码写法。
主要变量:线程数thread,最大值repeat。
我略微修改了一下楼主的MemcacheClient中的 测试代码, 将 write,read分开。
key,value策略: key,value 相同,1 - repeat , 其中repeat是最大值
(测试环境:
硬件:机器: 酷睿T2350,1.86G双核,2G内存。
系统1:XP,运行memcached客户端测试。 测试程序,JDK1.6.0_10, -Xmx=160m
系统2:Ubuntu 8.0.4,运行于VMWare虚拟机中。memcached 1.2.6 + libevent 1.3, memcached 进程 1个,32M内存,最大256并发连接
)
引用
1 spymemcache测试结果
1线程
write test:thread num=1, repeat=10000,size=1, all=10000 ,velocity=21367 , using time:468
read test: thread num=1, repeat=10000,size=1, all=10000 ,velocity=3516 , using time:2844
10线程
write test:thread num=10, repeat=10000,size=1, all=100000 ,velocity=14712 , using time:6797
read test: thread num=10, repeat=10000,size=1, all=100000 ,velocity=5258 , using time:19016
50线程
write test:thread num=50, repeat=10000,size=1, all=500000 ,velocity=8355 , using time:59844
read test: thread num=50, repeat=10000,size=1, all=500000 ,velocity=5631 , using time:88781
2 commons-client测试结果
1线程
INFO [main] (MemcachedClient.java:282) - write test:thread num=1, repeat=10000,size=1, all=10000 ,velocity=2806 , using time:3563
INFO [main] (MemcachedClient.java:309) - read test: thread num=1, repeat=10000,size=1, all=10000 ,velocity=3351 , using time:2984
10线程
INFO [main] (MemcachedClient.java:282) - write test:thread num=10, repeat=10000,size=1, all=100000 ,velocity=5855 , using time:17078
INFO [main] (MemcachedClient.java:309) - read test: thread num=10, repeat=10000,size=1, all=100000 ,velocity=4815 , using time:20765
50线程
INFO [main] (MemcachedClient.java:282) - write test:thread num=50, repeat=10000,size=1, all=500000 ,velocity=5856 , using time:85375
INFO [main] (MemcachedClient.java:309) - read test: thread num=50, repeat=10000,size=1, all=500000 ,velocity=5612 , using time:89094
测试结果可能没楼主的TPS大,只反映我机器上的结果。主要是有同样的测试基准才好对比。
从测试结果看spymemcached的 velocity反映较好一些。spymemcache client, commons-client都 用了nio。
其中read性能表现较低,不知为什么?
我将测试类附上,楼主可以分析一下结果。或者也对 spymemcache做做测试。
多谢反馈,我没有用windows测过,不知道有没有关系。另外你把线程数加到100试试。commons-client比较适合高并发的情况,并发不高反而没有优势。
你测试时候的两个系统是在一台物理机器上么?
spymemcached我没测试过,待会看看。
楼上的,看来你确实没有注意到这位朋友说的话。不妨可以一试。而且这位朋友已经实现了,呵呵
fly_hyp 写道我比较欣赏 uniseraph 的源代码没有一行注释。注释是少了点,不过还是有的,呵呵。不想写中文注释,不利于项目的以后发展,如果写英文注释,会打断思路,所以写得比较少,呵呵。不过我觉得现在的代码结构还是比较清晰的,需要注释的地方应该不多。欢迎指正。
新的改动,可以自由选择maven or ant+ivy 编译/运行测试用例,呵呵。
我比较欣赏 uniseraph 的源代码没有一行注释。
注释是少了点,不过还是有的,呵呵。
不想写中文注释,不利于项目的以后发展,如果写英文注释,会打断思路,所以写得比较少,呵呵。
不过我觉得现在的代码结构还是比较清晰的,需要注释的地方应该不多。
欢迎指正。
服务器为:
CPU:2* Socket Designation: CPU1 Version: Intel(R) Xeon(R) CPU E5320 @ 1.86GHz
内存:8G
起8个线程,运行memcached-1.2.6
客户端为:
CPU: 2* Socket Designation: CPU1
Version: Intel(R) Xeon(R) CPU E5310 @ 1.60GHz
内存:8G
jdk1.6
代码分支:https://commons-client.googlecode.com/svn/trunk
版本:144
测试多次以后发现,最高达到:66000TPS,基本稳定在61000TPS
评论
45 楼
uniseraph
2008-11-05
sdh5724 写道
可以借用你的代码继续开发么? 我想在周边做些实验, 估计要比较大的改动代码. 可以么? 行的话, PM我下. 因为我这样可以节省时间网络/协议的代码.
当然可以,呵呵。
44 楼
sdh5724
2008-11-04
可以借用你的代码继续开发么? 我想在周边做些实验, 估计要比较大的改动代码. 可以么? 行的话, PM我下. 因为我这样可以节省时间网络/协议的代码.
43 楼
uniseraph
2008-11-03
明天再发官方客户端的测试报告
42 楼
uniseraph
2008-11-03
客户端:T61,2g ,ubuntu-8.04 , Intel(R) Core(TM)2 Duo CPU T7100 @ 1.80GHz
服务端:CPU 2* Socket Designation: CPU1
Version: Intel(R) Xeon(R) CPU E5310 @ 1.60GHz
8G 内存
测试结果:
uniseraph@uniseraph-laptop:~/mywork/commons-client$ ant run -Dthread=50 && ant run -Dthread=100 && ant run -Dthread=150
Buildfile: build.xml
run:
[java] INFO [main] (Test.java:139) - thread num=50, repeat=10000,size=2, all=1000000 ,velocity=23527 , using time:42503
BUILD SUCCESSFUL
Total time: 48 seconds
Buildfile: build.xml
run:
[delete] Deleting directory /home/uniseraph/mywork/commons-client/logs
[java] INFO [main] (Test.java:139) - thread num=100, repeat=10000,size=2, all=2000000 ,velocity=25591 , using time:78152
BUILD SUCCESSFUL
Total time: 1 minute 24 seconds
Buildfile: build.xml
run:
[delete] Deleting directory /home/uniseraph/mywork/commons-client/logs
[java] INFO [main] (Test.java:139) - thread num=150, repeat=10000,size=2, all=3000000 ,velocity=28091 , using time:106793
BUILD SUCCESSFUL
Total time: 1 minute 52 seconds
服务端:CPU 2* Socket Designation: CPU1
Version: Intel(R) Xeon(R) CPU E5310 @ 1.60GHz
8G 内存
测试结果:
uniseraph@uniseraph-laptop:~/mywork/commons-client$ ant run -Dthread=50 && ant run -Dthread=100 && ant run -Dthread=150
Buildfile: build.xml
run:
[java] INFO [main] (Test.java:139) - thread num=50, repeat=10000,size=2, all=1000000 ,velocity=23527 , using time:42503
BUILD SUCCESSFUL
Total time: 48 seconds
Buildfile: build.xml
run:
[delete] Deleting directory /home/uniseraph/mywork/commons-client/logs
[java] INFO [main] (Test.java:139) - thread num=100, repeat=10000,size=2, all=2000000 ,velocity=25591 , using time:78152
BUILD SUCCESSFUL
Total time: 1 minute 24 seconds
Buildfile: build.xml
run:
[delete] Deleting directory /home/uniseraph/mywork/commons-client/logs
[java] INFO [main] (Test.java:139) - thread num=150, repeat=10000,size=2, all=3000000 ,velocity=28091 , using time:106793
BUILD SUCCESSFUL
Total time: 1 minute 52 seconds
41 楼
uniseraph
2008-11-03
测试结果:
[zhengtao.wuzt@rh44server commons-client]$ ant run -Dthread=50 && ant run -Dthread=100 && ant run -Dthread=200 && ant run -Dthread=300 && ant run -Dthread=400
Buildfile: build.xml
run:
[delete] Deleting directory /home/zhengtao.wuzt/work/commons-client/logs
[java] INFO [main] (Test.java:139) - thread num=50, repeat=10000,size=8, all=1000000 ,velocity=47229 , using time:21173
BUILD SUCCESSFUL
Total time: 21 seconds
Buildfile: build.xml
run:
[delete] Deleting directory /home/zhengtao.wuzt/work/commons-client/logs
[java] INFO [main] (Test.java:139) - thread num=100, repeat=10000,size=8, all=2000000 ,velocity=52649 , using time:37987
BUILD SUCCESSFUL
Total time: 38 seconds
Buildfile: build.xml
run:
[delete] Deleting directory /home/zhengtao.wuzt/work/commons-client/logs
[java] INFO [main] (Test.java:139) - thread num=200, repeat=10000,size=8, all=4000000 ,velocity=59557 , using time:67162
BUILD SUCCESSFUL
Total time: 1 minute 7 seconds
Buildfile: build.xml
run:
[delete] Deleting directory /home/zhengtao.wuzt/work/commons-client/logs
[java] INFO [main] (Test.java:139) - thread num=300, repeat=10000,size=8, all=6000000 ,velocity=62657 , using time:95758
BUILD SUCCESSFUL
Total time: 1 minute 36 seconds
Buildfile: build.xml
run:
[delete] Deleting directory /home/zhengtao.wuzt/work/commons-client/logs
[java] INFO [main] (Test.java:139) - thread num=400, repeat=10000,size=8, all=8000000 ,velocity=64883 , using time:123298
BUILD SUCCESSFUL
Total time: 2 minutes 3 seconds
硬件:
CPU:2* Socket Designation: CPU1 Version: Intel(R) Xeon(R) CPU E5320 @ 1.86GHz
内存:8G
[zhengtao.wuzt@rh44server commons-client]$ ant run -Dthread=50 && ant run -Dthread=100 && ant run -Dthread=200 && ant run -Dthread=300 && ant run -Dthread=400
Buildfile: build.xml
run:
[delete] Deleting directory /home/zhengtao.wuzt/work/commons-client/logs
[java] INFO [main] (Test.java:139) - thread num=50, repeat=10000,size=8, all=1000000 ,velocity=47229 , using time:21173
BUILD SUCCESSFUL
Total time: 21 seconds
Buildfile: build.xml
run:
[delete] Deleting directory /home/zhengtao.wuzt/work/commons-client/logs
[java] INFO [main] (Test.java:139) - thread num=100, repeat=10000,size=8, all=2000000 ,velocity=52649 , using time:37987
BUILD SUCCESSFUL
Total time: 38 seconds
Buildfile: build.xml
run:
[delete] Deleting directory /home/zhengtao.wuzt/work/commons-client/logs
[java] INFO [main] (Test.java:139) - thread num=200, repeat=10000,size=8, all=4000000 ,velocity=59557 , using time:67162
BUILD SUCCESSFUL
Total time: 1 minute 7 seconds
Buildfile: build.xml
run:
[delete] Deleting directory /home/zhengtao.wuzt/work/commons-client/logs
[java] INFO [main] (Test.java:139) - thread num=300, repeat=10000,size=8, all=6000000 ,velocity=62657 , using time:95758
BUILD SUCCESSFUL
Total time: 1 minute 36 seconds
Buildfile: build.xml
run:
[delete] Deleting directory /home/zhengtao.wuzt/work/commons-client/logs
[java] INFO [main] (Test.java:139) - thread num=400, repeat=10000,size=8, all=8000000 ,velocity=64883 , using time:123298
BUILD SUCCESSFUL
Total time: 2 minutes 3 seconds
硬件:
CPU:2* Socket Designation: CPU1 Version: Intel(R) Xeon(R) CPU E5320 @ 1.86GHz
内存:8G
40 楼
uniseraph
2008-11-03
uniseraph 写道
今天找了两台服务器进行Memcached Client java的测试,其中
服务器为:
CPU:2* Socket Designation: CPU1 Version: Intel(R) Xeon(R) CPU E5320 @ 1.86GHz
内存:8G
起8个线程,运行memcached-1.2.6
客户端为:
CPU: 2* Socket Designation: CPU1
Version: Intel(R) Xeon(R) CPU E5310 @ 1.60GHz
内存:8G
jdk1.6
代码分支:https://commons-client.googlecode.com/svn/trunk
版本:144
测试多次以后发现,最高达到:66000TPS,基本稳定在61000TPS
服务器为:
CPU:2* Socket Designation: CPU1 Version: Intel(R) Xeon(R) CPU E5320 @ 1.86GHz
内存:8G
起8个线程,运行memcached-1.2.6
客户端为:
CPU: 2* Socket Designation: CPU1
Version: Intel(R) Xeon(R) CPU E5310 @ 1.60GHz
内存:8G
jdk1.6
代码分支:https://commons-client.googlecode.com/svn/trunk
版本:144
测试多次以后发现,最高达到:66000TPS,基本稳定在61000TPS
刚才发现dev分支最新版本比144版本的性能差25%不知道哪儿改出问题了,呵呵。查一下,然后拿spymemcached做一把对比测试。
39 楼
sdh5724
2008-11-03
uniseraph, 你的代码的性能差异基本在垃圾收集上, 也就是说, 你设计产生了过多的临时对象, 如果你能改善下, 基本还是跟spymemcached有的一比的, 甚至要超过。因为整个协议的分析,包括写数据都是很简单, 那么临时创建对象的结果就导致性能稍微有点下降, 在多线程下, 差异很容易被放大。
38 楼
yeshucheng
2008-11-03
LZ有人帮你辛苦了,呵呵。所以大伙关心的数据也就看到了!
37 楼
raymond2006k
2008-11-02
引用
测试类在那儿?
我那条回复的附件中啊。
36 楼
raymond2006k
2008-11-02
引用
有点事情要出去一下,先说一下分析结果,比较仓促,不一定对。
commons-client 在windows和linux下性能相差比较大,怀疑和不同thread操作系统下的实现相关,明天我回公司做一下测试。
spymemcached的set方法是异步的,他没有等待返回结果,所以比同步的get方法快,有点不公平,呵呵。
spymemcached用了一些spy的底层实现,而且不是开源的,不好分析,头痛,明天具体测一下好了。
只是希望对你的开源项目有所帮助。另外你的代码里
start 参数, cdl 参数 似乎只看到传入,没看到使用,这是我的一点疑问,请赐教,呵呵。
你说的有道理。今天是在家里本本上 windows+ubuntu 测试的。
明天回公司再全用linux测测。 其实 spymemcache 的 MemcacheClient类也有点问题,比较原始,像一个connection,需要再做pool化才行,50个thread时,由于量大,已经 内存暴了,加大到 160m才行 ; 好像 javaeye 的 wenchu 已经对 whalin 做了封装,明天我测测whalin 。
另外,我觉得测压力,thread 到一定值就可以了,一般服务器系统thread pool到一定数值就可以了,有pool就可以应付高并发了, 只要用非阻塞io就能保证性能。 大系统主要看memcached 对海量数据的处理能力,如集群时的性能和可靠性。
因为最近要选型,几种client 都要用用才行,最后会选一种。
35 楼
uniseraph
2008-11-02
raymond2006k 写道
我花了点时间对 spmemcache 和 楼主的 commons-client 做了一下测试。测试代码采用楼主的源码中的测试代码写法。
主要变量:线程数thread,最大值repeat。
我略微修改了一下楼主的MemcacheClient中的 测试代码, 将 write,read分开。
key,value策略: key,value 相同,1 - repeat , 其中repeat是最大值
(测试环境:
硬件:机器: 酷睿T2350,1.86G双核,2G内存。
系统1:XP,运行memcached客户端测试。 测试程序,JDK1.6.0_10, -Xmx=160m
系统2:Ubuntu 8.0.4,运行于VMWare虚拟机中。memcached 1.2.6 + libevent 1.3, memcached 进程 1个,32M内存,最大256并发连接
)
引用
1 spymemcache测试结果
1线程
write test:thread num=1, repeat=10000,size=1, all=10000 ,velocity=21367 , using time:468
read test: thread num=1, repeat=10000,size=1, all=10000 ,velocity=3516 , using time:2844
10线程
write test:thread num=10, repeat=10000,size=1, all=100000 ,velocity=14712 , using time:6797
read test: thread num=10, repeat=10000,size=1, all=100000 ,velocity=5258 , using time:19016
50线程
write test:thread num=50, repeat=10000,size=1, all=500000 ,velocity=8355 , using time:59844
read test: thread num=50, repeat=10000,size=1, all=500000 ,velocity=5631 , using time:88781
2 commons-client测试结果
1线程
INFO [main] (MemcachedClient.java:282) - write test:thread num=1, repeat=10000,size=1, all=10000 ,velocity=2806 , using time:3563
INFO [main] (MemcachedClient.java:309) - read test: thread num=1, repeat=10000,size=1, all=10000 ,velocity=3351 , using time:2984
10线程
INFO [main] (MemcachedClient.java:282) - write test:thread num=10, repeat=10000,size=1, all=100000 ,velocity=5855 , using time:17078
INFO [main] (MemcachedClient.java:309) - read test: thread num=10, repeat=10000,size=1, all=100000 ,velocity=4815 , using time:20765
50线程
INFO [main] (MemcachedClient.java:282) - write test:thread num=50, repeat=10000,size=1, all=500000 ,velocity=5856 , using time:85375
INFO [main] (MemcachedClient.java:309) - read test: thread num=50, repeat=10000,size=1, all=500000 ,velocity=5612 , using time:89094
测试结果可能没楼主的TPS大,只反映我机器上的结果。主要是有同样的测试基准才好对比。
从测试结果看spymemcached的 velocity反映较好一些。spymemcache client, commons-client都 用了nio。
其中read性能表现较低,不知为什么?
我将测试类附上,楼主可以分析一下结果。或者也对 spymemcache做做测试。
有点事情要出去一下,先说一下分析结果,比较仓促,不一定对。
commons-client 在windows和linux下性能相差比较大,怀疑和不同thread操作系统下的实现相关,明天我回公司做一下测试。
spymemcached的set方法是异步的,他没有等待返回结果,所以比同步的get方法快,有点不公平,呵呵。
spymemcached用了一些spy的底层实现,而且不是开源的,不好分析,头痛,明天具体测一下好了。
34 楼
uniseraph
2008-11-02
raymond2006k 写道
我花了点时间对 spmemcache 和 楼主的 commons-client 做了一下测试。测试代码采用楼主的源码中的测试代码写法。
主要变量:线程数thread,最大值repeat。
我略微修改了一下楼主的MemcacheClient中的 测试代码, 将 write,read分开。
key,value策略: key,value 相同,1 - repeat , 其中repeat是最大值
(测试环境:
硬件:机器: 酷睿T2350,1.86G双核,2G内存。
系统1:XP,运行memcached客户端测试。 测试程序,JDK1.6.0_10, -Xmx=160m
系统2:Ubuntu 8.0.4,运行于VMWare虚拟机中。memcached 1.2.6 + libevent 1.3, memcached 进程 1个,32M内存,最大256并发连接
)
引用
1 spymemcache测试结果
1线程
write test:thread num=1, repeat=10000,size=1, all=10000 ,velocity=21367 , using time:468
read test: thread num=1, repeat=10000,size=1, all=10000 ,velocity=3516 , using time:2844
10线程
write test:thread num=10, repeat=10000,size=1, all=100000 ,velocity=14712 , using time:6797
read test: thread num=10, repeat=10000,size=1, all=100000 ,velocity=5258 , using time:19016
50线程
write test:thread num=50, repeat=10000,size=1, all=500000 ,velocity=8355 , using time:59844
read test: thread num=50, repeat=10000,size=1, all=500000 ,velocity=5631 , using time:88781
2 commons-client测试结果
1线程
INFO [main] (MemcachedClient.java:282) - write test:thread num=1, repeat=10000,size=1, all=10000 ,velocity=2806 , using time:3563
INFO [main] (MemcachedClient.java:309) - read test: thread num=1, repeat=10000,size=1, all=10000 ,velocity=3351 , using time:2984
10线程
INFO [main] (MemcachedClient.java:282) - write test:thread num=10, repeat=10000,size=1, all=100000 ,velocity=5855 , using time:17078
INFO [main] (MemcachedClient.java:309) - read test: thread num=10, repeat=10000,size=1, all=100000 ,velocity=4815 , using time:20765
50线程
INFO [main] (MemcachedClient.java:282) - write test:thread num=50, repeat=10000,size=1, all=500000 ,velocity=5856 , using time:85375
INFO [main] (MemcachedClient.java:309) - read test: thread num=50, repeat=10000,size=1, all=500000 ,velocity=5612 , using time:89094
测试结果可能没楼主的TPS大,只反映我机器上的结果。主要是有同样的测试基准才好对比。
从测试结果看spymemcached的 velocity反映较好一些。spymemcache client, commons-client都 用了nio。
其中read性能表现较低,不知为什么?
我将测试类附上,楼主可以分析一下结果。或者也对 spymemcache做做测试。
测试类在那儿?
33 楼
uniseraph
2008-11-02
raymond2006k 写道
我花了点时间对 spmemcache 和 楼主的 commons-client 做了一下测试。测试代码采用楼主的源码中的测试代码写法。
主要变量:线程数thread,最大值repeat。
我略微修改了一下楼主的MemcacheClient中的 测试代码, 将 write,read分开。
key,value策略: key,value 相同,1 - repeat , 其中repeat是最大值
(测试环境:
硬件:机器: 酷睿T2350,1.86G双核,2G内存。
系统1:XP,运行memcached客户端测试。 测试程序,JDK1.6.0_10, -Xmx=160m
系统2:Ubuntu 8.0.4,运行于VMWare虚拟机中。memcached 1.2.6 + libevent 1.3, memcached 进程 1个,32M内存,最大256并发连接
)
引用
1 spymemcache测试结果
1线程
write test:thread num=1, repeat=10000,size=1, all=10000 ,velocity=21367 , using time:468
read test: thread num=1, repeat=10000,size=1, all=10000 ,velocity=3516 , using time:2844
10线程
write test:thread num=10, repeat=10000,size=1, all=100000 ,velocity=14712 , using time:6797
read test: thread num=10, repeat=10000,size=1, all=100000 ,velocity=5258 , using time:19016
50线程
write test:thread num=50, repeat=10000,size=1, all=500000 ,velocity=8355 , using time:59844
read test: thread num=50, repeat=10000,size=1, all=500000 ,velocity=5631 , using time:88781
2 commons-client测试结果
1线程
INFO [main] (MemcachedClient.java:282) - write test:thread num=1, repeat=10000,size=1, all=10000 ,velocity=2806 , using time:3563
INFO [main] (MemcachedClient.java:309) - read test: thread num=1, repeat=10000,size=1, all=10000 ,velocity=3351 , using time:2984
10线程
INFO [main] (MemcachedClient.java:282) - write test:thread num=10, repeat=10000,size=1, all=100000 ,velocity=5855 , using time:17078
INFO [main] (MemcachedClient.java:309) - read test: thread num=10, repeat=10000,size=1, all=100000 ,velocity=4815 , using time:20765
50线程
INFO [main] (MemcachedClient.java:282) - write test:thread num=50, repeat=10000,size=1, all=500000 ,velocity=5856 , using time:85375
INFO [main] (MemcachedClient.java:309) - read test: thread num=50, repeat=10000,size=1, all=500000 ,velocity=5612 , using time:89094
测试结果可能没楼主的TPS大,只反映我机器上的结果。主要是有同样的测试基准才好对比。
从测试结果看spymemcached的 velocity反映较好一些。spymemcache client, commons-client都 用了nio。
其中read性能表现较低,不知为什么?
我将测试类附上,楼主可以分析一下结果。或者也对 spymemcache做做测试。
多谢反馈,
raymond2006k 写道
我花了点时间对 spmemcache 和 楼主的 commons-client 做了一下测试。测试代码采用楼主的源码中的测试代码写法。
主要变量:线程数thread,最大值repeat。
我略微修改了一下楼主的MemcacheClient中的 测试代码, 将 write,read分开。
key,value策略: key,value 相同,1 - repeat , 其中repeat是最大值
(测试环境:
硬件:机器: 酷睿T2350,1.86G双核,2G内存。
系统1:XP,运行memcached客户端测试。 测试程序,JDK1.6.0_10, -Xmx=160m
系统2:Ubuntu 8.0.4,运行于VMWare虚拟机中。memcached 1.2.6 + libevent 1.3, memcached 进程 1个,32M内存,最大256并发连接
)
引用
1 spymemcache测试结果
1线程
write test:thread num=1, repeat=10000,size=1, all=10000 ,velocity=21367 , using time:468
read test: thread num=1, repeat=10000,size=1, all=10000 ,velocity=3516 , using time:2844
10线程
write test:thread num=10, repeat=10000,size=1, all=100000 ,velocity=14712 , using time:6797
read test: thread num=10, repeat=10000,size=1, all=100000 ,velocity=5258 , using time:19016
50线程
write test:thread num=50, repeat=10000,size=1, all=500000 ,velocity=8355 , using time:59844
read test: thread num=50, repeat=10000,size=1, all=500000 ,velocity=5631 , using time:88781
2 commons-client测试结果
1线程
INFO [main] (MemcachedClient.java:282) - write test:thread num=1, repeat=10000,size=1, all=10000 ,velocity=2806 , using time:3563
INFO [main] (MemcachedClient.java:309) - read test: thread num=1, repeat=10000,size=1, all=10000 ,velocity=3351 , using time:2984
10线程
INFO [main] (MemcachedClient.java:282) - write test:thread num=10, repeat=10000,size=1, all=100000 ,velocity=5855 , using time:17078
INFO [main] (MemcachedClient.java:309) - read test: thread num=10, repeat=10000,size=1, all=100000 ,velocity=4815 , using time:20765
50线程
INFO [main] (MemcachedClient.java:282) - write test:thread num=50, repeat=10000,size=1, all=500000 ,velocity=5856 , using time:85375
INFO [main] (MemcachedClient.java:309) - read test: thread num=50, repeat=10000,size=1, all=500000 ,velocity=5612 , using time:89094
测试结果可能没楼主的TPS大,只反映我机器上的结果。主要是有同样的测试基准才好对比。
从测试结果看spymemcached的 velocity反映较好一些。spymemcache client, commons-client都 用了nio。
其中read性能表现较低,不知为什么?
我将测试类附上,楼主可以分析一下结果。或者也对 spymemcache做做测试。
多谢反馈,我没有用windows测过,不知道有没有关系。另外你把线程数加到100试试。commons-client比较适合高并发的情况,并发不高反而没有优势。
你测试时候的两个系统是在一台物理机器上么?
spymemcached我没测试过,待会看看。
32 楼
raymond2006k
2008-11-02
我花了点时间对 spmemcache 和 楼主的 commons-client 做了一下测试。测试代码采用楼主的源码中的测试代码写法。
主要变量:线程数thread,最大值repeat。
我略微修改了一下楼主的MemcacheClient中的 测试代码, 将 write,read分开。
key,value策略: key,value 相同,1 - repeat , 其中repeat是最大值
(测试环境:
硬件:机器: 酷睿T2350,1.86G双核,2G内存。
系统1:XP,运行memcached客户端测试。 测试程序,JDK1.6.0_10, -Xmx=160m
系统2:Ubuntu 8.0.4,运行于VMWare虚拟机中。memcached 1.2.6 + libevent 1.3, memcached 进程 1个,32M内存,最大256并发连接
)
1 spymemcache测试结果
1线程
write test:thread num=1, repeat=10000,size=1, all=10000 ,velocity=21367 , using time:468
read test: thread num=1, repeat=10000,size=1, all=10000 ,velocity=3516 , using time:2844
10线程
write test:thread num=10, repeat=10000,size=1, all=100000 ,velocity=14712 , using time:6797
read test: thread num=10, repeat=10000,size=1, all=100000 ,velocity=5258 , using time:19016
50线程
write test:thread num=50, repeat=10000,size=1, all=500000 ,velocity=8355 , using time:59844
read test: thread num=50, repeat=10000,size=1, all=500000 ,velocity=5631 , using time:88781
2 commons-client测试结果
1线程
INFO [main] (MemcachedClient.java:282) - write test:thread num=1, repeat=10000,size=1, all=10000 ,velocity=2806 , using time:3563
INFO [main] (MemcachedClient.java:309) - read test: thread num=1, repeat=10000,size=1, all=10000 ,velocity=3351 , using time:2984
10线程
INFO [main] (MemcachedClient.java:282) - write test:thread num=10, repeat=10000,size=1, all=100000 ,velocity=5855 , using time:17078
INFO [main] (MemcachedClient.java:309) - read test: thread num=10, repeat=10000,size=1, all=100000 ,velocity=4815 , using time:20765
50线程
INFO [main] (MemcachedClient.java:282) - write test:thread num=50, repeat=10000,size=1, all=500000 ,velocity=5856 , using time:85375
INFO [main] (MemcachedClient.java:309) - read test: thread num=50, repeat=10000,size=1, all=500000 ,velocity=5612 , using time:89094
测试结果可能没楼主的TPS大,只反映我机器上的结果。主要是有同样的测试基准才好对比。
从测试结果看spymemcached的 velocity反映较好一些。spymemcache client, commons-client都 用了nio。
其中read性能表现较低,不知为什么?
我将测试类附上,楼主可以分析一下结果。或者也对 spymemcache做做测试。
主要变量:线程数thread,最大值repeat。
我略微修改了一下楼主的MemcacheClient中的 测试代码, 将 write,read分开。
key,value策略: key,value 相同,1 - repeat , 其中repeat是最大值
(测试环境:
硬件:机器: 酷睿T2350,1.86G双核,2G内存。
系统1:XP,运行memcached客户端测试。 测试程序,JDK1.6.0_10, -Xmx=160m
系统2:Ubuntu 8.0.4,运行于VMWare虚拟机中。memcached 1.2.6 + libevent 1.3, memcached 进程 1个,32M内存,最大256并发连接
)
引用
1 spymemcache测试结果
1线程
write test:thread num=1, repeat=10000,size=1, all=10000 ,velocity=21367 , using time:468
read test: thread num=1, repeat=10000,size=1, all=10000 ,velocity=3516 , using time:2844
10线程
write test:thread num=10, repeat=10000,size=1, all=100000 ,velocity=14712 , using time:6797
read test: thread num=10, repeat=10000,size=1, all=100000 ,velocity=5258 , using time:19016
50线程
write test:thread num=50, repeat=10000,size=1, all=500000 ,velocity=8355 , using time:59844
read test: thread num=50, repeat=10000,size=1, all=500000 ,velocity=5631 , using time:88781
2 commons-client测试结果
1线程
INFO [main] (MemcachedClient.java:282) - write test:thread num=1, repeat=10000,size=1, all=10000 ,velocity=2806 , using time:3563
INFO [main] (MemcachedClient.java:309) - read test: thread num=1, repeat=10000,size=1, all=10000 ,velocity=3351 , using time:2984
10线程
INFO [main] (MemcachedClient.java:282) - write test:thread num=10, repeat=10000,size=1, all=100000 ,velocity=5855 , using time:17078
INFO [main] (MemcachedClient.java:309) - read test: thread num=10, repeat=10000,size=1, all=100000 ,velocity=4815 , using time:20765
50线程
INFO [main] (MemcachedClient.java:282) - write test:thread num=50, repeat=10000,size=1, all=500000 ,velocity=5856 , using time:85375
INFO [main] (MemcachedClient.java:309) - read test: thread num=50, repeat=10000,size=1, all=500000 ,velocity=5612 , using time:89094
测试结果可能没楼主的TPS大,只反映我机器上的结果。主要是有同样的测试基准才好对比。
从测试结果看spymemcached的 velocity反映较好一些。spymemcache client, commons-client都 用了nio。
其中read性能表现较低,不知为什么?
我将测试类附上,楼主可以分析一下结果。或者也对 spymemcache做做测试。
31 楼
yeshucheng
2008-11-02
codeutil 写道
javabean实现Externalizable 接口,自己实现byte转换,就可以不依赖描述信息。
bdb无非也是用bind接口来干同样的事情而已。
bdb无非也是用bind接口来干同样的事情而已。
sdh5724 写道
最近,我陷入一个郁闷。 就是JAVA的序列化问题。
当你向MEMCACHED直接写序列化的对象的时候, 一个对象完整的描述将会被写进memcached。 那么如果写1000W个对象给memcached, 对象描述将会被写无数次。 序列化描述大小往往远远大于对象的实际数据的, 因此, 我们的内存就被大量这些信息浪费了。 谁解决了这个问题? 我在研究berkleydb java edition的解决方案。 这个问题对于内存节约使用是非常重要的。 我现在4台memcache机器吃了我20G内存, 再涨下去, 就要买机器了。 很不划算啊。
当你向MEMCACHED直接写序列化的对象的时候, 一个对象完整的描述将会被写进memcached。 那么如果写1000W个对象给memcached, 对象描述将会被写无数次。 序列化描述大小往往远远大于对象的实际数据的, 因此, 我们的内存就被大量这些信息浪费了。 谁解决了这个问题? 我在研究berkleydb java edition的解决方案。 这个问题对于内存节约使用是非常重要的。 我现在4台memcache机器吃了我20G内存, 再涨下去, 就要买机器了。 很不划算啊。
楼上的,看来你确实没有注意到这位朋友说的话。不妨可以一试。而且这位朋友已经实现了,呵呵
30 楼
sdh5724
2008-11-01
代码写算是还成吧。 不过, 缺乏考虑多SERVER的平衡, 有些地方我感觉过度设计了。 哈:)
29 楼
uniseraph
2008-11-01
uniseraph 写道
fly_hyp 写道我比较欣赏 uniseraph 的源代码没有一行注释。注释是少了点,不过还是有的,呵呵。不想写中文注释,不利于项目的以后发展,如果写英文注释,会打断思路,所以写得比较少,呵呵。不过我觉得现在的代码结构还是比较清晰的,需要注释的地方应该不多。欢迎指正。
新的改动,可以自由选择maven or ant+ivy 编译/运行测试用例,呵呵。
28 楼
uniseraph
2008-11-01
fly_hyp 写道
我比较欣赏 uniseraph 的源代码没有一行注释。
注释是少了点,不过还是有的,呵呵。
不想写中文注释,不利于项目的以后发展,如果写英文注释,会打断思路,所以写得比较少,呵呵。
不过我觉得现在的代码结构还是比较清晰的,需要注释的地方应该不多。
欢迎指正。
27 楼
fly_hyp
2008-10-31
我比较欣赏 uniseraph 的源代码没有一行注释。
26 楼
tiyi
2008-10-31
转换成byte[] 的思想在网络协议里面非常常见,就是自己要实现数据序列化和反序列化了。不过跳脱sun给的好东西(真的是好又多,方便了,信息量就大了),可以精简很多数据。
相关推荐
每个Tomcat服务器都可以访问Memcached,从而实现Session共享。这样,用户在不同的服务器之间切换时,Session数据仍然可以保持一致。 使用Memcached实现Session共享的优点是: 1. 提高性能:Memcached可以提高...
Memcached 是一款高性能、分布式内存对象缓存系统,最初由 LiveJournal 开发团队设计,主要用于缓解数据库负载,提升网站访问速度。它将所有数据存储在内存中,以一个大型哈希表的形式管理,支持各种类型的数据。...
**cacti模板四:memcached监控模板** Cacti是一款开源的网络监控和图形化工具,用于收集、处理、存储、聚合并显示网络设备的数据。在这个特定的模板中,我们关注的是对memcached的监控。Memcached是高速、分布式...
memcached 可以将数据存储在内存中,然后将其提供给 Web 应用程序,以减少数据库的访问次数,提高应用程序的速度和效率。 memcached 的特征 memcached 有以下几个特征: * 协议简单:memcached 使用简单的文本...
Memcached是一种高性能的分布式内存缓存服务器,主要用于减少数据库查询次数,提高动态Web应用的速度和可扩展性。其开发团队来自LiveJournal,官网为http://www.danga.com/memcached/。 Memcached的主要特点包括: ...
Memcached是Danga Interactive公司开发的一个开源项目,主要用于存储和检索数据,以减少对数据库的访问。它的设计目标是简单、快速和分布式的,采用键值对(key-value)存储模式,支持多线程,并且数据存储在内存中...
它通过存储数据到内存中,实现了快速访问。Memcached支持多语言客户端,采用键值对存储模式,适用于存储小块数据,如网页片段、会话数据等。面试时,可能涉及的问题包括Memcached如何解决缓存一致性、其内存管理机制...
* 内置内存存储方式:memcached使用内置的内存存储方式来存储数据,从而提高了数据的访问速度。 * 不互相通信的分布式:memcached支持分布式缓存,可以将缓存分布在多个服务器上,从而提高了系统的可扩展性和可靠性...
在面试中,候选人不仅需要展示他们对这些工具的深入理解,还需要能够分析和解决实际问题,如如何根据业务需求选择合适的数据库,如何设计高效的数据模型,以及如何应对潜在的性能瓶颈和扩展性挑战。
- **内置内存存储方式**:所有数据都存储在内存中,避免了磁盘访问,极大地提升了数据存取的速度。 - **分布式**:memcached的分布式特性意味着每个实例独立工作,不依赖于其他实例的信息,数据分布由客户端自行...
Memcached 是一种高性能的分布式内存缓存系统,用于减轻数据库负载,加速动态Web应用程序的运行速度,提升可扩展性。它的主要目标是通过缓存数据库查询结果,减少对数据库的直接访问,从而提高响应时间和整体性能。 ...
它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过...
Memcached 是一个自由开源的高速缓存系统,可以用来加速动态Web应用程序中的数据访问速度。本文将指导您如何安装和配置 Memcached,并介绍 Memcached 的基本概念和参数。 一、安装 Memcached 1. 使用 yum 安装 ...
它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过...
Memcached因其简单高效的特点,常被用来缓存经常访问但不经常改变的数据。Spring提供了一套完整的集成机制,使得开发者能够方便地在Java应用中使用Memcached。 整合步骤通常分为以下几个阶段: 1. **添加依赖**:...
- **内置内存存储方式**:memcached将数据存储在内存中,这使得数据访问速度非常快。 - **不互相通信的分布式**:memcached之间不直接通信,每个memcached独立运行,分布式部署可提高系统的扩展性和可用性。 ### ...
Memcached 在内存文件系统中关于如何挂载文件系统的说明启动 memcached 服务器要运行 memcached 服务器,请运行以下命令: memcached -vvv -p 11212 或者,如果它在远程机器上,请执行以下操作: memcached -vvv -l ...
Memcached是一款高效、轻量级的分布式内存对象缓存系统,广泛应用于Web应用程序中,以减轻数据库负载,提高数据访问速度。在这个版本1.2.1中,我们探讨其核心特性、工作原理以及如何在Windows环境下进行安装和配置。...
Facebook使用了200台 Memcached 服务器,每台服务器具有16GB 四核 AMD64处理器,缓存数据达到3TB。 Memcached使用 Memcached的安装、启动、命令、统计信息: 1. 安装Memcached:使用libevent事件处理机制,...
Memcached是一个高性能的分布式内存对象缓存系统,主要用于缓解数据库压力,提高动态网页应用的响应速度。它通过在内存中维护一个巨大的hash表来存储各种格式的数据,如图像、视频、文件以及数据库检索结果等。 ###...