一、查看jvm常用命令jinfo:可以输出并修改运行时的java 进程的opts。 jps:与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程号。 jstat:一个极强的监视VM内存工具。可以用来监视VM内存内的各种堆和非堆的大小及其内存使用量。 ...
分类:
其他好文 时间:
2019-12-11 17:10:03
阅读次数:
85
案发现场 昨天晚上突然短信收到 APM (即 Application Performance Management 的简称),我们内部自己搭建了这样一套系统来对应用的性能、可靠性进行线上的监控和预警的一种机制)大量告警 画外音: 监控是一种非常重要的发现问题的手段,没有的话一定要及时建立哦 紧接着运 ...
分类:
其他好文 时间:
2019-12-09 14:13:50
阅读次数:
110
varnish实现缓存加速一、采用varnish为nginx实现缓存加速1、实验环境:(1)一台varnish缓存服务器,一台nginx服务器(2)关闭防火墙和selinux2.配置varnish(1)修改varnish配置文件:创建目录:mkdir-pv/data/varnish/cache修改属主:chownvarnish.varnish/data/varnish/cache(2)测试:二、v
分类:
其他好文 时间:
2019-12-08 23:01:26
阅读次数:
123
jvm的知识点汇总共6个大方向:内存模型、类加载机制、GC垃圾回收是比较重点的内容。性能调优部分偏重实际应用,重点突出实践能力。编译器优化和执行模式部分偏重理论基础,主要掌握知识点。
分类:
其他好文 时间:
2019-12-04 22:09:29
阅读次数:
150
一、什么是System.gc()?System.gc()是用Java,C#和许多其他流行的高级编程语言提供的API。当它被调用时,它将尽最大努力从内存中清除垃圾(即未被引用的对象)。名词解释:GC,GarbageCollection,垃圾回收,下文会经常使用。二、谁可以调用System.gc()?System.gc()可以从应用程序堆栈的各个部分调用:您自己开发的应用程序可以显式的调用System
分类:
编程语言 时间:
2019-11-30 22:45:45
阅读次数:
127
在前面的博客当我们讨论性能测试时,我们在说什么?中有聊过性能测试的目的和本质。性能测试过程中,监控分析和调优是最核心也是占比最大的一部分。 性能分析的目的是找出系统性能存在的瓶颈与风险,性能调优就是尽可能用更少的资源提供更好的服务。而其关键点,就是生成负载、监控相关指标。 性能测试前期的需求调研、开 ...
分类:
其他好文 时间:
2019-11-24 19:52:52
阅读次数:
112
之前发现几张图对于linux使用者有着较强的参考意义,下面对其进行简单备忘: # linux 静态信息查看工具 # linux 性能测试工具 benchmark # linux 性能观测工具 # linux 性能调优工具 资源来源链接:http://www.brendangregg.com/linu ...
分类:
系统相关 时间:
2019-11-22 09:13:19
阅读次数:
93
性能优化基本是BAT等一线互联网公司程序员必备的技能,以下为大家完整揭晓性能完整的优化方案和方法:包含web网站调优、数据库、JVM调优、架构调优等方案。
第一:Web网站调优
1、尽可能减少HTTP请求:图片合并 (css sprites),Js脚本文件合并、css文件合并。
2、减少DNS查询
3、将css放在页面最上面,将js放在页面最下面
4、压缩js和css
减少文件体积,去除不必要的空白符、格式符、注释(即对代码进行格式化)
5、把js和css提取出来放在外部文件中
这一条要灵活运用,把js和css提取出来放在外部文件的优点是:减少html体积,提高了js和css的复用性,提高日后的可维护性
缺点:增加了http请求,不过这一点可以通过缓存来解决。
什么情况下将js和css写在页面内呢,可以分为几种情况:js和css代码比较少;这个页面不怎么会访问
6、避免重定向
重定向就是用户请求的页面被转移到了别的地方,浏览器向服务请请求一个页面,服务器告诉浏览器请求的页面已经被转移到另外一个页面,并告知另一个页面地址,浏览器就再发送请求到重定向的地址。这样会增
分类:
数据库 时间:
2019-11-21 09:42:17
阅读次数:
103
从上面这个图我们总体上对JVM的结构特别是内存结构有了比较清晰的认识,虽然在JDK1.8+的版本中,JVM内存管理结构有了一定的优化调整。主要是方法区(持久代)取消变成了直接使用元数据区(直接内存)的方式,但是整体上JVM的结构并没有大改,特别是我们最为关心的堆内存管理方式并没有在JDK1.8+的版本中有什么变化,所以图中的结构整体上是没有什么不准确的,之所以将方法区以及持久代标注出来,主要还是为了起到对比认识的作用,大家知道就可以了。
关于持久代元数据区的使用问题,目前可以理解就是使用的物理内存,理论上是不受JVM自动内存回收机制管理的,如果不设置参数大小默认最大使用限制就是操作系统可用物理内存的大小,设置了-XX:MetaspaceSize参数的话,JVM就会在使用物理内存空间时自己进行限制。
至于直接内存与物理内存到底是不是一回事,我认为对于我们理解上没有区别,只是概念的区别,另外就是对这块内存使用细节上的区别,如果不受JVM的自动回收管理,那么怎么管理呢?说到底还是JVM本身在直接使用物理内存或者说是直接内存(用时直接“malloc”物理内存区域,而不再是JVM进程启动时初
分类:
编程语言 时间:
2019-11-19 01:19:54
阅读次数:
88
万众瞩目的JVM垃圾回收是时候登场了!JVM垃圾回收这块的内容相对较多、较复杂。但是,想要做好JVM的性能调优,这块的内容又必须了解和掌握!
分类:
编程语言 时间:
2019-11-10 21:21:11
阅读次数:
122