tcpcopy可以将正式环境上来自客户端的请求复制一份到测试端并复现,想要真实的对MySQL进行容量规划,可以借助tcpcopy来将线上的流量

呈倍数的增长,将其复制到测试环境,从而快速定位测试环境出现瓶颈时负载情况,进而做好容量的全局把控

部署

伪装客户端IP:1.1.1.4

online server:1.1.1.1

target server :1.1.1.2

assistant server:1.1.1.3

前提条件:

1、三个节点的网络互通无网卡的安全限制(大多数云环境设置了安全限制),tcpcopy通过 -c 选项可以将线上服务器抓取的包复制一份并将来源IP

伪装成指定的客户端IP发送给target,如果进行了安全限制,一个网卡无法绑定2个IP,所以online server则会拒绝发送复制包,在online server

上通过tcpdump抓取的包将会如下

tcpdump -i eth0 -nn port 3306 and host 1.1.1.4

每隔3秒online server会发送RST

关于tcp标志

正常情况下伪客户端会和target建立三次握手

2、操作系统关闭rp_filter,内核2.6版本默认是关闭

echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter

3、按照官方文档将MySQL服务的用户名密码写入配置文件

4、assistant server关闭路由功能,默认是关闭的

echo 0 > /proc/sys/net/ipv4/ip_forward

具体操作

online server

/usr/local/src/tcpcopy/objs/tcpcopy -x 3306-1.1.1.2:3306 -s 1.1.1.3 -c 1.1.1.4 -n 3 -d

# 如果是多实例,sourcePort-targetIP:targetPort,以逗号分隔

/usr/local/src/tcpcopy/objs/tcpcopy -x 3306-1.1.1.2:3306,3307-1.1.1.2:3307 -s 1.1.1.3 -c 1.1.1.4 -n 3 -d

tcpcopy会捕获当前主机的‘3306’报文,更改客户端的IP为1.1.1.4,发送这些报文到target server 1.1.1.2的目标端口‘3306’,并连接1.1.1.3询问intercept 将响应包传递给自己

-n 3 是复制3倍份流量到target,tcpcopy会处理冲突的部分

target server

/usr/local/src/intercept/objs/intercept -i eth0 -F tcp and src port 3306 -d

ntercept会从eth0网卡捕获监听3306端口的tcp包

assistant server

route add -host 1.1.1.4 gw 1.1.1.3

路由客户端的所有响应包到assistant server

模拟客户端流量

online server

# mysql -h1.1.1.1 -uadmin -p123123 -P3306

# 创建带有主键的表t2CREATE TABLE`t2` (

