自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

he_jian1的专栏

聊,谈,想

  • 博客(176)
  • 资源 (3)
  • 问答 (1)
  • 收藏
  • 关注

原创 稳定性质量系列-高可用架构设计

本文系统阐述了高可用(HA)架构的设计与实施框架。通过"架构设计-治理机制-风险防范-落地保障"四层体系,实现最小化故障影响、最大化系统可用性的目标。架构设计强调冗余、隔离、降级等核心原则;治理机制包含监控告警、容量管理等持续优化手段;风险防范通过故障演练、灾备建设等兜底措施;落地保障则从组织、工具、考核三方面确保执行。文章提供了可量化的指标体系和分阶段实施路径,强调"先预防后兜底"的实施策略,最终形成可闭环迭代的高可用解决方案。

2025-12-23 23:24:44 886

原创 稳定性质量系列-架构梳理与治理

架构治理是通过系统性方法提升业务稳定性的质量保障体系。其核心流程包括:1)穿透式梳理业务、技术、资源维度的风险点;2)分层治理(业务降级、服务隔离、资源弹性、变更管控);3)全流程保障(监控告警、故障演练、应急响应);4)持续迭代优化。治理需结合组织分工、考核制度及工具支撑,构建"梳理→治理→保障"闭环,最终实现从被动救火到主动防御的转变,形成具备韧性的架构体系。(149字)

2025-12-21 17:05:01 711

原创 稳定性质量系列-强弱依赖识别与治理

摘要:系统稳定性建设中,依赖不合理是引发事故的核心诱因。本文提出强弱依赖治理方案:首先通过业务影响度和可替代性界定依赖类型;其次梳理全链路并形成依赖关系矩阵;然后针对强依赖采用高可用策略(冗余、容灾、隔离),对弱依赖实施灵活性方案(降级、熔断、异步化);最后通过全链路监控和故障演练保障治理效果。治理需遵循"精准分类+差异化策略"原则,结合组织、制度和工具支撑,实现核心业务"零中断"目标。

2025-12-21 10:29:02 750

原创 性能工程-性能压测系列-为什么TPS上不去

摘要:本文针对性能压测中TPS未达预期的问题,提出系统化的排查与优化方法。首先分析TPS影响因素公式(并发用户数、单次事务耗时、系统承载能力),然后从5个维度详细阐述瓶颈排查方向:压测环境问题、业务系统资源瓶颈、应用架构瓶颈、数据层瓶颈和压测方案问题。通过"定位拐点-全链路监控-针对性验证"的三步法则,结合平台工具进行精准诊断。文中以商品下单链路为例,展示了如何通过耗时拆解、网络优化等具体措施,将TPS从12万提升至32万(目标103%)。后续将补充其他维度的案例解析。(150字)

2025-12-17 23:35:38 875

原创 性能工程系列四-性能产研一体化建设

本文提出构建性能工程效能平台的系统化方案,通过四个关键步骤实现性能工程全流程落地:1)建立产研一体化执行标准,明确各阶段职责与交付物;2)建设集成化平台,整合性能工具与知识库,打通Jira/Grafana等工具链;3)开展场景化知识传播,针对开发、测试、运维不同角色设计实战培训;4)制定分阶段落地路径,从试点验证到全面推广。方案强调通过平台化手段打破部门壁垒,实现性能建模、指标看护和反模式知识的全流程贯通,最终形成"标准-工具-数据-知识"的闭环体系。落地过程注重实际场景验证和持续优化,

2025-12-08 22:33:46 808

原创 性能工程系列三-性能模型与常见反模式设计积累

推广机制的核心 ——“以人为本,以价值为纲”性能模型与反模式的知识化推广,不是 “强推文档”,而是 “围绕人的需求、业务的价值” 设计机制:用 “流程绑定” 解决 “初期不用” 的问题,这里的流程绑定一定不是通过文档来约束,需要达成共识后,通过持续集成平台,如质量保障平台进行初期不用的问题,针对过往项目,可以通过平台,用 “价值可视化” 解决 “中期不愿用” 的问题;

2025-12-03 23:35:31 561

原创 性能工程系列二-性能指标的持续维护模式及知识累积

