-
Notifications
You must be signed in to change notification settings - Fork 403
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
buaazp: Added v2.0 benchmark report.
- Loading branch information
Showing
4 changed files
with
44 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -37,11 +37,15 @@ Beansdb和SSDB不仅分别代表了memcached协议和Redis协议,也代表了 | |
> ```` | ||
> stress也还在开发中,后续增加更多好用的功能。 | ||
测试在一台服务器上进行,由于图片服务是一种读请求远远大于写请求的特殊存储服务,我的测试就只进行高并发读取,测试结果如下图所示: | ||
【第一次简陋的测试】测试在一台服务器上进行,由于图片服务是一种读请求远远大于写请求的特殊存储服务,我的测试就只进行高并发读取,测试结果如下图所示: | ||
![zimg_storage_mode_test](http://ww1.sinaimg.cn/large/4c422e03tw1efpkuhy2p0j20or0jmwg6.jpg) | ||
测试结果显示,本地存储性能最好,SSDB略优于beansdb,但差别微乎其微,考虑到他们各有自己的优点,我最终的决定是: | ||
【第二次测试】由于第一次测试样本太小,毕竟选择后端这样重要的事情需要慎重,于是我又进行了一次更加详细的测试,这次测试光是ab执行次数就达到了330次之多,整理统计这些数据都花费了相当长的时间。测试详细情况见[测试报告](http://blog.buaa.us/?p=224),此处只贴出关键数据图: | ||
![qps](http://ww1.sinaimg.cn/large/4c422e03tw1efvtggyr4pj216k0vitec.jpg) | ||
根据上述测试结果显示,本地存储性能最好,SSDB略优于beansdb,但差别微乎其微,考虑到他们各有自己的优点,于是我最终决定: | ||
**zimg同时支持beansdb和SSDB**。 | ||
同时支持多种存储模式的另一个优点是适用性广,因为同时支持了memcached协议和Redis协议,你可以采用其他任何用得顺手的存储后端,比如[Memcachedb](http://memcachedb.org/)、甚至是Redis本身,**以及谁能知道将来会不会又出来其他更加优秀的NoSQL数据库呢**。 | ||
直接存取磁盘的模式也没有移除,方便那些只想用一台起了zimg的单机做图片服务器的朋友们。 | ||
|
@@ -78,10 +82,11 @@ New Features: | |
- 将图片处理的逻辑往lua脚本中转移,这样可以使zimg在无需重新编译甚至无需重启的情况下改变图片处理规则,或者增加新规则,用户也可以自定义自己的处理逻辑,满足不同的需求。 | ||
- 大家可能已经有所耳闻,我们公司这边有自己开发的图片处理库webimg,性能好于imagemagick,而且不会内存泄露,使用起来也极其方便(webimg库支持c和PHP,最近我又给它增加了lua和go接口),一直有人呼吁开源出来给大家使用,我当然也非常希望,但这是公司的东西,可能需要老大们做决定。如果一旦webimg开源,zimg将果断抛弃imagemagick转向它。 | ||
- 还有一个是老问题了,zimg处理上传的逻辑写得非常搓,又笨又简陋,需要改进。 | ||
- 还有一个是老问题了,zimg处理上传的逻辑写得非常搓,又笨又简陋,已经修复的BUG中有好几个与它相关,需要改进。 | ||
- 完善工具和文档,看着别人做的开源项目(比如SSDB)这也有那也有,感觉非常高端大气上档次,只能慢慢补充吧。 | ||
然后有人向我咨询zimg的license问题,问我是否可以商业化,答案是可以的,希望大家随便用随便改,如果你的公司或者APP采用了zimg,希望在此处留言告知,或者发邮件通知我一声,邮箱是````[email protected]````。 | ||
开源项目zimg是我利用业余时间无偿完成的,很多个深夜都在写代码中度过,作者并不指望靠它获利,只是诚惶诚恐。如果使用它可以给你带来一点便利,我已非常满足。 | ||
开源项目zimg是我利用业余时间无偿完成的,很多个深夜都在写代码中度过,作者并不指望靠它获利,只是诚惶诚恐。如果使用它可以给你带来一点便利,我已非常满足。 | ||
大家五一假期快乐! | ||
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
## benchmark of zimg v2 storage backends | ||
|
||
这个测试是为了检验zimg采用不同存储后端时读取数据时的性能差异,以便根据测试数据选择最佳的存储方案。 | ||
|
||
#### 测试方案 | ||
|
||
提前向三种存储后端(本地磁盘、beansdb和SSDB)中存入测试图片,zimg分别以不同的模式启动并进行测试。测试工具为ab(httpd v2.2.24自带)。为了避免测试工具对测试对象的影响,ab位于测试机A中,zimg及其存储后端位于测试机B中,AB位于同一机房中。 | ||
测试分别在并发10~1000水平下进行,每种模式在每个并发水平下测试11次,每次发送20000个请求,记录每次测试的QPS和单请求平均完成时间。 | ||
为了避免误差带来的影响,手工摘除掉11此测试中结果最差的一次,然后取剩余10次的平均值,以代表该模式在对应并发水平下的处理能力。 | ||
|
||
#### 测试机 | ||
|
||
测试机为中等配置的服务器: | ||
|
||
```` | ||
CPU: Intel(R) Xeon(R) CPU E5-2620 @ 2.00GHz, 12 Cores | ||
Memory: 32GB | ||
OS: CentOS release 5.8 | ||
Disk: | ||
buffered disk reads: 156.39 MB/sec | ||
cached reads: 11024.11 MB/sec | ||
zimg: version 2.0.0 Beta | ||
```` | ||
|
||
#### 测试结果 | ||
|
||
在所有并发水平下local disk模式都优于其他两种存储后端,beansdb和SSDB相差不大,这主要是因为zimg的处理能力还远远达不到其二者的理论极限(beansdb可达到24428,SSDB更是到了夸张的55541),所以成了水桶效应中的短板。 | ||
以下所有测试结果都是限定zimg请求响应时间在300ms以内级别,更高的并发水平下请求响应时间变长,已经脱离了现实意义。 | ||
测试结果如下图所示,原始数据链接在最后。 | ||
|
||
![qps](http://ww1.sinaimg.cn/large/4c422e03tw1efvtggyr4pj216k0vitec.jpg) | ||
|
||
![time](http://ww2.sinaimg.cn/large/4c422e03tw1efvtgg1xsfj216k0vm77f.jpg) | ||
|
||
[测试结果详细数据](http://ww4.sinaimg.cn/large/4c422e03tw1efvtzen5soj216v32gkjl.jpg) |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.