最近需要对缓存代理服务器的镜像重定向分发工具做压力测试,需要做到下面的要求:

1,为了保证流量足够大和不影响其他网络的正常访问,整个测试流程最好在局域内完成;

2,压测结果必须能够实时有效的显示

经研究提出了下面的解决方案,如图:

1,由webbench做压测客户端,压测结果可实时显示在界面上2,客户端到nginx web上请求,再有hijack模拟数据返回,具体操作流程如下:
A:hijack抓取网卡数据,并将构造的数据模拟nginx web返回给客户端
B:Nginx Web延迟数据返回,这个需要修改Nginx源代码才可以实现

Niginx修改到的http的入口程序源码文件——ngx_http_request.c

void
ngx_http_process_request(ngx_http_request_t *r)
{ngx_connection_t  *c;c = r->connection;//此处为修改到的源码ngx_msleep(16);
#if (NGX_HTTP_SSL)if (r->http_connection->ssl) {long                      rc;X509                     *cert;ngx_http_ssl_srv_conf_t  *sscf;if (c->ssl == NULL) {ngx_log_error(NGX_LOG_INFO, c->log, 0,"client sent plain HTTP request to HTTPS port");ngx_http_finalize_request(r, NGX_HTTP_TO_HTTPS);return;}sscf = ngx_http_get_module_srv_conf(r, ngx_http_ssl_module);if (sscf->verify) {rc = SSL_get_verify_result(c->ssl->connection);if (rc != X509_V_OK&& (sscf->verify != 3 || !ngx_ssl_verify_error_optional(rc))){ngx_log_error(NGX_LOG_INFO, c->log, 0,"client SSL certificate verify error: (%l:%s)",rc, X509_verify_cert_error_string(rc));ngx_ssl_remove_cached_session(sscf->ssl.ctx,(SSL_get0_session(c->ssl->connection)));ngx_http_finalize_request(r, NGX_HTTPS_CERT_ERROR);return;}if (sscf->verify == 1) {cert = SSL_get_peer_certificate(c->ssl->connection);if (cert == NULL) {ngx_log_error(NGX_LOG_INFO, c->log, 0,"client sent no required SSL certificate");ngx_ssl_remove_cached_session(sscf->ssl.ctx,(SSL_get0_session(c->ssl->connection)));ngx_http_finalize_request(r, NGX_HTTPS_NO_CERT);return;}X509_free(cert);}}}#endifif (c->read->timer_set) {ngx_del_timer(c->read);}#if (NGX_STAT_STUB)(void) ngx_atomic_fetch_add(ngx_stat_reading, -1);r->stat_reading = 0;(void) ngx_atomic_fetch_add(ngx_stat_writing, 1);r->stat_writing = 1;
#endifc->read->handler = ngx_http_request_handler;c->write->handler = ngx_http_request_handler;r->read_event_handler = ngx_http_block_reading;ngx_http_handler(r);ngx_http_run_posted_requests(c);
}

