摘要: 消息队列 1.1 什么是消息队列 我们可以把消息队列比作是一个存放消息的容器,当我们需要使用消息的时候可以取出消息供自己使用。消息队列是分布式系统中重要的组件,使用消息队列主要是为了通过异步处理提高系统性能和削峰、降低系统耦合性。目前使用较多的消息队列有ActiveMQ,RabbitMQ,Kafka 阅读全文
posted @ 2019-09-04 22:51 淡然~~浅笑 阅读(440) 评论(0) 推荐(0)
摘要: 概述 正则表达式是很多运维薄弱的一项技能。大家很多时候都会觉得正则表达式难记、难学、难用,但不可否认的是正则表达式是一项很重要的技能,所有今天将学习和使用正则表达式时的关键点整理如下,仅供参考。 什么是正则表达式? 正则表达式(Regular Expression 或 Regex),是用于定义某种特 阅读全文
posted @ 2019-09-04 22:50 淡然~~浅笑 阅读(4621) 评论(0) 推荐(1)
摘要: 当我们试着通过 Linux 命令 nproc 和 lscpu 了解一台计算机 CPU 级的架构和性能时,我们总会发现无法正确地理解相应的结果,因为我们会被好几个术语搞混淆:物理 CPU、逻辑 CPU、虚拟 CPU、核心、线程和 Socket 等等。如果我们又增加了超线程(不同于多线程),我们就会开始 阅读全文
posted @ 2019-09-04 22:47 淡然~~浅笑 阅读(1215) 评论(0) 推荐(0)
摘要: 熟悉Java多线程编程的同学都知道,当我们线程创建过多时,容易引发内存溢出,因此我们就有必要使用线程池的技术了。 最近看了一些相关文章,并亲自研究了一下源码,发现有些文章还是有些问题的,所以我也总结了一下,在此奉献给大家。 1 线程池的优势 总体来说,线程池有如下的优势: (1)降低资源消耗。通过重 阅读全文
posted @ 2019-09-04 22:46 淡然~~浅笑 阅读(556) 评论(0) 推荐(0)
摘要: 虚拟机 何为虚拟机呢?虚拟机是模拟执行某种指令集体系结构(ISA)的软件,是对操作系统和硬件的一种抽象。其软件模型如下图所示: 计算机系统的这种抽象类似于面向对象编程(OOP)中的针对接口编程泛型(或者是依赖倒转原则),通过一层抽象提取底层实现中共性的部分,底层实现这个抽象并完成自己个性的部分。也就 阅读全文
posted @ 2019-09-04 22:44 淡然~~浅笑 阅读(204) 评论(0) 推荐(0)
摘要: 在Java程序中,性能问题的大部分原因并不在于Java语言,而是程序本身。养成良好的编码习惯非常重要,能够显著地提升程序性能。 1、尽量在合适的场合使用单例 使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面: 第一,控制资 阅读全文
posted @ 2019-09-04 22:42 淡然~~浅笑 阅读(1209) 评论(0) 推荐(0)
摘要: 背景 本文并不是介绍Linux多进程多线程编程的科普文,如果希望系统学习Linux编程,可以看[《Unix环境高级编程》第3版] 本文是描述多进程多线程编程中遇到过的一个坑,并从内核角度分析其原理。这里说的多进程多线程并不是单一的多进程或多线程,而是多进程和多线程,往往会在写一个大型应用时才会用到多 阅读全文
posted @ 2019-09-04 22:39 淡然~~浅笑 阅读(646) 评论(0) 推荐(0)
摘要: 简述性能测试流程? 1.分析性能需求。挑选用户使用最频繁的场景来测试,比如:登陆,搜索,下单等等。确定性能指标,比如:事务通过率为100%,TOP99%是5秒,最大并发用户为1000人,CPU和内存的使用率在70%以下 2.制定性能测试计划,明确测试时间(通常在功能稳定后,如第一轮测试后进行)和测试 阅读全文
posted @ 2019-09-04 22:36 淡然~~浅笑 阅读(2488) 评论(0) 推荐(0)
摘要: 本文出自头条号老王谈运维,转载请说明出处。 MySQL 数据库瓶颈对 DBA 程序员而言,是非常棘手的问题。要正确的优化SQL,我们需要快速定位能性的瓶颈点,也就是说快速找到我们SQL主要的开销在哪里?下面小编将从数据库数据库性能优化的目标和方法两方面阐述如何通过性能调优突破 MySQL 数据库性能 阅读全文
posted @ 2019-09-04 22:33 淡然~~浅笑 阅读(1200) 评论(0) 推荐(0)
摘要: 一、内存过高 1、内存过高一般有两种情况:内存溢出和内存泄漏 (1)内存溢出:程序分配的内存超出物理机的内存大小,导致无法继续分配内存,出现OOM报错 (2)内存泄漏:不再使用的对象一直占据着内存不释放,导致这块内存浪费掉,久而久之,内存泄漏的对象堆积起来,也会导致物理机的内存被耗尽,出现OOM报错 阅读全文
posted @ 2019-09-04 22:30 淡然~~浅笑 阅读(3851) 评论(0) 推荐(0)
摘要: 专注于Java领域优质技术,欢迎关注 作者 l Hollis 来源 l Hollis(ID:hollischuang) JVM内存结构,是很重要的知识,相信每一个静心准备过面试的程序员都可以清楚的把堆、栈、方法区等介绍的比较清楚。 上图,是一张在作者根据《Java虚拟机规范(Java SE 8)》中 阅读全文
posted @ 2019-09-04 22:29 淡然~~浅笑 阅读(821) 评论(0) 推荐(0)
摘要: 当文件系统通过submit_bio提交IO之后,请求就进入了通用块层。通用块层会对IO进行一些预处理的动作,其目的是为了保证请求能够更加合理的发送到底层的磁盘设备,尽量保证性能最佳。这里面比较重要的就是IO调度模块。大家可能都听说过CFQ,除此之前还有DeadLine和Noop等,这些都是磁盘的调度 阅读全文
posted @ 2019-09-04 22:28 淡然~~浅笑 阅读(730) 评论(0) 推荐(0)
摘要: 成天熬夜,生病了才知道健康可贵;总是“月光”,急用钱才发现自己没有储蓄;平时过一日算一日,等到完全被更年轻的人替代,才意识到自己缺少核心竞争力。人生从来就是不进则退,与其等到来不及的时候懊悔,不如现在就开始努力。分享18个自我管理方法↓↓好好管理自己,别等到生活来修理你,共勉! 阅读全文
posted @ 2019-09-04 22:26 淡然~~浅笑 阅读(907) 评论(0) 推荐(0)
摘要: 转载:https://juejin.im/post/5ad54d76f265da23970759d3 作者:SnailClimb 这里总结一下redis集群的搭建以便日后所需同时也希望能对你有所帮助。 笔主这里使用的是Centos7 一 redis的安装 Redis是c语言开发的。 安装redis需 阅读全文
posted @ 2019-09-04 22:24 淡然~~浅笑 阅读(318) 评论(0) 推荐(0)
摘要: 阻塞&非阻塞 阻塞IO 调用之后一定要等到系统内核完成所有的操作之后才结束,因此它的缺点:CPU等待IO,处理能力得不到充分利用。 非阻塞IO 为了解决阻塞IO带来的一些问题,内核提供了非阻塞IO,非阻塞IO的差别是调用之后会立即返回。缺点:非阻塞IO立即返回并不是业务层期望的数据,而仅仅是 阅读全文
posted @ 2019-09-04 22:20 淡然~~浅笑 阅读(266) 评论(0) 推荐(0)
摘要: 一、发现问题的系统检查: 一个管理平台门户网页进统计页面提示请求超时,随进服务器操作系统检查load average超过4负载很大,PID为7163的进程占用到了800%多。 二、定位故障 根据这种故障的一般处理思路,先找出问题进程内CPU占用率高的线程,再通过线程栈信息找出该线程当时在运行的问题代 阅读全文
posted @ 2019-09-04 22:16 淡然~~浅笑 阅读(522) 评论(0) 推荐(0)
摘要: 1、查看sql是否涉及多表的联表或者子查询,如果有,看是否能进行业务拆分,相关字段冗余或者合并成临时表(业务和算法的优化) 2、涉及链表的查询,是否能进行分表查询,单表查询之后的结果进行字段整合 3、如果以上两种都不能操作,非要链表查询,那么考虑对相对应的查询条件做索引。加快查询速度 4、针对数量大 阅读全文
posted @ 2019-09-04 22:15 淡然~~浅笑 阅读(3856) 评论(0) 推荐(0)
摘要: VM 调优概述: 性能定义: 吞吐量 指不考虑 GC 引起的停顿时间或内存消耗,垃圾收集器能支撑应用达到的最高性能指标。 延迟 其度量标准是缩短由于垃圾啊收集引起的停顿时间或者完全消除因垃圾收集所引起的停顿,避免应用运行时发生抖动。 内存占用 垃圾收集器流畅运行所需要的内存数量。 调优原则 GC 优 阅读全文
posted @ 2019-09-04 22:14 淡然~~浅笑 阅读(2580) 评论(0) 推荐(0)
摘要: 最近遇到一个数据查询接口性能低下的问题,需要进行优化,从解决方案的调研与梳理到方案的确定,再到最终方案的执行落地,我将优化的过程完整的记录了下来,与大家分享学习,希望能给大家有所帮助和启发。 PS:以下我所描述的所有表和字段都是虚拟的。 问题产生 我们有很多上报的数据,数据量比较大。这些数据保存在 阅读全文
posted @ 2019-09-04 22:12 淡然~~浅笑 阅读(1169) 评论(0) 推荐(0)
摘要: 不知道在大家面试中,有没有遇到这个问题: 生产服务器上部署了几个java程序,突然出现了CPU100%的异常告警,你如何定位出问题呢? 这个问题分为两版回答! 高调版 对不起,我是做研发的,这个问题在生产上是不可能遇见的!因为研发是不可能直接操作生产服务器,如果贵公司能出现这个问题,应该要反思一下自 阅读全文
posted @ 2019-09-04 22:01 淡然~~浅笑 阅读(672) 评论(0) 推荐(0)
摘要: 这篇文章想跟大家分享关于Web性能测试的一些知识点。在分享之前,我想先跟大家分享一组数据,关于为什么要做性能测试?具体如下: 71%用户希望在手机上打开网页能跟电脑一样快; 5秒钟被认为是用户能忍受的最长响应时间,如果响应时间超过5秒,50%的移动用户会放弃; 33%失望的用户会使用竞品替代; 用户 阅读全文
posted @ 2019-09-04 21:52 淡然~~浅笑 阅读(6126) 评论(0) 推荐(0)
摘要: 欲善其事必先利其器,本文从软件测试人员痛点出发,介绍如何先从工具选择上取得优势,在有限的时间内完成工作。经常有人在公众号留言或是后台咨询,做自动化测试用哪个工具好,或是学哪门编程语言好呢? 这个时候总是无奈的说: 你应该学习Python 或是Java 你应该掌握Selenium 又或者你需要学会jm 阅读全文
posted @ 2019-09-04 08:53 淡然~~浅笑 阅读(2809) 评论(0) 推荐(0)
摘要: 业务场景: 基于导出的功能上,要求一次性查询10w条数据。但是这个10w的开始值和结束值不固定(比如:startNum = 123; endNum = 100123;) 难点一: dubbox时间超时规定为1s,服务调用图如下: 难点二: 数据封装转换性能消耗较高,目前使用的BeanUtils 难点 阅读全文
posted @ 2019-09-04 08:51 淡然~~浅笑 阅读(681) 评论(0) 推荐(0)
摘要: 最近遇见一个 MySQL 的慢查问题,于是排查了下,这里把相关的过程做个总结。 定位原因 我首先查看了 MySQL 的慢查询日志,发现有这样一条 query 耗时非常长(大概在 1 秒多),而且扫描的行数很大(10 多万条数据,差不多是全表了): SELECT FROM tgdemand_deman 阅读全文
posted @ 2019-09-04 08:50 淡然~~浅笑 阅读(295) 评论(0) 推荐(0)
摘要: Tomcat性能调优: 找到Tomcat根目录下的conf目录,修改server.xml文件的内容。对于这部分的调优,我所了解到的就是无非设置一下Tomcat服务器的最大并发数和Tomcat初始化时创建的线程数的设置,当然还有其他一些性能调优的设置,下图是我根据我机子的性能设置的一些参数值,给各位详 阅读全文
posted @ 2019-09-04 08:48 淡然~~浅笑 阅读(314) 评论(0) 推荐(0)
摘要: 来源:并发编程网链接:http://ifeve.com/深入理解G1垃圾收集器/ G1 GC是Jdk7的新特性之一、Jdk7+版本都可以自主配置G1作为JVM GC选项;作为JVM GC算法的一次重大升级、DK7u后G1已相对稳定、且未来计划替代CMS、所以有必要深入了解下: 不同于其他的分代回收算 阅读全文
posted @ 2019-09-04 08:47 淡然~~浅笑 阅读(1881) 评论(0) 推荐(1)
摘要: 开发者们在工作中经常会遇到过这样的情况:在接手实际项目时,在传统的单体架构下,一个同事负责的功能模块出现故障后,会导致整个系统瘫痪。那么有什么办法才能解决这种问题呢?云上有一种服务——微服务,可以对业务流程进行独立开发和部署,满足新业务快速创新和敏捷交付的需求。 基于Devops的微服务架构是云时代 阅读全文
posted @ 2019-09-04 08:45 淡然~~浅笑 阅读(581) 评论(0) 推荐(0)
摘要: Nginx动静分离基本概述 动静分离,通过中间件将动静分离和静态请求进行分离; 通过中间件将动态请求和静态请求分离,可以建上不必要的请求消耗,同事能减少请求的延时。 通过中间件将动态请求和静态请求分离,逻辑图如下: 动静分离只有好处:动静分离后,即使动态服务不可用,但静态资源不会受到影响。 Ngi 阅读全文
posted @ 2019-09-04 08:43 淡然~~浅笑 阅读(307) 评论(0) 推荐(0)
摘要: 0.前期准备 使用Debian环境。安装Nginx(默认安装),一个web项目,安装tomcat(默认安装)等。 1.一份Nginx.conf配置文件 基本配置这个文件,就可以实现负载了。但是里面的各种关系要了解就比较麻烦了。这篇博客,也不是教学篇,是记录一下,方便以后自己看了。 2.基础讲解 现在 阅读全文
posted @ 2019-09-04 08:43 淡然~~浅笑 阅读(269) 评论(0) 推荐(0)
摘要: 1、什么是Spring? Spring是一个开源的Java EE开发框架。Spring框架的核心功能可以应用在任何Java应用程序中,但对Java EE平台上的Web应用程序有更好的扩展性。Spring框架的目标是使得Java EE应用程序的开发更加简捷,通过使用POJO为基础的编程模型促进良好的编 阅读全文
posted @ 2019-09-04 08:42 淡然~~浅笑 阅读(572) 评论(0) 推荐(0)
摘要: 性能测试概念 在如今这个万物互联的时代,网络的作用至关重要,它连接了万物,几乎任何信息都可以在web上获取到。大到企业、学校、政府、国家,小到个人、个体经营者,他们每时每刻都在使用网络获取各种信息。web内容的获取和与其的交互非常便利快捷,因而网络的响应速度就变得至关重要。 再者,大多数的web应用 阅读全文
posted @ 2019-09-04 08:40 淡然~~浅笑 阅读(169) 评论(0) 推荐(0)
摘要: 开源Java学习 公众号 一、入门 1、简介 Kafka is a distributed,partitioned,replicated commit logservice。它提供了类似于JMS的特性,但是在设计实现上完全不同,此外它并不是JMS规范的实现。kafka对消息保存时根据Topic进行归 阅读全文
posted @ 2019-09-04 08:39 淡然~~浅笑 阅读(695) 评论(0) 推荐(0)
摘要: 这篇博客主要介绍 linux 环境下,查看内存占用的两种方式:使用 ps,top等命令;查看/proc/[pid]/下的文件。文章简要介绍了命令的使用方法与一些参数意义,同时对/proc/[pid]/下的文件内容进行了一些详细的介绍。文章内容来自google和自我总结,如有不当之处,欢迎批评指正。 阅读全文
posted @ 2019-09-04 08:37 淡然~~浅笑 阅读(12620) 评论(0) 推荐(0)
摘要: 一、数据库性能瓶颈主要原因 1、数据库连接 MySQL数据库默认连接为100,我们可以通过配置initialSize、minIdle、maxActive等进行调优,但由于硬件资源的限制,数据库连接不可能无限制的增加,对大型单体应用单实例数据库可能会出现最大连接数不能满足实际需求的情况,这时就会系统业 阅读全文
posted @ 2019-09-04 08:36 淡然~~浅笑 阅读(1069) 评论(0) 推荐(0)
摘要: 作者 | 贺满 链接 | cnblogs.com/puresoul/p/5388586.html 本文主要分为两个部分: 第一部分:主要从问题出发,引入接口测试的相关内容并与前端测试进行简单对比,总结两者之前的区别与联系。但该部分只交代了怎么做和如何做?并没有解释为什么要做? 第二部分:主要介绍为什 阅读全文
posted @ 2019-09-04 08:35 淡然~~浅笑 阅读(4749) 评论(0) 推荐(1)
摘要: Redis 雪崩 缓存层承载着大量的请求,有效保护了存储层。但是如果由于缓存大量失效或者缓存整体不能提供服务,导致大量的请求到达存储层,会使存储层负载增加,这就是缓存雪崩的场景。 解决缓存雪崩,可以从以下几个方面入手。 1.保持缓存层的高可用性 使用Redis 哨兵模式或者Redis 集群部署方式, 阅读全文
posted @ 2019-09-04 08:33 淡然~~浅笑 阅读(2445) 评论(0) 推荐(0)