摘要: 消息队列 1.1 什么是消息队列 我们可以把消息队列比作是一个存放消息的容器,当我们需要使用消息的时候可以取出消息供自己使用。消息队列是分布式系统中重要的组件,使用消息队列主要是为了通过异步处理提高系统性能和削峰、降低系统耦合性。目前使用较多的消息队列有ActiveMQ,RabbitMQ,Kafka 阅读全文
posted @ 2019-09-04 22:51 淡然~~浅笑 阅读(425) 评论(0) 推荐(0) 编辑
摘要: 概述 正则表达式是很多运维薄弱的一项技能。大家很多时候都会觉得正则表达式难记、难学、难用,但不可否认的是正则表达式是一项很重要的技能,所有今天将学习和使用正则表达式时的关键点整理如下,仅供参考。 什么是正则表达式? 正则表达式(Regular Expression 或 Regex),是用于定义某种特 阅读全文
posted @ 2019-09-04 22:50 淡然~~浅笑 阅读(4542) 评论(0) 推荐(1) 编辑
摘要: 当我们试着通过 Linux 命令 nproc 和 lscpu 了解一台计算机 CPU 级的架构和性能时,我们总会发现无法正确地理解相应的结果,因为我们会被好几个术语搞混淆:物理 CPU、逻辑 CPU、虚拟 CPU、核心、线程和 Socket 等等。如果我们又增加了超线程(不同于多线程),我们就会开始 阅读全文
posted @ 2019-09-04 22:47 淡然~~浅笑 阅读(1099) 评论(0) 推荐(0) 编辑
摘要: 熟悉Java多线程编程的同学都知道,当我们线程创建过多时,容易引发内存溢出,因此我们就有必要使用线程池的技术了。 最近看了一些相关文章,并亲自研究了一下源码,发现有些文章还是有些问题的,所以我也总结了一下,在此奉献给大家。 1 线程池的优势 总体来说,线程池有如下的优势: (1)降低资源消耗。通过重 阅读全文
posted @ 2019-09-04 22:46 淡然~~浅笑 阅读(534) 评论(0) 推荐(0) 编辑
摘要: 虚拟机 何为虚拟机呢?虚拟机是模拟执行某种指令集体系结构(ISA)的软件,是对操作系统和硬件的一种抽象。其软件模型如下图所示: 计算机系统的这种抽象类似于面向对象编程(OOP)中的针对接口编程泛型(或者是依赖倒转原则),通过一层抽象提取底层实现中共性的部分,底层实现这个抽象并完成自己个性的部分。也就 阅读全文
posted @ 2019-09-04 22:44 淡然~~浅笑 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 在Java程序中,性能问题的大部分原因并不在于Java语言,而是程序本身。养成良好的编码习惯非常重要,能够显著地提升程序性能。 1、尽量在合适的场合使用单例 使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面: 第一,控制资 阅读全文
posted @ 2019-09-04 22:42 淡然~~浅笑 阅读(1096) 评论(0) 推荐(0) 编辑
摘要: 背景 本文并不是介绍Linux多进程多线程编程的科普文,如果希望系统学习Linux编程,可以看[《Unix环境高级编程》第3版] 本文是描述多进程多线程编程中遇到过的一个坑,并从内核角度分析其原理。这里说的多进程多线程并不是单一的多进程或多线程,而是多进程和多线程,往往会在写一个大型应用时才会用到多 阅读全文
posted @ 2019-09-04 22:39 淡然~~浅笑 阅读(615) 评论(0) 推荐(0) 编辑
摘要: 简述性能测试流程? 1.分析性能需求。挑选用户使用最频繁的场景来测试,比如:登陆,搜索,下单等等。确定性能指标,比如:事务通过率为100%,TOP99%是5秒,最大并发用户为1000人,CPU和内存的使用率在70%以下 2.制定性能测试计划,明确测试时间(通常在功能稳定后,如第一轮测试后进行)和测试 阅读全文
posted @ 2019-09-04 22:36 淡然~~浅笑 阅读(2428) 评论(0) 推荐(0) 编辑
摘要: 本文出自头条号老王谈运维,转载请说明出处。 MySQL 数据库瓶颈对 DBA 程序员而言,是非常棘手的问题。要正确的优化SQL,我们需要快速定位能性的瓶颈点,也就是说快速找到我们SQL主要的开销在哪里?下面小编将从数据库数据库性能优化的目标和方法两方面阐述如何通过性能调优突破 MySQL 数据库性能 阅读全文
posted @ 2019-09-04 22:33 淡然~~浅笑 阅读(1150) 评论(0) 推荐(0) 编辑
摘要: 一、内存过高 1、内存过高一般有两种情况:内存溢出和内存泄漏 (1)内存溢出:程序分配的内存超出物理机的内存大小,导致无法继续分配内存,出现OOM报错 (2)内存泄漏:不再使用的对象一直占据着内存不释放,导致这块内存浪费掉,久而久之,内存泄漏的对象堆积起来,也会导致物理机的内存被耗尽,出现OOM报错 阅读全文
posted @ 2019-09-04 22:30 淡然~~浅笑 阅读(3781) 评论(0) 推荐(0) 编辑
摘要: 专注于Java领域优质技术,欢迎关注 作者 l Hollis 来源 l Hollis(ID:hollischuang) JVM内存结构,是很重要的知识,相信每一个静心准备过面试的程序员都可以清楚的把堆、栈、方法区等介绍的比较清楚。 上图,是一张在作者根据《Java虚拟机规范(Java SE 8)》中 阅读全文
posted @ 2019-09-04 22:29 淡然~~浅笑 阅读(803) 评论(0) 推荐(0) 编辑
摘要: 当文件系统通过submit_bio提交IO之后,请求就进入了通用块层。通用块层会对IO进行一些预处理的动作,其目的是为了保证请求能够更加合理的发送到底层的磁盘设备,尽量保证性能最佳。这里面比较重要的就是IO调度模块。大家可能都听说过CFQ,除此之前还有DeadLine和Noop等,这些都是磁盘的调度 阅读全文
posted @ 2019-09-04 22:28 淡然~~浅笑 阅读(674) 评论(0) 推荐(0) 编辑
摘要: 成天熬夜,生病了才知道健康可贵;总是“月光”,急用钱才发现自己没有储蓄;平时过一日算一日,等到完全被更年轻的人替代,才意识到自己缺少核心竞争力。人生从来就是不进则退,与其等到来不及的时候懊悔,不如现在就开始努力。分享18个自我管理方法↓↓好好管理自己,别等到生活来修理你,共勉! 阅读全文
posted @ 2019-09-04 22:26 淡然~~浅笑 阅读(882) 评论(0) 推荐(0) 编辑
摘要: 转载:https://juejin.im/post/5ad54d76f265da23970759d3 作者:SnailClimb 这里总结一下redis集群的搭建以便日后所需同时也希望能对你有所帮助。 笔主这里使用的是Centos7 一 redis的安装 Redis是c语言开发的。 安装redis需 阅读全文
posted @ 2019-09-04 22:24 淡然~~浅笑 阅读(304) 评论(0) 推荐(0) 编辑
摘要: 阻塞&非阻塞 阻塞IO 调用之后一定要等到系统内核完成所有的操作之后才结束,因此它的缺点:CPU等待IO,处理能力得不到充分利用。 非阻塞IO 为了解决阻塞IO带来的一些问题,内核提供了非阻塞IO,非阻塞IO的差别是调用之后会立即返回。缺点:非阻塞IO立即返回并不是业务层期望的数据,而仅仅是 阅读全文
posted @ 2019-09-04 22:20 淡然~~浅笑 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 一、发现问题的系统检查: 一个管理平台门户网页进统计页面提示请求超时,随进服务器操作系统检查load average超过4负载很大,PID为7163的进程占用到了800%多。 二、定位故障 根据这种故障的一般处理思路,先找出问题进程内CPU占用率高的线程,再通过线程栈信息找出该线程当时在运行的问题代 阅读全文
posted @ 2019-09-04 22:16 淡然~~浅笑 阅读(495) 评论(0) 推荐(0) 编辑
摘要: 1、查看sql是否涉及多表的联表或者子查询,如果有,看是否能进行业务拆分,相关字段冗余或者合并成临时表(业务和算法的优化) 2、涉及链表的查询,是否能进行分表查询,单表查询之后的结果进行字段整合 3、如果以上两种都不能操作,非要链表查询,那么考虑对相对应的查询条件做索引。加快查询速度 4、针对数量大 阅读全文
posted @ 2019-09-04 22:15 淡然~~浅笑 阅读(3756) 评论(0) 推荐(0) 编辑
摘要: VM 调优概述: 性能定义: 吞吐量 指不考虑 GC 引起的停顿时间或内存消耗,垃圾收集器能支撑应用达到的最高性能指标。 延迟 其度量标准是缩短由于垃圾啊收集引起的停顿时间或者完全消除因垃圾收集所引起的停顿,避免应用运行时发生抖动。 内存占用 垃圾收集器流畅运行所需要的内存数量。 调优原则 GC 优 阅读全文
posted @ 2019-09-04 22:14 淡然~~浅笑 阅读(2439) 评论(0) 推荐(0) 编辑
摘要: 最近遇到一个数据查询接口性能低下的问题,需要进行优化,从解决方案的调研与梳理到方案的确定,再到最终方案的执行落地,我将优化的过程完整的记录了下来,与大家分享学习,希望能给大家有所帮助和启发。 PS:以下我所描述的所有表和字段都是虚拟的。 问题产生 我们有很多上报的数据,数据量比较大。这些数据保存在 阅读全文
posted @ 2019-09-04 22:12 淡然~~浅笑 阅读(1081) 评论(0) 推荐(0) 编辑
摘要: 不知道在大家面试中,有没有遇到这个问题: 生产服务器上部署了几个java程序,突然出现了CPU100%的异常告警,你如何定位出问题呢? 这个问题分为两版回答! 高调版 对不起,我是做研发的,这个问题在生产上是不可能遇见的!因为研发是不可能直接操作生产服务器,如果贵公司能出现这个问题,应该要反思一下自 阅读全文
posted @ 2019-09-04 22:01 淡然~~浅笑 阅读(656) 评论(0) 推荐(0) 编辑