本文探讨性能工程中监控指标的持续维护机制。通过建立"全生命周期管理+自动化运营+团队闭环"体系,解决监控部署后指标失效、告警麻木等问题。具体措施包括:指标自动化巡检与日报推送、告警优化迭代、数据反哺性能建模、明确团队责任分工与响应流程。最终形成机制化、自动化、闭环化的持续看护体系,确保性能目标长期达标。该方案以订单创建链路为例,实现"性能稳定、资源可控、问题可预见"的工程目标,为后续AI智能诊断提供数据基础。

2025-12-01 23:20:41 601

原创 性能工程系列一 性能压测介入时机(前置介入)

摘要 性能工程的前置介入策略研究指出,传统后置性能测试存在优化成本高、问题定位困难等弊端。通过性能建模和架构设计优化可提前规避风险,如在订单链路案例中,通过推导线程池、数据库连接池等关键配置需求,发现原设计无法满足30万QPS的业务目标。研究提出性能工程应左移至架构设计阶段,建立包含监控告警、快速定位等机制的前置验证体系,通过规则约束降低后期改造成本。核心在于将业务指标转化为技术指标,并验证资源配置合理性,实现从"事后补救"到"事前预防"的转变。

2025-11-23 12:20:28 1020

原创 性能工程-性能压测系列-性能测试、负载测试、压力测试关联和区别

第1章  软件性能测试基本概念1.1  什么是软件性能当我们提到软件性能测试的时候,有一点是很明确的:测试关注的重点是“性能”。那么,本书要解决的第一个问题就是:究竟什么是“软件性能”?一般来说,性能是一种指标,表明软件系统或构件对于其及时性要求的符合程度;其次,性能是软件产品的一种特性,可以用时间来进行度量。性能的及时性用响应时间或者吞吐量来衡量。响应时间是对请求作出响应所需要的

2025-11-10 20:57:06 853

原创 聊聊缓存测试

摘要:Redis是一款高性能内存数据库,广泛用于缓存热点数据、分布式锁等场景。文章介绍了Redis的5种数据类型、缓存与DB的交互流程,并详细阐述了缓存设计规范与测试维度,包括功能测试、特殊场景验证(穿透/雪崩/击穿等)、读写并发测试及性能基准测试。最后强调了缓存监控的关键指标,如命中率、资源使用率等。全文系统性地总结了Redis缓存的应用要点与测试方法。

2025-11-10 20:50:16 473

原创 中年打球感受:思考 与 反省

中年球场的生命哲学 不惑之年的篮球场,成了人生的隐喻课堂。不再执着于身体对抗,学会以巧劲化解冲突;拿球停顿三秒的缓冲哲学,让决策更从容;看淡单次得失,明白成败只是人生长河中的涟漪;传球配合的智慧,教会我们共赢的价值;最终领悟到,真正的快乐不在记分牌上,而在奔跑与欢笑的瞬间。这些球场上磨砺出的智慧——不硬碰、多思考、重配合、淡得失,恰是应对人生赛场的最佳策略。

2025-11-09 22:21:43 264

原创 性能工程-性能压测系列-压测过程中的连续、递增

在性能工程中,想要明确知道当前业务在现有的生产环境,最高支撑的流量上限水平,就需要我们做如下几项工作:基准工程,容量工程,稳定工程,异常工程;其中基础工程在整个事项工程是最基本的且为必须要做的节点工作,因为在基准工程中,找到系统的BUG,系统配置缺陷,系统性能相关问题是核心目的之一,同时也为容量场景提供可对比的基准数据;

2025-10-26 21:38:14 721

原创 性能工程-性能压测系列-性能定位|线上问题定位|重现利器

本文介绍了Arthas工具的常用命令功能,重点讲解了dashboard和thread命令的使用。dashboard命令可以实时监控系统线程CPU使用率、内存状况(包括used、total、max等指标)、GC活动以及Java版本信息。thread命令能够排查高CPU占用的线程,通过示例展示了如何查看最繁忙的3个线程(thread -n 3)和指定线程的堆栈信息(thread [线程ID])。这些命令为Java应用性能监控和问题诊断提供了有效手段。

2025-10-24 15:09:42 916

原创 性能工程-性能压测系列-并发、在线、TPS

本文探讨了性能测试中并发用户数、在线用户数与TPS(每秒事务数)之间的关系,指出常见的并发用户数计算公式(并发用户数=TPS×RT)存在概念混淆问题。通过实际案例计算不同事务级别的TPS(请求级、业务操作级、用户级),分析了在线用户数与压力线程的转换关系,推导出并发度计算公式。文章强调应根据具体业务场景选择合适的事务级别进行性能评估,并澄清了RPS(每秒请求数)与TPS的争议,指出两者从不同角度反映系统性能且存在必然关联。最后提出性能测试应基于实际业务数据,通过日志分析获取关键参数以准确计算系统负载能力。