镜像分发工具压测解决方案——hijack压测相关推荐

  1. 不看我真的会很伤心【压测工具:提升系统性能的利器】,查看TPS,计算TPS,计算压测指标、压测名词解释、教大家如何压测

    目录 前言 一.压测是什么? 二.为什么要压测? 三. 压测名词解释 1.压测类型解释 2.压测名词解释 3.机器性能指标解释 4.访问指标解释 四.如何计算压测指标 五.常见的压测工具 1.JMet ...

  2. tcp压测工具_【解决方案】性能压测及分析调优实践

    [关键导读]结合一次重保活动的性能压测需求,详解了整体的性能测试策略及性能分析思路,并在实施过程中有效利用了网易易测的NPT性能测试平台一站式完成了压测场景设计.执行.业务指标监控.性能指标分析等活动 ...

  3. golang 压测工具vegeta改造-支持自定义压测任务

    背景 之前在公司做压测工作的时候,使用了web压测工具vegeta.后续又接到过dns的性能压测.redis的性能压测等任务.http的压测工具vegeta并不能满足需求了.于是模仿vegeta的li ...

  4. 物联网架构实例—部标过检工具使用(物联网套件压测)

    1.安装包 下载 2.安装MySQL数据库 如果安装时提示缺少C++ 2015的组件,需要执行vc_redist.x64.exe进行修改,直接双击执行vc_redist.x64.exe即可. 安装到这 ...

  5. 如何做好性能压测(一)丨压测环境设计和搭建

    简介:如何做好性能压测(一)丨压测环境设计和搭建 一般来说,保证执行性能压测的环境和生产环境高度一致是执行一次有效性能压测的首要原则.有时候,即便是压测环境和生产环境有很细微的差别,都有可能导致整个压 ...

  6. java 解压文件_java实现解压zip文件,(亲测可用)!!!!!!

    项目结构: Util.java内容: package com.cfets.demo; import java.io.File; import java.io.FileOutputStream; imp ...

  7. ab压测与siege压测

    本文的核心内容:ab压测与Siege压测工具的使用. 为了测试接口的性能.我们需要对接口进行压力测试,看看接口能承受多大访问量.在大访问量情况下性能怎样,这些数据指标好坏将会直接影响接口调用方的前端展 ...

  8. Jmeter 压测和AB压测的比较

    [使用场景] Jmeter告诉你每个请求实际上耗费多长时间.AB只是简单的用数学方式统计平均值.所以从准确性来说,jmeter比ab更准确,更多如数据处理.但是ab的速度更快,更轻巧.如果性能测试的目 ...

  9. 解压报错 你需要从上一压缩卷启动解压命令以便解压 解决方案及WinRAR怎么分卷压缩详解

    一.解决方案: 1.问题描述: 解压的时候报错,提示"你需要从上一压缩卷启动解压命令以便解压" 2.解决: 会出现这个问题,是因为你正在解压的文件为分卷压缩生成的压缩包.首先你要确 ...

  10. Jmeter阶梯式压测与普通压测区别

    1.普通的压测方式,并发的线程数是可预知的:而阶梯压测是未知的. 普通压测,只要参数不变,每次结束后,#Samples一定是线程数×循环次数. 而阶梯式压测,每次的Samples都是变化的. 注:一个 ...

最新文章

  1. [转] web无插件播放RTSP摄像机方案,拒绝插件,拥抱H5!
  2. html5判断text文本是数字,JavaScript常用判断写法大全
  3. 【重构】微信小程序倒计时组件
  4. google earth pro 64位_七彩虹秀精准刀工!iGame RTX 3060 Ti Advanced OC评测:烤机3小时64度...
  5. Linux系统运行Windows程序(Linux执行windows程序)
  6. MySQL中将查询所得结果集的某一字段拼接成字符串
  7. 关与DataList和DataGrid的区别和重要性
  8. 15数码 java_A*算法求解15数码问题
  9. Python学习笔记[5]---else语句和with语句
  10. 浅析如何让Spring 来管理Action的配置方法
  11. koa mysql 按钮级权限_Vue要做权限管理该怎么做?控制到按钮级别的权限怎么做?...
  12. 苹果手机java设置_苹果java文件怎么打开?苹果手机安装JAVA程序的方法
  13. Laravel框架简介与环境搭建
  14. java基础热门侠客养成_侠客养成手册攻略大全 新手快速上手攻略[多图]
  15. 闪迪MicroSD卡无法格式化修复经验(不一定管用)
  16. python实现电子邮件编程
  17. python手机端给电脑端发送数据_神途传奇 (手机端+电脑端) 数据互通 传奇来袭 www.8wf.com...
  18. 求某学生8门课的平均分
  19. Minecraft神奇玩家不用键盘,行走全部靠骑猪最后通关MC
  20. 驰网云数据库MySQL SQL Server

热门文章

  1. Android桌面小插件——Widget
  2. 多表查询和动态SQL
  3. Windows Defender
  4. 解决:Docker Container exited with code 137
  5. coursera 助学金申请模版
  6. 嵌入式Linux设置开机自动运行程序(基于BusyBox init)
  7. 国内工业软件排行榜、市场份额与主要玩家
  8. vm8网卡原理及应用
  9. python数列求和_python等差数列求和公式前 100 项的和实例
  10. 敏捷其实很简单(7) Scrum Master的7种武器之长生剑和孔雀翎