随笔分类 - 性能基础知识
摘要:1.什么是性能? 性能可以从两个大的指标维度来概括: 1.时间:系统处理请求的时间 2.资源:系统运行过程中资源消耗情况 2.什么是性能测试? 使用工具模拟,不同场景(多种正常、峰值、异常负载条件),对软件的各项性能指标的测试(cpu使用率,内存使用率, 数据库IO,TPS,Responsetime
阅读全文
摘要:1. 初始(NEW):新创建了一个线程对象,但还没有调用start()方法。2. 运行(RUNNABLE):Java线程中将就绪(ready)和运行中(running)两种状态笼统的称为“运行”。线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程
阅读全文
摘要:一、内存溢出和内存泄露 一种通俗的说法。1、内存溢出:你申请了10个字节的空间,但是你在这个空间写入11或以上字节的数据,出现溢出。2、内存泄漏:你用new申请了一块内存,后来很长时间都不再使用了(按理应该释放),但是因为一直被某个或某些实例所持有导致 GC 不能回收,也就是该被释放的对象没有释放。
阅读全文
摘要:BTree意思是多路平衡查找树,它是一种数据结构。MySQL的InnoDB和MyISAM存储引擎,都是使用它来存储索引。BTree可细分为B-Tree和B+Tree,B+Tree是B-Tree的升级版。MySQL的InnoDB和MyISAM存储引擎使用的是B+Tree。 B-Tree 为了描述B-T
阅读全文
摘要:导致sql语句跳过索引,直接全表搜索的情况 1。第一种数据量问题超过一定数据量导致索引失效,直接跳过索引全表扫描 这里有一个有意思的问题,那就是其实我的表里边create_time字段是加了索引的,但可以看到type=ALL,说明没有使用到索引,这是为什么呢? 开始我以为是< >符号的问题,因为我看
阅读全文
摘要:https://blog.csdn.net/weixin_30342209/article/details/98058502Usage: jstack [-l] <pid> (to connect to running process) 连接活动线程 jstack -F [-m] [-l] <pid
阅读全文
摘要:Thread Dump日志的线程信息 以下面的日志为例: "resin-22129" daemon prio=10 tid=0x00007fbe5c34e000 nid=0x4cb1 waiting on condition [0x00007fbe4ff7c000] java.lang.Thread
阅读全文
摘要:jstack作为jvm分析工具之一,它只能做线程转储堆栈分析;而通常的性能问题,都是要结合jvm内存,gc,网络,IO等诸多信息综合分析,才能得出问题原因。有时只关注线程转储堆栈,而忽略其他,甚至会误导问题线索。 但是不可否认的是,正确分析线程转储堆栈,经验丰富的程序员直接就能把握住大方向上的问题原
阅读全文
摘要:定义: mysql慢查询日志是mysql提供的一种日志记录,它是用来记录在mysql中相应时间超过阈值的语句,就是指运行时间超过long_query_time值的sql, 会被记录在慢查询日志中。long_query_time的默认值是10,意思是运行10S之上的语句 查询慢sql时间设设置的值 s
阅读全文
摘要:很多开发者都在其系统中见过“java.lang.OutOfMemoryError: PermGen space”这一问题。这往往是由类加载器相关的内存泄漏以及新类加载器的创建导致的,通常出现于代码热部署时。相对于正式产品,该问题在开发机上出现的频率更高,在产品中最常见的“问题”是默认值太低了。常用的
阅读全文
摘要:jvm细化图: VM的内存部分则是由方法区(Method Area)、JAVA堆(Heap)、虚拟机栈(Stack)、程序计数器、本地方法栈这几部分组成;除此以外,在概念中还有一个直接内存的概念,事实上这部分内存并不属于虚拟机规范中定义的内存区域,但是因为在JDK1.4+后新加的NIO类,以及JDK
阅读全文
摘要:java 垃圾回收解析 如果不进行垃圾回收,内存迟早会被消耗空。垃圾回收机制的引入可以有效的防止内存泄露、保证内存的有效使用,也减轻了 Java 程序员的对内存管理的工作量。 内存泄露:指该内存空间使用完毕后未回收,在不涉及复杂数据结构的一般情况下,Java 的内存泄露表现为一个内存对象的生命周期超
阅读全文
摘要:python垃圾回收主要分为三种: 1.计数器Reference Counting 2.mark-sweep俗称标记清除算法 3.分代回收 第一计数器,对计数器sys.getrefcount()为0的对象会进行垃圾回收,释放内存 c=dict()b=ca=cprint(sys.getrefcount
阅读全文
摘要:jvm区域总体分两类,heap区和非heap区。heap区又分: Eden Space(伊甸园)、Survivor Space(幸存者区)、Tenured Gen(老年代-养老区)。 非heap区又分:Code Cache(代码缓存区)、Perm Gen(永久代)、Jvm Stack(java虚拟机
阅读全文
摘要:jps 类的pid jstat 使用: jstat -gcutil pid 1000 //1000是毫秒是监控时间 jstat -gc pid 1s jstat -gcnew pid // 查看young区的gc jstat -gcold pid // old 区也就是 Tenured gen 终身
阅读全文
摘要:网卡流量 1、iftop命令 iftop可以用来监控网卡的实时流量(可以指定网段)、反向解析IP、显示端口信息、TCP/IP连接等官网:http://www.ex-parrot.com/~pdw/iftop/ 安装iftop: [root@Super ~]# yum install flex bya
阅读全文
摘要:多核CPU linux : 如果你不幸拥有一个多核CPU,你肯定在想,多核应该可以同时执行多个线程。 如果写一个死循环的话,会出现什么情况呢? 打开Mac OS X的Activity Monitor,或者Windows的Task Manager,都可以监控某个进程的CPU使用率。 我们可以监控到一个
阅读全文
摘要:1.认识线程和进程: 1.1什么是线程:线程是系统执行任务调度的最小单位,一个进程可以只包含一个线程此时线程也可以理解为进程,当然也可以拥有多个线程,线程之间可以实现资源共享以及通讯什么是进程:系统资源分配的最小单位线程和进程区别:实际上,进程不是同时运行的,对于一个 CPU 而言,某个时间段只能运
阅读全文