2025-10-23 00:02:03 834

原创 rust 研究系列

rust 中的对象编程rust 不存在类或对象的概念,没有父子继承概念,在面和对象的编程中,如封装、多态、以及代码的复用rust是通过trait和泛型提供的参数化实现多态,其中封装 rust提供了结构体、枚举,使用pub关键字段定义权限访问 的控制文章目录rust 中的对象编程前言一、rust 中的结构体数据二、结构体的定义1.定义结构体2.结构体使用3.结构体对象编程总结前言趁空闲时间,熟悉一下rust语言一、rust 中的结构体数据示例:pandas 是基于NumPy 的一种工具,该工具

2025-10-21 23:42:17 235

原创 向内自省、思

新疆人在内地

2025-10-19 23:39:46 529 1

原创 混乱的IT职业生涯

毕业2001~2004年在一所三本专科学校读电子商务,电子商务在那个年代感觉一切都很新鲜,新鲜到这是干什么的,有什么用,学完之后能做什么完全不知道,大学三年的时间除了学习一些基础的电脑课程所占用的上课时间外,其它时间是如何混的现在回想之余朦胧到这么多年是怎么混到现在的地步,基本全是无脸面回忆;从各大博客、各路神仙看看现在的做IT的这些大神,毕业工作5年基本上都是技术大神。毕业参加工作,至今参加工...

2020-06-02 17:28:49 59

原创 质量保障技术要求

首先,可以用TDTIQ能力模型,对自己进行一个简单宏观的评估1.业务成绩(Test)初级:确保顺利上线,没有线上问题中级:控制项目节奏与风险,产品交互开发全面配合调动高级:业务方,产品方高度认可与表扬2.技术能力(Dev)初级:根据代码逻辑设计测试分析,没有遗漏中级:提交bug可以定位到代码,提高效能高级:开发方案提出建议,治未病3.团队贡献(Teamwork)...

2019-04-29 01:04:57 37

原创 垃极收集器监控(一)

一、为什么需要监控j垃极收集数据因为它对应用的吞吐量和延迟有很大影响;二、监控的手段:可以将每次gc的数量直接输出到一个文本文件,对此文件进行分析;成本小 使用gui监控工具进行监控;成本高;三、何时进行垃极收集四、哪些数据需要进行垃极收集?a.当前使用的垃极收集器 b.java堆的大小c.新生代 和 老年代 的大小d.永久代的大小e.minor gc 的持续时间f.minor gc的空间回收量

2016-09-27 00:08:18 1004

原创 TestNg第一天:testNg的简单介绍

一、TestNg介绍

2016-09-08 23:59:56 1090

原创 Spring 第二天:ioc,di的概念,使用接口配合dj来编程

spring开发提倡接口编程,配合di接口编程,达到解耦;案例创建一个接口ChangeLetter两个类实现此接口把对象配置到spring容器中使用 接口package com.study.interpublic interface ChangeLetter{ private String str; public String change();}实现类UpperLe

2016-09-08 00:28:37 1254

原创 Spring 第一天:spring 概念及简单入门

