- 博客(74)
- 收藏
- 关注
原创 性能测试分享与成长计划(一)
学习目标:性能测试指标性能测试工具性能测试场景设计性能测试常见问题及其定位性能调优技术架构和业务架构匹配分析性能测试报告学习内容:基础指标:TPS、QPS、RPS、EPS、ART、持续时间、并发、带宽、CPU、内存、磁盘I/O、磁盘存储、GPU、显存学习时间:小周周六下午15:00-16:00学习产出: 技术笔记 1 遍...
2022-05-28 16:07:11
788
原创 Elasticsearch初步部署配置-(不改会启动失败、ip无法连接)
Elasticsearch初步部署配置-(不改会启动失败、ip无法连接)vim config/elasticsearch.ymlvim/etc/sysctl.conf添加内容:vm.max_map_count=655360执行:sysctl -p启动es成功:远程访问成功:
2021-03-06 22:58:03
294
原创 高并发架构设计原则-缓存
缓存大多存在于读服务中来对抗流量。客户端浏览器缓存、客户端缓存客户端网络代理服务器开启缓存广域网使用代理服务器(含CDN)、使用镜像服务、使用P2P技术源站及源站网络接入层缓存、应用层缓存、分布式缓存、静态化和伪静态化、操作系统缓存...
2020-06-15 20:43:54
257
原创 高并发架构设计原则-数据异构
什么是数据异构呢?简单举个例子,有一张基础表含有商品单格、数量、仓库等信息,有业务场景查询只需要查单价和数量,然而其他信息都不关心,可以把这部分数据从基础表中复制出来单独成表;以此类推,异构既可以是分表也可以是合表。目的是让业务使用数据更方便和快捷。实用中基本步骤如下:数据异构 接收数据,然后原子化存储到合适的存储引擎。数据聚合 把“有用“的数据聚合成一张表或者一对keyvalue前端展示 通过一次货少量几次调用拿到所需要的数据...
2020-06-15 20:31:25
460
原创 高可用、高并发的设计原则概括
最近前辈推荐看架构相关的一些书籍,有些收获不知道该怎么形容,索性在回头回忆这些内容的时候想到哪写到哪,作为笔记分享吧。高可用:负载均衡、限流、熔断、隔离、降级、超时与重试机制、回滚机制、压测与预案。高并发:缓存、池化、异化、队列、扩容等(这个等.......)。...
2020-06-13 22:16:07
267
原创 高并发架构设计原则-消息队列
消息队列作用解耦、消峰、异步解耦有ABCD四个系统,A系统有一条数据需要传给BCD,A系统不仅要关心数据发送还要处理数据发送BCD其中产生的异常,如B挂掉了怎么办,A是否重传?如果使用消息队列,A系统只负责发送消息到消息队列,BCD消费消息队列中的消息即可,A系统不关心消息发给谁了,谁消费失败了等等问题。消峰类似于地铁排队?(暴露了。。。),10000万个并发请求直接到服务器,服务器最大处理能力2000个每秒,那样极限情况下会有8000个请求在等待征用系统资源,导致请求超时系统资源紧张、
2020-05-28 22:10:56
406
原创 高并发架构设计原则-服务设计思考过程
进程内服务->单机远程服务->集群手动注册服务->自动注册和发现服务->服务的分组/隔离/路由->服务治理和限流/黑白名单。进程内服务单机软件,如office办公软件、单机游戏等等单机远程服务客户量和访问量少、服务压力不大单机可以支持的情况下集群手动注册服务集群部署,但是手动配置Nginx进行服务器的扩展自动注册和发现服务如Dubbo使用zookeeper服务的分组/隔离/路由防止系统访问量过大导致整体服务挂掉、需要对不同的调用方提供相应
2020-05-27 16:09:34
244
原创 高并发架构设计原则-拆分
在系统设计初期,是做一个大而全的系统还是根据模块进行拆分要根据环境和需求进行权衡。访问量不大、功能简单、研发资源不多时可以做一个大而全的系统即可;如果访问量大资源充足、功能繁多可以考虑按功能拆分系统。下面几种拆分维度系统维度按照系统功能/业务拆分,比如商品系统、购物车系统、结算系统、订单系统等。功能维度对一个系统进行功能再次拆分,比如优惠券系统可以拆分为后台优惠券创建系统、领券系统、用券系统等。读写维度根据读写比例特征进行拆分。比如商品系统,交易的哥哥系统都会读取数据,读的量
2020-05-27 11:20:53
383
原创 高并发架构设计原则-无状态
无状态:服务端不保存任何客户端请求者信息,客户端的每次请求必须具备自述信息,通过这些信息识别客户端身份。优点-客户端请求不依赖服务端的信息,任何多次请求不需要必须访问到同一台服务,这样为服务器横向扩展提供了条件。有状态:服务端需要记录每次绘画的客户端信息,从而识别客户端身份,根据客户端身份进行对请求的处理,如session。缺点-服务端保存大量客户端信息,增加服务端压力。-服务端保存用户状态,无法进行水平拓展。-客户端请求依赖服务端,多次请求必须访问同一台服务器。有状态无
2020-05-26 22:47:34
842
原创 Linux启动网卡
通常情况下我们用电口做管理口,光口做数据通讯口。例如:eth0eth1为管理口,eth2eth3为数据传输口;ifconfig发现eth2eth3网卡没有启动,则需要手动up网卡:#启动网卡eth2ifconfig eth2 up#启动网卡eth3ifconfig eth3 up#检查eth2状态ethtool eth2#检查eth3状态检查状态如下:状态为:Linkdetected:yes表示网卡启动成功。...
2020-05-26 15:37:23
1597
原创 yum安装[Errno 12] Timeout
[root@*****]# yum -y install tcpreplayLoaded plugins: fastestmirror, langpackshttp://mirror.bit.edu.cn/centos/7.7.1908/os/x86_64/repodata/repomd.xml: [Errno 12] Timeout on http://mirror.bit.edu.cn/centos/7.7.1908/os/x86_64/repodata/repomd.xml: (28, 'Res.
2020-05-26 15:04:06
3969
3
原创 TCP/IP协议二OSI模型通信处理
OSI通信处理流程应用层发送端A编辑内容“早上好”在点击发送的一刻起,就进入了应用层协议处理的处理了。应用层协议在所要发送的数据包前端附加一个首部,首部标明的邮件内容“早上好”和接收端收件人B。表示层表示层添加表示层首部信息,并将设备特有格式的数据转换为统一的网络数据格式后,转交给下一层处理。如:UTF-8,UTF-16等或其他视频、音频等格式。会话层会话层添加会话首部...
2020-04-06 21:27:31
237
原创 TCP/IP协议一概括OSI模型及其作用
最近工作中遇到性能问题和网络协议牵扯的越来越多,越来越头大,因此恶补一下网络协议与大家分享。OSI参考模型OSI参考模型各个层的作用应用层为应用程序提供服务并规定应用程序中通信相关的细节。包括文件传输、电子邮件、远程登录等协议。表示层将应用处理的信息转换为适合网络传输的格式,或将来自下一层的数据转换为上层能够处理的格式。因此它主要负责数据格式的转换。具体来说,就是将...
2020-04-04 23:23:46
350
原创 服务器被攻击后的处理过程
安全总是相对的,再安全的服务器也有可能遭受到攻击。原则是:尽量做好系统安全防护,修复所有已知的危险行为,在系统遭受攻击后能够迅速有小弟处理攻击行为,最大限度地降低攻击对系统产生的影响。1.切断网络2.查找攻击源3.分析入侵原因和途径4.备份用户数据5.重新安装系统6.修复程序或系统漏洞7.恢复数据和连接网络以上每一点分开来说的话细节会很多,篇幅所限,以后继续分享。...
2020-01-31 11:46:23
477
原创 Linux查看进程文件绝对路径
当系统出现问题或者需要排查问题的时候,我们通常会去看哪个进程导致的,Linux进程对应着特定的文件,找到发现问题的文件是排查系统问题的基本步骤,那么我们如何找到进程的文件目录呢?top -c我们看到上图sshd等进程的文件目录显示了出来,但是top进程的文件目录还是没有显示,下面介绍下解决此类问题的方法:1.pidof进程名称 获取进程id2.ls -al /proc...
2020-01-31 11:37:25
2725
原创 Linux tcp_wrappers防火墙
tcp_wrappers是一个用来分析TCP/IP封包的软件,类似的IP封包软件还有iptables。一般Linux默认安装了tcp_wrappers。作为一个安全的系统,Linux本身有两层安全防火墙,通过IP过滤机制的iptables实现第一层防护。iptables防火墙通过直观地监视系统的运行状况,阻挡网络中的一些恶意攻击,保护整个系统的正常运行,免遭攻击和破坏。如果通过了第一层防护,那么下...
2020-01-30 20:01:23
240
转载 Linux添加用户和用户组
用户组添加组:groupadd 组名groupaddtestcat /etc/group |greptest删除组:groupdel 组名groupdeltest删除组:cat /etc/group | grep 组名用户添加用户:useradd -m -g 组名 用户名注意:-m 自动建立用户家目录; -g 指定用户所在的组,否则会建立一个...
2020-01-30 19:02:13
342
原创 HTTP状态码
1xx:信息100 Continue服务器仅接收到部分请求,但是一旦服务器并没有拒绝该请求,客户端应该继续发送其余的请求。101 Switching Protocols服务器转换协议:服务器将遵从客户的请求转换到另外一种协议。2xx:成功200 OK请求成功(其后是对GET和POST请求的应答文档)201 Created请求被创建完成,同时新的资源被创建。2...
2020-01-29 14:37:10
290
原创 VM虚拟机内的CentOS ping报错:name or service not know
ping www.baidu.com报错为name or service not know。修改cd /etc/sysconfig/network-scripts/找到使用的网卡配置文件,我的是ifcfg-ens33,修改内容如下,TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=dhcpDEFROUTE=...
2020-01-21 16:16:21
870
原创 CPU-平均负载
简单来说,平均负载是指在单位时间内系统处于可运行状态和不可中断状态的进程数,也就是平均活跃进程数。与CPU使用率没有直接关系。可运行状态:正在使用CPU或等待CPU的进程。runnable 和 running不可中断状态:处于内核态关键流程中的进程,此进程是不可被中断。disk sleepuptime含义:系统1分钟、5分钟、10分钟时段内的平均活跃进程数。负载指标:不超过70%,...
2019-12-31 16:59:12
326
1
原创 Jmeter指定jdk版本启动
场景当jdk生成SSL通行证后,本地IDE运行代码请求服务成功,但Jmeter做java请求不通报如下错误:检查java代码后发现没问题,为什么用Jmeter做请求会报错呢?所以为Jmeter指定JDK启动做尝试。解决方法进入jmeter bin目录选择jmeter.bat前面添加set MINIMAL_VERSION=1.8.0 //即你要启动的jdk版本最小版本;set...
2019-10-30 15:09:54
1681
1
原创 mysql-5.7.27-winx64安装
1.官网下载mysql-5.7.27-winx64.zip压缩包2.解压压缩包到指定目录,这里为D:\mysql\mysql-5.7.27-winx643.配置环境变量:%MYSQL_HOME%为D:\mysql\mysql-5.7.27-winx64\mysql-5.7.27-winx64,path添加%MYSQL_HOME%\bin4.准备好my.ini文件内容如下:[mys...
2019-09-02 15:33:46
2354
原创 linux性能测试工具sysbench安装方法
sysbench模拟多线程1.安装依赖# yum -y install make automake libtool pkgconfig libaio-devel# yum -y install mariadb-devel openssl-devel# yum -y install postgresql-devel2.下载sysbench# wget http://downloa...
2019-08-18 14:02:05
2710
1
原创 【笔记】C++引用类型变量(一)
引用(referance)就是对象的另一个名字。在实际程序中,引用主要用作函数的形式参数。引用是一种复合类型(compound type),通过在变量名前加“&”符号来定义。在引用情况下,每一种引用类型都关联到其他类型不能定义引用类型的引用,但是可以定义任何其他累心的引用。引用必须与该引用有相同类型的对象。int iva1 = 1024;int &refVa1 = iv...
2019-07-21 21:57:58
312
原创 【笔记】C++ 第一节
经过长期的心里斗争、最终还是接受这份挑战:C++ 学习。今天开始学习,一起进步!程序要做什么呢?怎样设计程序呢?大体如下程序内容:定义变量 实现输入和输出 定义数据结构来保存要处理的数据 测试 编写程序逻辑main函数C++程序必须都包含一个(唯一)命名为main的函数,操作系统通过调用main函数来执行程序。返回类型+函数名+圆括号+函数体int main()...
2019-07-19 11:07:18
107
转载 TCP与UDP的区别、应用、编码
说到网络基础就不得不提TCP/IP协议,老生常谈的问题之一:TCP与UDP区别?TCPTCP是一种面向有连接的传输层协议。可以保证两端通信主机之间的通信可达。TCP能够正确处理在传输过程中丢包、传输顺序乱掉等异常情况。此外、TCP还能有利用贷款、缓解网络拥堵。然而,为了建立与断开连接,有时需要至少7次的发包收报,导致网络流量浪费。此外,为了提高网络利用率,TCP协议中定义了各种各样的复杂的...
2019-07-10 11:13:26
879
1
原创 【随笔】软件性能测试-现在与未来
很多人对性能测试的认识还停留在写个脚本压一压就可以了的阶段,性能测试真的如此吗? 今天就提笔总结下个人经验吧,仅供大家参考。性能测试的哲学性能测试是一个持续改进的过程,也是一份充满挑战的工作;在工作中我们会涉及硬件平台、操作系统、数据库、缓存、中间件、应用架构、系统程序等方面的知识,广度与深度并重。“你知道的越多,你不知道的也就越多。”这也是现代自然科学的写照,在广度无限和深度无限...
2019-07-04 10:44:29
236
原创 liunx之间建立公匙实现无密码互相访问
两个liunx之间无密码访问 <密钥> 具体配置: 1:如果说你当前在A服务器,需要访问B服务器。则需要在A服务器上生成密匙。 2:在A服务器上运行脚本 ssh-keygen -t rsa 。然后一直回车。 这时在对应用户的home目录下的 .ssh 目录 </home/usr/.ssh>会生成两个文...
2019-06-30 10:15:37
142
原创 Linux下安装配置rocketmq-单点
前期准备:安装JDK和maven,并配置好全局变量。安装rocketMQ1.下载源码并构建二进制文件wget http://mirrors.hust.edu.cn/apache/rocketmq/4.3.1/rocketmq-all-4.3.1-source-release.zipunzip rocketmq-all-4.3.1-source-release.zipcd rock...
2019-06-26 16:49:06
408
原创 Jmeter持续集成二:Jekins持续集成
1.Jekins全局工具配置系统管理->全剧共举配置(1)JDK配置(2)Ant配置2.Jekins新建任务(2)配置构建->Invoker Ant配置完成后点击保存。3.开始测试(1)立即构建(2)构建成功查看控制台日志Started by user ***Running as SYSTEM[EnvInject] ...
2019-06-26 10:55:32
1082
原创 【随笔】性能测试-测试套路
“给时间以文明,而不是给文明以时间“,最近被刘慈欣的《三体》严重洗脑,哈哈,干什么事都会上升到黑暗森林里去寻找答案,哎哎!好久没有总结理论性的东西了,最近公司有性能测试培训,在测试培训资料的编写中发现很多理论性的东西需要一步步再次总结了,哎~~~~~~~人老了,变鱼了。下面进入正题:注意:这里只提供大体思路,细节问题要具体问题具体分析,毕竟尽信书不如不读书,事情要留有自己思考的空间-_-!...
2019-06-25 18:20:38
278
转载 Loadrunner参数化种类和用法
1.Data/Time:用当前的日期/时间替换参数。各字母含义:1)c:用数字表示完整的日期和时间2)#c:完整的日期(以字符串表示)和时间3)H:小时(24小时制)4)I:小时(12小时制)5)M:分钟 S:秒 p:AM或PM6)d:日子 m:数字形式的月份(01-12)7)b:字符串形式的月份,短格式(eg:Dec)...
2019-06-19 14:06:44
1692
原创 Loadrunner获取系统时间方法
Action(){ //在一些求中,需要获得当前系统时间作为计算密钥的一个因子,下面简单介绍下lr获取当前系统时间的几个方法: long t; char *gettime; //获得当前系统时间方法一: time(&t); lr_message("t == %ld ",t ); lr_message("方法一直接获取当前时间的结果是:%s",c...
2019-06-19 13:57:21
667
原创 Jmeter函数助手获取时间戳
${__time(,)} : 默认该公式精确到毫秒级别, 13位数${__time(/1000,)} : 该公式精确到秒级别, 10位数化成日期格式为:${__time(yyyy-MM-dd,)}${__time(YMDHMS,)}执行结果如下:...
2019-06-19 13:51:01
1834
原创 LINUX修改系统时间
命令格式为:date -s 时间字符串例如只修改系统的日期,不修改时间(时分秒)date -s 2019-06-18或只修改时间不修改日期date -s 16:10:00当然也可以同时修改日期和时间date -s "2016-06-18 16:10:00"...
2019-06-18 16:10:48
19775
原创 LINUX修改DNS方法
搭建环境的时候,有时候会遇到服务器之间ping不通,有可能是DNS地址的问题,导致不在统一网段。此时就要把测试服务器改成统一的DNS服务器地址了一、DNS的临是修改。(重启后失效)vim/etc/resolv.conf //打开resolv.conf 文件改为如下内容:nameserver 8.8.8.8 #修改成你的主DNSnameserver 8.8.7.7...
2019-06-17 14:29:19
61899
原创 Jmeter持续集成一:ant执行jmeter脚本
Jmeter接口测试脚本运行后生成的是jtl(xml)格式的文件,这些文件不具备可读性,所以我们要把他转化为可以阅读的html格式报告。Ant是一个功能强大的打包编译工具。我们使用他的目的是将xml文件转化为html格式的文件。准备工作1.安装ant2.准备jmeter脚本用ant执行脚本1.jmeter下新建两个目录TestReport文件夹:用于保存html的结果报告;...
2019-06-05 16:40:42
469
原创 Java使用递归统计目录下所有目录和文件
public static void main(String[] args) { File f = new File("E:\\工作\\ppt"); printFileName(f,0); } public static void printFileName(File f,int len) { //打印层级关系 ...
2019-06-03 16:19:49
836
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人