阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Nginx HttpMemcModule和直接访问Memcached效率对比测试

98次阅读
没有评论

共计 1599 个字符,预计需要花费 4 分钟才能阅读完成。

  • 测试环境:
  1. 测试客户机 A:HP DL380G4,2 个双核 CPU,4G Ram,2 块 10k RPM SAS 盘做 raid 1,ext3
  2. Nginx 所在服务器 B:DELL R710,E5620 * 2,32G Ram,6 块盘 15K RPM SAS 盘做 raid 1+0,xfs
  3. Memcached 所在服务器 C:DELL R710,E5620 * 2,32G Ram,6 块盘 15K RPM SAS 盘做 raid 5,ext4
  4. Nginx 设置:keepalive 8192
  5. Php fpm 设置:listen.backlog = -1
  6. memcached 启动参数:memcached -d -m 24576 -p 12000 -c 10240
  7. 内核参数:
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_tw_reuse = 0
net.ipv4.tcp_timestamps = 1

关于这几个内核参数对应的解释可参考资料:2.12. Reduce TCP performance spikes

  • 测试方案:
  1. 使用 php 连接本地 nginx 代理,存取远程 memcached 数据;
  2. 使用 php 直接连接远程 memcached 服务器;
  3. 从测试客户端用 ab 发起并发测试;
  4. 并发线程从 64 开始,直到 2048,分别是 64 的 N 倍;
  5. 每种并发模式都进行 5 轮测试,最后取平均值;
  6. 存储在 memcached 中的 key 长度 96 个字符,value 长度 400 字符,总是随机生成;
  • 测试结果:

Nginx HttpMemcModule 和直接访问 Memcached 效率对比测试 Nginx HttpMemcModule 和直接访问 Memcached 效率对比测试

Nginx HttpMemcModule 和直接访问 Memcached 效率对比测试 Nginx HttpMemcModule 和直接访问 Memcached 效率对比测试

结论及建议:

  1. Php 程序通过 HttpMemcMC 访问 memcache 和直接访问 memcached 的效率并没有太多损失;
  2. 采用 php 直接访问 memcached,失败的次数相比通过 HttpMemcMC 有较大增加,应该是 HttpMemcMC 在 keepalive 方面更有优势;
  3. 后续会在进行一次测试,调整 nginx、php 及内核相关参数,再做对比;
  4. 本次测试没有和正常的 http 请求混在一起对比,测试结果不具备绝对参考价值;

单从本次测试结果来看,HttpMemcMC 值得拥有 Nginx HttpMemcModule 和直接访问 Memcached 效率对比测试

  • 结果结果更新:

调整上述几个内核参数:

net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_timestamps = 1

通过调整内核参数,调整 tcp 连接复用性提高 tcp 效率,新的测试结果如下:

Nginx HttpMemcModule 和直接访问 Memcached 效率对比测试 Nginx HttpMemcModule 和直接访问 Memcached 效率对比测试 Nginx HttpMemcModule 和直接访问 Memcached 效率对比测试 Nginx HttpMemcModule 和直接访问 Memcached 效率对比测试

备注:由于 2 次测试案例中,每并发线程请求数不一样,所以你会发现两边的数据无法直接对比,这是我的失误,抱歉。

  • 补充小结:

调整完内核后:
1. 可以发现,HttpMemc 的平均效率只有 NativeMC 72.62%;
2. 调整内核 tcp 参数对提升 tcp 效率非常有帮助,Failed requests 次数完全为 0;
3. 由于可以提高 memcached 连接复用率以及对程序透明的好处,即便 HttpMemc 性能不如 NativeMC,损失并不是非常厉害,仍然是可以接受的;

Memcached 的详细介绍 :请点这里
Memcached 的下载地址 :请点这里

参考阅读:

Memcached 安装及启动脚本 http://www.linuxidc.com/Linux/2013-07/87641.htm

PHP 中使用 Memcached 的性能问题 http://www.linuxidc.com/Linux/2013-06/85883.htm

Ubuntu 下安装 Memcached 及命令解释 http://www.linuxidc.com/Linux/2013-06/85832.htm

Memcached 的安装和应用 http://www.linuxidc.com/Linux/2013-08/89165.htm

使用 Nginx+Memcached 的小图片存储方案 http://www.linuxidc.com/Linux/2013-11/92390.htm

Memcached 使用入门 http://www.linuxidc.com/Linux/2011-12/49516p2.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-20发表,共计1599字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中