Spring 第一天的学习spring是什么:是一种框架-》是一种容器框架-》用于配置bean,并维护bean之间的关系的框架什么是bean?* 是java中的任何对象,可以是javabean,也可以是action,也可以是数据源/dao,IOC(控制反转 inverse of control),DI(dependency injection依赖注入)*UML序列图和流程图“`sequ

2016-09-05 20:57:53 1364

原创 以集合思想编写SQL

sql是处理数据的集合,不是处理一行一行的数据,你所编写的SQL不需要你提供如何导航到数据的指令,因为这一项工作是由相关数据库中的后台进行透明地完成。

2015-11-12 15:57:58 1593

原创 性能工程-性能压测系列-根据线程快照分析性能瓶颈四

在继上一节内容后,继续对快照进行分析如何根据快照分析应用中出现的性能瓶颈我们知道,一个项目在增大压力时,系统处理业务能力应是平稳上升,在这一过程中,一般服务器资源的使用率,比如CPU,内存的使用率是平稳上升的,这里的上升是指正常过程中在加压下的上升,排除异常情况下CPU过高或内内存使用率突然上升的情况,如果压力在增加,但系统处理业务的能力上不去,对应的资源使用率不升反而下降,常常对应就是系统处理业务

2015-11-10 11:16:43 7672

原创 项目调优-微信(本地化服务)平台:瓶颈定位,数据库调优,业务重构

微信项目的性能测试目前完成也有一个星期的时间此项目从测试到优调,及回归测试用了半年的时间,其中大部时间是研发针对此项目的业务重构优化项目版本1.0的性能测试数据如下:<未完待续>

2015-11-09 17:19:17 955

原创 针对读写操作频繁的应用系统的LINUX调优设置

在线签约系统调优============#项目类型  IO限制型应用,需要频繁调用PDF进行签章,调用的PDF保存在  磁盘中。 #项目业务设计实现  这里简要说明一下业务流程:前端业务系统过来的请求通过Nignx进行分流,通过网关DSS,将各自的请求转发到相应的老,新签章系统进行处理 这里需要说明一下,每一个签章请求都需要电签系统处理完成之后,给业务端返回一个PASS标识,在这个过程当

2015-11-06 16:53:43 3465

原创 信审信用评估系统性能测试总结

一、项目介绍:信审信用评估系统由销售客户系统放件过来,信审系统对进来的进件进行反欺诈处理、对反欺诈处理后的进件,进行黑名单审核,然后根据各种信用引擎规则、第三方信托接口,大数据风控接口对其进行自动筛选,这一系列步骤操作完成后,符合条件的进件才有资格进入初审,终审。进入初审是由相应人工角色进行初审,此时的初审由一般信审调查员去完成;第二阶段,凡是初审完成后的进件如没有问题进入终审,此时的角色是由信审高

2015-10-26 22:04:26 2973 1

原创 性能工程-性能压测系列-java线程堆栈问题定位第三讲

一、如何通过线程堆栈进行问题定位? 当获取线程堆栈后,可以通过线程堆栈得到什么内容? a.线程调用层次关系,也就说,当前线程执行了什么 操作,调用了什么函数 b.线程的状态,及本身占有哪些锁,以及等待了哪些锁 c.可以看到锁的争用情况 d.从多次的打印线程堆栈后,可以了解一个线程是否长期在执行,且执行的内容一样 e.从多次的打印线程堆栈后,可以了解某个线程是否长期得不到锁的情况二、通过线

2015-06-29 17:46:42 1521

原创 java线程堆栈问题定位第二讲:多线程中的锁解读

一、wait()和sleep的共同点与区别: 共同点:都会把当前的线程阻塞住(时长的为函数参数指定的时间),即为睡眠或等待 区别:wait() 当线程执行到wait()方法上,当前线程会释放监视锁,此时其它线程可以占有该锁,一旦wait()方法执行完成,当前线程又继续持有该锁,直到执行完该锁的作用域。可以说wait()是多线程场合下用得最多的一个方法。结合notify(),可以实现两个线程之

2015-06-29 09:37:47 1406

原创 JAVA线程堆栈问题定位第一讲

一、如何制作线程堆栈 a.本地线程与java线程对应 本地线程: 是指java线程对应的虚拟机中的本地线程,java语言中的线程是依附于JVM虚拟机中的本地线程来运行,实际是本地线程运行java线程代码。java代码中创建一个thread,虚拟机在运行期间就会创建一个对应的本地线程,而这个本地线程才是真正的线程实体 打印java虚拟机本地线程的命令:

2015-06-28 15:25:40 1343

原创 项目中的随机写,随机读的压力测试

一、最近接了一个项目 ,通过两套环境,布署相同的项目,对项目中的读和写进行压测,在进行压力测试时,需要注意以下几个问题1.中间件中的最大的连接数2.数据库中最大的会话数量3.需要准备的数据量4.服务器中的存放上传文件 的目录大小5.上传文件的大小 与网络流量二、在执行测试时,出现以下错误Error -27791: Error -27790:Error -2774

2015-03-22 17:41:34 1396

原创 java的内存管理实例

Java程序的多个部分(方法,变量,对象)驻留在内存中以下两个位置:即堆和栈,现在我们只关心三类事物:实例变量,局部变量和对象:实例变量和对象驻留在堆上局部变量驻留在栈上让我们查看一个 java 程序,看看他的各部分如何创建并且映射到栈和堆中:public class Dog {Collar c;String name;//1.main()方法位于栈上public static v

2015-01-23 17:52:31 757

原创 JAVA中的静态方法 和  实例方法的区别

一、JAVA中的静态方法  要点:静态方法  能调用本身所在类的静态成员属性),但不能调用对象成员方法; 其调用过程:a.  类   .  方法名  b  .对象名.方法名即:调用静态方法,无需实例化(创建对象)总结:  静态方法只能访问静态成员,实例方法可以访问静态和实例成员。之所以不允许静态方法访问实例成员变量,是因为实例成员变量是属于某个对象的,而静态方法在执行时,

2015-01-22 17:51:43 1749

原创 计算机中的字,字长,位,字节的概念

文章摘要: 计算机性能测试的基础概念包括位(最小数据单位,0或1)、字节(8位,存储基本单位)、字(CPU处理单位,取决于架构)和字长(字位数,决定处理能力)。位是二进制基础,字节用于存储字符,字体现CPU处理能力,字长影响计算机性能。它们呈层级关系(位<字节<字),理解这些概念对优化内存和程序性能至关重要。

2015-01-22 11:04:20 43475 2

原创 LR:消息message输出函数

Loadrunner提供了若干message函数,以在脚本回放中和脚本运行中,对外输入信息,主要的函数有:            【lr_message】            intlr_message (const char *format, exp1, exp2,...expn.);            中文解释:lr_message函数将信息发送到日志文件和输入窗

2015-01-12 12:00:56 1715

原创 在LINUX中性能测试监控中常用的TOP命令中,部分字段代表的真正含义

在项目性能测试的中,经常需要监控服务器,DB服务器的各项计算器,其中在LINUX下我们最常用的命令实时查看命令TOP,用的最多,但真正对这一命令的各项值,确又了解甚微,甚至根本不知道这些值所代表的含义,及是如何得出来的:    在谷哥一些资料后,将其各项的字段所代表的含义及其来源,以做为记录:    在TOP命令中有一行CPU的中信息:us,sy,ni,wa,si,hi,st,其中us,s

2015-01-12 11:54:13 4885

原创 Loadrunner设置场景的三种方式

性能测试用例设计首先要分析出用户现实中的典型场景,然后参照典型场景进行设计,下面详细介绍一下常见的三类用户场景:一天内不同时间段的使用场景。在同一天内,大多数系统的使用情况都会随着时间发生变化。例如对于新浪、网易等门户网站,在周一到周五早上刚一上班时,可能邮件系统用户比较多,而上班前或者中午休息时间则浏览新闻的用户较多;而对于一般的OA系统则早上阅读公告的较多,其他时间可能很多人没有使

2015-01-09 19:59:01 5826

原创 客户管理系统性能测试总结

一、项目名称客户管理系统的性能测试已经结项,性能测试的主要功能都为查询,查询的方式,都是输入时间段、关键词进行精确搜索;数据的基准量为2万条;涉及到的表有7张表,每张表中的数据量为2W ,使用此系统的方式,是角色越高的查询的数据就会很多,点击查询操作会进行两个操作,一是判断角色是否具有的相应的权限,二是权限确定后,搜索搜索关键词进行数据查询,并展现查询结果二、项目测试方案由于是

2015-01-05 18:57:43 2982

原创 项目性能测试中遇到的问题

一、数据库中的数据准备数据库中的两种情况:    空数据,进行加压测试    有数据,进行加压测试二、数据构造中,表空间的自动增长设置三、表中的查询语句的优化

2014-12-23 20:38:36 1270

原创 更新机器 后,软件的安装和程序的使用问题总结

一、之前一台电脑中配置的cx_oracl e,oracle客户端后,出现的问题解决 后没有及时记录下业,导致在重新安装时同现同样的问题,又花了很长时  间,现总结如下:安装oracle 客户端时 需要和服务器使用的版本尽量保持一致二、在用cx_oracle连接oracle 时,cx_oracle的版本尽量与客户端oracle版本一致

2014-12-22 17:10:53 748

JProfiler在Linux上的安装和使用

此文档根据自身经验总结出的安装文档,适合新手第一次使用时作为参考文献使用

2014-11-06

vbs破解版,很好用,实大实的,拿给大家共享

此工具是永久破解版,很好用,比在网上搜索到的VBS编辑工具好用多了,而且不会出现执行时间一次慢一次的情况。

2012-05-18

python中的web学习资源

pyhton 针对网站编程的技术资源,简单易学

2014-11-06

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除