网络库压力测试:mongols VS evpp
evpp是360出品的一个网络库,基于libevent,进行了许多改造,对c++11友好。据称比libevent性能要好。
到底有多好呢?360开发人员有自己的测试,信不信由你。
evpp源码下有个httpecho演示,我把它改为hello,world的样子:
void DefaultHandler(evpp::EventLoop* loop,
const evpp::http::ContextPtr& ctx,
const evpp::http::HTTPSendResponseCallback& cb) {
std::stringstream oss;
/*oss << "func=" << __FUNCTION__ << " OK"
<< " ip=" << ctx->remote_ip() << "\n"
<< " uri=" << ctx->uri() << "\n"
<< " body=" << ctx->body().ToString() << "\n";*/
oss <<"hello,world";
//ctx->AddResponseHeader("Content-Type", "application/octet-stream");
ctx->AddResponseHeader("Content-Type", "text/html;charset=UTF-8");
ctx->AddResponseHeader("Server", "evpp");
cb(oss.str());
}
然后设置线程数为4,匹配我的笔记本。
build,运行下,端口在29099。
进而进行ab压力测试:
分别是:
- ab -kc100 -n100000 http://127.0.0.1:29099/
- ab -kc500 -n100000 http://127.0.0.1:29099/
- ab -kc800 -n100000 http://127.0.0.1:29099/
- ab -kc1000 -n100000 http://127.0.0.1:29099/
前三个跑的比较好,最后一个基本跑不动,报
[warn] Error from accept() call: Too many open files
前三个的RPS保持在[29000,36000)区间,确实比libevent要好些。但绝对没有360开发人员宣传的那么好:

该图显示evpp对多个网络库进行了对比。对此,我只能说,其他库本就没有那么好。
同样的输出,同样的线程数,mongols的测试数据都要优于evpp,RPS在[38000,42000)区间。如果使用单线程,mongols的RPS基本42000+。而且,mongols的内存占用仅仅为evpp的1/4。
一句话,不要迷信大厂!如图:


重要的事情应该再说一遍:
不要迷信大厂!
网络库压力测试:mongols VS evpp的更多相关文章
- linux下的CPU、内存、IO、网络的压力测试
linux下的CPU.内存.IO.网络的压力测试 要远程测试其实很简单了,把结果放到一个微服务里直接在web里查看就可以了,或者同步到其他服务器上 一.对CPU进行简单测试: 1.通过bc命令计算特 ...
- [转帖]linux下的CPU、内存、IO、网络的压力测试
linux下的CPU.内存.IO.网络的压力测试 https://www.cnblogs.com/zhuochong/p/10185881.html 一.对CPU进行简单测试: 1.通过bc命令计算特 ...
- [转帖]linux下CPU、内存、IO、网络的压力测试,硬盘读写速度测试,Linux三个系统资源监控工具
linux下CPU.内存.IO.网络的压力测试,硬盘读写速度测试,Linux三个系统资源监控工具 https://blog.51cto.com/hao360/1587165 linux_python关 ...
- Linux系统下的CPU、内存、IO、网络的压力测试
本文转载自:小豆芽博客 一.对CPU进行简单测试: 1.通过bc命令计算特别函数 例:计算圆周率 echo "scale=5000; 4*a(1)" | bc -l -q MATH ...
- 转://linux下的CPU、内存、IO、网络的压力测试工具与方法介绍
转载地址:http://wushank.blog.51cto.com/3489095/1585927 一.对CPU进行简单测试: 1.通过bc命令计算特别函数 例:计算圆周率 echo "s ...
- [转贴]LTP--linux稳定性测试 linux性能测试 ltp压力测试 ---IBM 的 linux test project
https://blog.csdn.net/melody157398/article/details/24354415 LTP--linux稳定性测试 linux性能测试 ltp压力测试 ---I ...
- LTP--linux稳定性测试 linux性能测试 ltp压力测试 ---IBM 的 linux test project
LTP--linux稳定性测试 linux性能测试 ltp压力测试 ---IBM 的 linux test project Peter盼 2014-04-23 11:25:49 20302 收藏 ...
- LTP--linux稳定性测试 linux性能测试 ltp压力测试 内核更新 稳定性测试
LTP--linux稳定性测试 linux性能测试 ltp压力测试 zhangzj1030关注14人评论33721人阅读2011-12-09 12:07:45 说明:在写这篇文章之前,本人也不曾了 ...
- LTP--linux稳定性测试 linux性能测试 ltp压力测试 ltp-pan
LTP--linux稳定性测试 linux性能测试 ltp压力测试 zhangzj1030关注14人评论33710人阅读2011-12-09 12:07:45 说明:在写这篇文章之前,本人也不曾了 ...
随机推荐
- selenium切换窗口后定位元素出现问题的解决方案
在做UI自动化的过程中,有时需要由一个窗口跳转到另一个窗口,这时直接去定位页面元素,可能会出现问题,这时,我们需要将driver与新的窗口进行绑定. 完整代码如下:(python版) #coding= ...
- 重新学习Java的开始~
安装jdk的步骤及解释已经在这篇文章中详细阐述了,如下: http://www.cnblogs.com/godtrue/p/4338323.html 1.如何安装库源文件--摘自coreJava 库源 ...
- <iframe>和<frame>区别
1.frame不能脱离frameSet单独使用,iframe可以 2.frame不能放在body中,否则不能正常显示 frame不能和body同时使用 <!--<body>--> ...
- __x__(44)0910第六天__表单
form表单: form必须属性:action,指定一个服务器地址. 若希望表单中的数据发送给服务器,必须设置name属性. 用户填写的信息,将会追加在url地址?后面,以查询字符串的形式发送给服务器 ...
- CSS3_天猫商品墙
天猫商品墙 网格状布局: 1. ul li 布局 2. float: left; 使得元素在一行.注意: 父元素解决高度塌陷 3. ul 设置固定宽,使得元素挤下去 4. 给父元素加一个 pa ...
- ActiveMQ的安装与使用(单节点)
1. 安装 JDK 并配置环境变量(略) JAVA_HOME=/usr/local/java/jdk1.7.0_72 2. 下载 Linux 版的 ActiveMQ $ wget http://apa ...
- Dev_GridView自定义表格
#region 自定义表格 //初始化测斜分析数据表 BandedGridView view = advBandedGridView1 as BandedGridView; view.BeginUpd ...
- FTP服务器匿名登录
ftp需要开通对匿名用户.本地用户.及虚拟用户的支持.并且特别对虚拟用户中的(stu.teacher.admin)分别授予不同的权限. 1.创建多层目录,然后挂载 2.配置yum源文件 3.安 ...
- 微信小程序计算经纬距离
微信小程序计算经纬距离 微信小程序计算两点间的距离 getDistance: function (lat1, lng1, lat2, lng2) { lat1 = lat1 || 0; lng1 = ...
- 基于hortonworks的大数据集群环境部署流水
一.ambari及HDP安装文件下载地址: 1.系统 操作系统:CentOS7 2.软件 本次安装采用最新版本: ambari-2.7.0.0 hdp-3.0.0.0 详细信息及下载地址如下: Amb ...