K8S Service 多种类型 Types 测试手记
前言 这里基于whoami示范服务,部署3个实例,分别一一验证各种类型的K8S Service服务范畴。 大致逐一从下面列表逐一验证每种类型的Service访问方式: Service Name 域名解析结果等 CLUSTER-IP EXTERNAL-IP 一些设定如下: 测试环境K8S版本号为v1.27.3 K8S集群Node节点IP地址段范围:10.0.1.0/24...
View ArticleK8S 修改默认 StorageClass
业务需要将默认的K8S存储服务修改NFS,这里记录一下操作记录。 列出当前StorageClass: kubectl get sc NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE local-path (default) rancher.io/local-path Delete...
View Article参与Apisix开源的一次完整提交过程分享
前言 参与开源不是为了证明什么,而是为了更好的配合工作。开源和工作在绝大部分时间,都是可以和谐共处,互相促进,Win-WIn双赢。 本文内容记录了为 apisix 项目提交的一次pull request提交 (访问地址:https://github.com/apache/apisix/pull/3615...
View ArticleApisix 1.5 升级到 2.2 踩坑备忘
零、前言 线上运行的 APISIX 为 1.5 版本,而社区已经发布了 Apisix 2.2,是时候需要升级到最新版了,能够享受最版本带来的大量的BugFix,性能增强,以及新增特性的支持等~ 从Apisix 1.5升级到Apisix...
View ArticleHTTP API设计笔记
前言 最近一段时间,要为一个手机终端APP程序从零开始设计一整套HTTP API,因为面向的用户很固定,一个新的移动端APP。目前还是项目初期,自然要求一切快速、从简,实用性为主。 下面将逐一论述我们是如何设计HTTP API,虽然相对大部分人而言,没有什么新意,但对我来说很新鲜的。避免忘却,趁着空闲尽快记录下来。 技术堆栈的选择 PHP嘛?团队内也没几个人熟悉。...
View ArticleTsung笔记之IP地址和端口限制突破篇
前言 在Tsung笔记之压测端资源限制篇中说到单一IP地址的服务器最多能够向外发送64K个连接,这个已算是极限了。 但现在我还想继续深入一下,如何突破这个限制呢 ? 如何突破限制 这部分就是要从多个方面去讨论如何如何突破限制单个IP的限制。 0. Tsung支持TCP情况 在Tsung 1.6.0 中支持的TCP属性有限,全部特性如下:...
View ArticleTsung笔记之100万用户压测执行步骤篇
前言 总是说细节、理论,会让人不胜其烦。我们使用Tsung来一次100万用户压测的吧,或许能够引起好多人的兴趣 :)) 下面,我根据在公司分享的PPT《分布式百万用户压测你的业务》,贴出其中的关键部分,说明进行一次100W(即1M)用户压测的执行步骤。 如何做分布式百万用户的压测 ? 假定面向小白用户,因此才有了下面可执行的10个步骤用于开展分布式百万用户。 ...
View ArticleTsung笔记之插件编写篇
前言 Tsung对具体协议、通道的支持,一般以插件形式提供接口,接口不是很复杂,插件也很容易编写,支持协议多,也就不足为怪了。 下面首先梳理一下当前Tsung 1.6.0所有内置插件,然后为一个名称为Qmsg的私有二进制协议编写插件, 运行Qmsg服务器端程序,执行压力测试,最后查看测试报告。 已支持插件梳理 Tsung 1.6.0支持的协议很多,简单梳理一下: ...
View ArticleTsung笔记之监控数据收集篇
前言 压力测试和监控分不开,监控能够记录压测过程中状态,方便问题跟踪、定位。本篇我们将讨论对压测客户端tsung client的监控,以及对被压测服务器的资源占用监控等。同时,也涉及到Tsung运行时的实时诊断方式,这也是对Tsung一些运行时状态的主动监控。 压测客户端的监控 压测端(指的是tsung...
View ArticleTsung笔记之IP直连支持篇
前言 前面说到设计一个小型的C/S类型远程终端套件以替换SSH,并且已经应用到线上。这个问题,其实不是Tsung自身的问题,是外部连接依赖问题。...
View ArticleTsung笔记之分布式增强跳出SSH羁绊篇
前言 Erlang天生支持分布式环境,Tsung框架的分布式压测受益于此,简单轻松操控子节点生死存亡、派发任务等不费吹灰之力。...
View ArticleTsung笔记之压测端资源限制篇
前言 这里汇集一下影响tsung client创建用户数的各项因素。因为Tsung是IO密集型的应用,CPU占用一般不大,为了尽可能的生成更多的用户,需要考虑内存相关事宜。 IP & 端口的影响 1. 系统端口限制 Linux系统端口为short类型表示,数值上限为65535。假设分配压测业务可用端口范围为1024 -...
View ArticleTsung笔记之主从资源协调篇
前言 接着上文,tsung一旦启动,主从节点之间需要协调分配资源,完成分布式压测任务。 如何启动Tsung压测从机 Erlang SDK提供了从机启动方式: slave:start(Host, Node, Opts) 启动从机需要借助于免登陆形式远程终端,比如SSH(后续会讨论SSH存在不足,以及全新的替代品),需要自行配置。 <client host="client_100"...
View ArticleTsung笔记之主从模型篇
前言 本篇讲解Tsung大致功能组成、结构,以及主从模型,以便总体上掌握。 总体组成  tsung_controller 和 tsung 这两个模块,负责分布式压测的核心功能。 代码组成 从代码层次梳理一下tsung项目功能组成结构,便于一目了然,方便直接索引。  主从模型一览 设定环境为分布式环境下Tsung集群,下面简单梳理一下主、从节点启动流程。  流程大致说明:...
View ArticleTsung笔记之开篇
前言 有测试驱动的开发模式,目的在于确保业务层面功能是准确的,每一次新增、修改等动作确保都不会影响到现有功能。功能开发完成了,需要部署到线上,系统能够承载多大的用户量呢,这时候就需要借助于性能压测,也称之为压力测试,界定系统能够承载具体容量上限,从容应对业务的运营需要,扩容或缩容,心中有底。...
View ArticleTCP协议缺陷不完全记录
零。前言 TCP自从1974年被发明出来之后,历经30多年发展,目前成为最重要的互联网基础协议。有线网络环境下,TCP表现的如虎添翼,但在移动互联网和物联网环境下,稍微表现得略有不足。 移动互联网突出特性不稳定:信号不稳定,网络连接不稳定。虽然目前发展到4G,手机网络带宽有所增强,但因其流动特性,信号也不是那么稳定:坐长途公交车,或搭乘城铁时,或周边上网密集时等环境,现实环境很复杂。...
View Article随手记之TCP Keepalive笔记
零。前言 TCP是无感知的虚拟连接,中间断开两端不会立刻得到通知。一般在使用长连接的环境下,需要心跳保活机制可以勉强感知其存活。业务层面有心跳机制,TCP协议也提供了心跳保活机制。 一。TCP Keepalive解读...
View Article移动APP后端网络处理一些问题记录
零。前言 这里讲的移动APP主要指的是安卓平台,大部分情况也适用于IOS等移动平台,可能重点嘛会在后半部分呢。 一。嵌入多SDK存在的隐患 但凡一个常用的APP都会嵌入至少一个SDK,不同来源或同一来源,有广告SDK,有推送SDK,有性能汇报SDK,有用户跟踪SDK,有统计流量SDK等,有支付SDK等等。虽然带来了功能的复用和解耦,便于纵向扩展,但可能会存在:...
View ArticleHTTP/2笔记之错误处理和安全
零。前言 这里整理了一下错误和安全相关部分简单记录。 一。HTTP/2错误 1. 错误定义 HTTP/2定义了两种类型错误: 导致整个连接不可使用的错误为连接错误(connection error) 单独出现在单个连接上的错误为流错误(stream error) 2. 错误代码 错误代码,32位正整数表示错误原因,RST_STREAM和GOAWAY帧中包含。...
View ArticleHTTP/2笔记之消息交换
前言 无论是HTTP/1.*还是HTTP/2,HTTP的基本语义是不变的,比如方法语义(GET/PUST/PUT/DELETE),状态码(200/404/500等),Range Request,Cacheing,Authentication、URL路径。以前纯文本形式作为传输的载体,HTTP/2带来了与之不同的二进制传输语法语义。 下面为HTTP/2消息交换方便笔记。 请求/响应流程...
View Article