`id`int(11) NOT NULL,PRIMARY KEY(`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8

# 创建无约束字段的表t3CREATE TABLE`t3` (

`id`int(11) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8

# 然后在两个表中分别插入一条数据

insert into t2 values(1);

insert into t3 values(1);

target server

mysql>show processlist;+------+-------------+---------------------+------+---------+---------+--------------------------------------------------------+------------------+

| Id | User | Host | db | Command | Time | State | Info |

+------+-------------+---------------------+------+---------+---------+--------------------------------------------------------+------------------+

| 11 | system user | | NULL | Connect | 3044244 | Slave has read all relay log; waiting for more updates | NULL |

| 12 | system user | | NULL | Connect | 3044248 | Waiting for an event from Coordinator | NULL |

| 13 | system user | | NULL | Connect | 3044248 | Waiting for an event from Coordinator | NULL |

| 14 | system user | | NULL | Connect | 3044248 | Waiting for an event from Coordinator | NULL |

| 15 | system user | | NULL | Connect | 3044248 | Waiting for an event from Coordinator | NULL |

| 3961 | root | localhost | NULL | Query | 0 | starting | show processlist |

| 3962 | admin | 1.1.1.4:24695 | NULL | Sleep | 5 | | NULL |

| 3963 | admin | 1.1.1.4:24286 | NULL | Sleep | 5 | | NULL |

| 3964 | admin | 1.1.1.4:24759 | NULL | Sleep | 5 | | NULL |

+------+-------------+---------------------+------+---------+---------+--------------------------------------------------------+------------------+

9 rows in set (0.00 sec)

mysql> select * from t2;

+----+

| id |

+----+

|  1 |

+----+

1 row in set (0.00 sec)

mysql> select * from t3;

+------+

| id   |

+------+

|    1 |

|    1 |

|    1 |

+------+

3 rows in set (0.00 sec)

可以看到同时3倍的流量复制效应,对应的是3个回话;表t2有约束,tcpcopy会处理冲突的部分,

所以最后看到的是t1表中只有一条数据,而t2表中则是3倍流量复制的结果

tcpcopy mysql_MySQL容量规划之tcpcopy应用之道 西橙相关推荐

  1. Exchange Server 2013 规划系列之日志容量规划、数据库容量规划

    日志容量规划公式: a. 事务日志文件大小为每个1M b. 平均邮件大小150KB,则每个邮箱生成的日志增加1.9倍 c. 如果邮件大小是300KB,则从1.9倍增加到3.8倍 实例: 假设每日收发邮 ...

  2. 《大型网站服务器容量规划》一2.1 什么是容量

    本节书摘来异步社区<大型网站服务器容量规划>一书中的第2章,第2.1节,作者: 郑钢 责编: 张涛,更多章节内容可以访问云栖社区"异步社区"公众号查看. 2.1 什么是 ...

  3. 《大型网站服务器容量规划》一1.1 容量规划背景

    本节书摘来异步社区<大型网站服务器容量规划>一书中的第1章,第1.1节,作者: 郑钢 责编: 张涛,更多章节内容可以访问云栖社区"异步社区"公众号查看. 1.1 容量规 ...

  4. 大型网站服务器 pdf,大型网站服务器容量规划[PDF][145.25MB]

    内容简介 内 容 提 要本书讲解了用数学回归分析方法来做服务器容量规划的思路,让读者掌握服务器容量规划的量化方法:模型的选择是服务器容量规划的关键,不同的程序有不同的模型.本书使用nginx+PHP+ ...

  5. Hyper-v副本容量规划器

    为了业务连续性和灾难恢复的目的,Windows Server 2012和Windows Server 2012 R2的Hyper-V管理员可以将其虚拟机从主服务器/集群复制到副本服务器/集群.适用于H ...

  6. 【elasticsearch】 Elasticsearch集群规模和容量规划的底层逻辑

    1.概述 转载:https://mp.weixin.qq.com/s?__biz=MzI2NDY1MTA3OQ==&mid=2247484628&idx=1&sn=666e41 ...

  7. java 服务 容量评估,容器云平台容量规划及管理优化

    随着容器云平台实践的深入,容器基础设施资源的分配和使用也暴露出了前期产品设计的一些意料之外的问题.特别在证券行业,资源的使用时段往往比较集中在上午9点到10点时段前后,过了这个时段,资源的使用量就迅速 ...

  8. 服务器做系统怎么规划,如何做系统容量规划 | 知行天下

    为了迎接中秋节及国庆节的到来,需要对线上服务器进行扩容,发现了一些问题,就顺手整理下如何做容量规划 容量规划 容量定义:资源所能支撑特定服务的能力 容量规划:资源管理 适用范围:同构集群 性能 &am ...

  9. ElasticSearch部署架构和容量规划

    一.前言 前面介绍了ElasticSearch原理和使用相关的内容,在生产环境如何比较科学的进行容量规划.部署.调优.排查问题呢,业界和官方也对相关的问题进行总结,我这边也结合自己的经验对这些使用El ...

  10. 地铁读书笔记-容量规划

    容量规划 容量规划可以检查系统处理负载的情况,以及系统如何随着负载的增加而扩展.做容量规划有很多方法,包括研究资源极限和因素分析.本节还包括了扩展的解决方案,包括负载均衡器(load balancer ...

最新文章

  1. git track远程分支
  2. 最让青年科学家们困惑的 10 个问题,是什么?
  3. Html内容超出标记宽度后自动隐藏
  4. tkinter 10 messagebox 弹窗
  5. Sharding Sphere如何配置,把两表连接导致的笛卡尔集的效果去掉
  6. 自动完形填空系统构建
  7. delphi 提取字符中的数字
  8. excel 图片转url_最全总结 | 聊聊 Python 办公自动化之 Excel(下)
  9. Openfire开发配置,Openfire源码配置,OpenFire二次开发配置
  10. spring与struts2整合出现错误HTTP Status 500 - Unable to instantiate Action
  11. android alpha java_Android support 26.0.0-alpha1 产生的问题(zz)
  12. CXF 生成Web Service Client(将WSDl 转化成 Java代码)
  13. 谷歌将反欺诈系统绕过纳入漏洞奖励计划
  14. pythonmax函数原理_Softmax函数原理及Python实现
  15. 通过MapReduce统计每个单子在每个文件中出现的次数(FileSplit的使用),单词作为key,所在文本和次数作为value进行统计...
  16. Tecplot 10 将输入的多个plt文件做成动画 :
  17. 北京邮电大学计算机专业录取名单,祝福!“跪地谢母”考生被北京邮电大学计算机类专业录取...
  18. u盘盘符不显示 win10_win10系统u盘不显示盘符的解决方法
  19. html是什么意思网络用语,网络用语内涵是什么意思
  20. 2020年文档相似性算法:初学者教程

热门文章

  1. Unity图片格式转换
  2. [Steam]成就游戏销量乐观
  3. 软件工程——2021软科中国大学专业排名
  4. chrome主页被毒霸网址大全劫持解决办法
  5. 基于深度学习的音乐推荐系统(一)音频频谱图绘制
  6. offline RL介绍
  7. .pos文件打开方式
  8. 八皇后问题(详解带注释)
  9. ECSHOP模板修改
  10. 代理服务器的功能都有哪些?