- 博客(100)
- 资源 (18)
- 问答 (1)
- 收藏
- 关注
原创 JVM full gc 触发原因总结
目录1. 背景介绍2. 什么是full gc3. 垃圾回收算法4. cms (full gc)触发原因1. 背景介绍C或者C++的内存申请和销毁需要程序员自己控制,很容易内存泄漏和内存溢出且出现问题查找困难。Java在内存管理的优势在于jvm自己申请和销毁内存,不需要程序员关注内存问题,更专注于业务逻辑。那为什么我们还需要理解JVM的内存管理机制和原理呢?第一、作为有...
2019-03-28 12:41:41 3689
原创 JVM 问题排查SOP
1. JVM问题1. young gc 频繁(5s一次)2. young gc 时间偏高(大于40ms)3. young gc 时间陡增(平常20ms左右,某一次陡增到200ms)4. full gc 频繁(1小时一次)5. full gc STW时间长(大于100ms)6. 内存泄露7. 内存溢出2. 先练内功2.1 java执行过程2.2...
2019-03-27 18:46:56 2216
转载 (转)Java服务化系统线上应急和技术攻关,你必须拥有的那些应用层脚本和Java虚拟机命令
原文博客:https://www.jianshu.com/p/46a120f9e5a3无论是技术开发人员还是架构设计人员都是在实践中成长起来的,他们通过实践进行总结,总结后把经验升华并再次应用到实践中去,进一步提供生产效率。本文介绍笔者在互联网公司里线上应急和技术攻关过程中积累的应用层脚本和Java虚拟机命令,这些脚本和命令在发现问题和定位问题的过程中起到关键作用,在特定的问题环境下,堪称快速
2018-01-30 15:30:18 749 1
原创 Mongo监控
一. 监控正在执行的操作 db.currentOp(); opid: 唯一标识符 active: 操作是否在运行 secs_running: 操作已经运行的时间 locks: 使用的锁类型,^表示全局锁可以传入查询条件进行查询,比如耗时大于3s的查询db.currentOp({"secs_running":{"gt":3000}}),终止某一个
2017-11-20 10:07:26 425
转载 (转)解决机器学习问题有通法!看这一篇就够了!
前言本文由Searchmetrics公司高级数据科学家Abhishek Thakur提供。一个中等水平的数据科学家每天都要处理大量的数据。一些人说超过60%到70%的时间都用于数据清理、数据处理及格式转化,以便于在之后应用机器学习模型。这篇文章的重点便在后者—— 应用机器学习模型(包括预处理的阶段)。此文讨论到的内容来源于我参加的过的数百次的机器学习竞赛。请大家注意这里讨论的方法是
2017-09-18 13:39:57 528
原创 mongoDB副本集
一. 简介 生产环境中,如果mongoDB只起来一个单点,一个服务器进程,风险很高。如果这个服务器进程挂了,就会导致服务宕机。我们可以通过mongoDB的副本集功能,为主服务创建多个副本,如果主服务挂了,下面的副本中一个会晋升为主服务,另外,从其余副本中拷贝出一份副本,继续提供服务。二.
2017-08-29 09:27:06 460
原创 mongoDB应用程序设计
一. 范式与反范式范式化:将不同数据放在不同集合,不同集合之间可以直接引用数据。避免数据存在于多个集合当中。由于mongoDB不支持不同集合直接引用数据,类似关系型数据库中的join操作,mongoDB不支持。我们在设计的时候,要慎重考虑用范式还是非范式,参考原则见下图:也就是,如果数据修改不频繁,比较小,读取频繁适合非范式设计。二. 优化数据操作2.1优化文档
2017-08-28 09:32:52 479
转载 (转)MongoDB中的一些坑(最好不要用)
原博客地址:http://www.jb51.net/article/62654.htmMongoDB 是目前炙手可热的 NoSQL 文档型数据库,它提供的一些特性很棒:如自动 failover 机制,自动 sharding,无模式 schemaless,大部分情况下性能也很棒。但是薄荷在深入使用 MongoDB 过程中,遇到了不少问题,下面总结几个我们遇到的坑。特别申明:我们目前用的
2017-08-28 09:17:47 331
原创 (转)mongodb写入安全级别
原博客地址:http://www.cnblogs.com/phpfans/p/4852808.htmlMongoDB的写安全机制写入安全(Write Concern)是一种由客户端设置的,用于控制写入安全级别的机制,通过使用写入安全机制可以提高数据的可靠性。MongoDB提供四种写入级别,分别是:(Unacknowledged)非确认式写入(Acknowledg
2017-08-28 08:47:21 714
原创 Mysql锁
一. MyISAM表锁1.查看表级锁争用情况show status like 'table%';如果table_locks_waited的值比较高,说明锁争用情况严重2. 表锁的锁模式2.1 如果加读锁,不会阻止另外一个会话读,但是会阻塞另外一个写2.2 如果加写锁,另外一个会话的读和写都会阻塞。3. 如何加表锁lock tables ord
2017-08-26 22:56:16 266
原创 Mongo聚合
一. 简介 如果你有数据存储在mongo里面,需要对数据进行分析和利用。可以利用如下几个工具:1. 聚合框架2. MapReduce3. 聚合命令:count,distinct和group二. 聚合框架2.1 介绍 有一个保存杂志文章的集合,你希望找出发表文章最多的5个作者,每一篇文章是一个文档。可以如下执行查询:db.articles.agg
2017-08-25 09:28:52 338
原创 Mongo索引
一 索引简介 mongo索引跟关系型数据的索引概念一样,相当于书的目录,能够快速定位数据。像关系型数据库一样我们可以通过explain看执行计划,入
2017-08-18 10:09:42 357
原创 mysql优化数据对象
1. 拆分表提高访问效率1.1 垂直拆分将主键和一些列放到主表里面,然后将主键和另外一些不常用的列放到另外一个表。拆分后,一行数据变小了,一个数据页就能存放更多的数据,查询的时候就能够减少I/O次数。1.2 水平拆分1.2.1 表很大,需要拆分,分割后可以提高查询速度1.2.2 表单数据独立性,比如记录各个地区或者各个时期的数据1.2.3 需要把数据存放在多个介质上
2017-07-22 21:51:01 181
原创 Mysql SQL优化方法
1. 分析表 analyze table payment; //主要目的是重新分析表,便于执行计划的选择。因为可能之前统计的数据会有偏差,如果发现mysql执行计划选择有偏差,可以执行这个sql。需要注意,这个sql会锁表2. 优化表optimize table payment //如果表删除了比较多的数据,建议运行这个sql语句。可以回收空间,回收空间之后,查询扫描的时候,就不用扫
2017-07-22 19:17:19 285
原创 Mongo查询
1. 查找所有文档db.c.find()2. 按照简单类型查找(要注意类型匹配)db.user.find({"age":27}) //年龄是数字,不需要引号db.user.find({"username":"joe"}) //用户名是字符串,需要引号3. 组合条件查询db.user.find("username":"joe", "age":27) //可以2个条件或者更多组
2017-06-30 13:55:11 392
原创 Mysql使用索引和不使用索引场景
使用索引场景1. 全值匹配(就是rental_date='2005-07-05' 这样的条件,如果rental_date上面有索引,下面都是假设查询字段有索引)2. 范围匹配(比如customer_id >'45' and customer_id3. 匹配最左前缀索引,比如索引是col1+col2+col3, 如果查询条件是col1或者col1+col2或者col1+col3,可以用到
2017-06-25 22:46:34 576
转载 mySQL5.6的optimizer_trace
MySQL的explain是各种执行计划选择的结果,如果想看整个执行计划以及对于多种索引方案之间是如何选择的?MySQL5.6中支持这个功能,optimizer_trace 这个是mysql的参数,默认是关闭的12345678910111213
2017-06-18 22:19:23 483
转载 mysql show profiles 使用分析sql 性能
原文博客:http://blog.csdn.net/aeolus_pu/article/details/7818498Show profiles是5.0.37之后添加的,要想使用此功能,要确保版本在5.0.37之后。查看一下我的数据库版本MySQL> Select version();+---------------------+| version()
2017-06-18 22:12:46 298
转载 Mysql Explain 详解
原文地址:http://www.cnitblog.com/aliyiyi08/archive/2008/09/09/48878.html一.语法explain 例如: explain select * from t3 where id=3952602;二.explain输出解释+----+-------------+-------+-------+---
2017-06-18 22:03:24 185
原创 Mysql 字段类型选择
1. char和varchar如果字段是固定长度选择char,如果不是选择varchar2. text和blobtext只能存文本,如果是文章或者日记,可以存。blob可以存二进制,如果是图片的话,适合blob。2.1 如果blob或者text所属表,频繁删除操作,需要注意空间释放问题。需要定期 optimize table。2.2 如果大字段需要当做查询条件,精确匹配
2017-06-18 11:39:04 424
原创 mysql存储引擎
一. 简介 mysql支持多种存储引擎,什么是存储引擎,我猜就是底层存储数据的方式。每一种存储引擎都有各自的优缺点,比如InnoDB和BDB支持事务,其他的不支持。目前mysql支持的存储引擎如下所示:MyISAM,InnoDB, BDB,MEMORY,MERGE,EXAMPLE,ARCHIVE等。创建表的时候,如果不指定存储引擎,会选择默认的。mysql5.5之前,默认是MyISAM
2017-06-10 19:30:36 202
原创 ruby基本概念(学习笔记二)
一.基本概念1. 类类是用来表示实际世界中的实体,是状态和使用这些状态的方法的组合2.实例一个类的具体实现,跟对象,类的实体等同含义3.构造函数ruby中通过调用构造函数来创建对象,是一种特殊的方法,我们称构造函数为new,比如:song1=Song.new("ruby tuesday");song2=Song.new("tomorrow");4.方法调用“
2016-10-16 22:37:41 737
原创 ruby安装与运行(笔记一)
一. ruby安装 操作系统必须为mac或者unix,在命令行中输入ruby -v,如果提示如下,说明已经安装好了(如果为不识别的命令,那就自己百度一下怎么安装吧)一. ruby运行 和编译式语言不同,你有2种方式运行ruby:1.以交互的方式输入代码直接执行 2.先创建程序文件,然后再运行。比较复杂的代码就创建文件 1.
2016-10-11 23:08:44 2212
转载 Log4j输出格式控制--log4j的PatternLayout参数含义
原博客地址:http://blog.csdn.net/guoquanyou/article/details/5689652做项目被log4j的输出格式化参数搞烦了,索性把API的相关部分大致翻译一下,原文参见http://logging.apache.org/log4j/docs/api/org/apache/log4j/PatternLayout.html
2016-02-17 11:25:30 522
转载 用“逐步排除”的方法定位Java服务线上“系统性”故障
原博客地址:http://techblog.youdao.com/?p=961一、摘要由于硬件问题、系统资源紧缺或者程序本身的BUG,Java服务在线上不可避免地会出现一些“系统性”故障,比如:服务性能明显下降、部分(或所有)接口超时或卡死等。其中部分故障隐藏颇深,对运维和开发造成长期困扰。笔者根据自己的学习和实践,总结出一套行之有效的“逐步排除”的方法,来快速定位Ja
2016-01-29 14:34:52 624
转载 jetty性能优化思路整理
原博客地址:转载过来只是为了收藏,望原博主见谅一、一般调优的基本过程1.明了需要调优的系统架构2.设定性能调优的目标3.明了目标当前的性能情况4.找出目前的性能瓶颈的所在5.解决引起性能瓶颈的根本问题6.重复以上过程直到达到设定目标性能为止二、性能指标:崩溃点:同时多少并发的时候,服务器Down掉?
2016-01-04 19:27:00 7030
转载 rsync错误捕获 shell捕获返回码
因工作需要,因为要判断rsync是否成功,一开始我是判断本地文件有没有到,这样做相当安全,现在要把数据PUSH过去,我就没法判断了,只能用rsync的返回状态吗,一开始直接把`rsync ....`赋给了一个值,SHELL里不是这样地查看文本打印rsync xxx yyy ret=$? if [ $ret -ne 0 ]; then ech
2015-11-05 14:46:44 3251
原创 什么是线程安全
线程安全定义: 当多个线程访问一个类的时候,如果不用考虑这些线程在运行时环境下的调度和交替执行,并且不需要额外的同步及在调用方法代码不必做其他的协调,这个类的行为任然是正确的,那么称这个类是线程安全的。 所有的例子都是一个servlet用来进行因数分解,通过request传入一个数字,然后service方法调用factor方法进行因数分解。 1.
2015-11-02 20:24:37 859 1
原创 一个简单的servlet容器实现
1. 服务类创建一个ServerSocket接收客户端请求,根据请求路径判定是否为servlet请求还是请求静态资源,然后转发给分别对应的process进行处理package ex02.pyrmont;import java.net.Socket;import java.net.ServerSocket;import java.net.InetAddress;import jav
2015-10-04 12:03:49 949
转载 Http请求中Content-Type讲解以及在Spring MVC中的应用
原博客地址:http://blog.csdn.net/blueheart20/article/details/45174399引言: 在Http请求中,我们每天都在使用Content-type来指定不同格式的请求信息,但是却很少有人去全面了解content-type中允许的值有多少,这里将讲解Content-Type的可用值,以及在Spring MVC中如何使用它们来映射请求信息。
2015-09-18 12:08:16 1252
转载 SpringMVC接收复杂集合参数
原博客地址:http://jxd-zxf.iteye.com/blog/2072300 Spring MVC在接收集合请求参数时,需要在Controller方法的集合参数里前添加@RequestBody,而@RequestBody默认接收的enctype (MIME编码)是application/json,因此发送POST请求时需要设置请求报文头信息,否则Spring MVC在解析集合请求参数
2015-09-06 17:21:10 1712
转载 jvm参数调优
原博客地址: http://niyunjiu.iteye.com/blog/337266PE2950 8G 双cpu,每cpu四核,raid1,两个tomcat6.0.14 Java代码 JAVA_OPTS='-server -Xms2560m -Xmx2560m -Xmn768m -XX:PermSize=128m -XX:MaxPermSize=
2015-09-01 11:51:48 449
转载 java gc的log分析
原博客地址: http://blog.csdn.net/huaye2007/article/details/21398429最近没什么事,主要是看到程序GC较快 所以想看下程序有没有问题,网上的一篇文章http://book.51cto.com/art/201306/399236.htm在程序启动的时候加上 几个参数-verbose:gc -Xloggc:d
2015-09-01 11:50:18 386
转载 10 个非常重要的 HotSpot JVM 参数
原博客地址:http://www.oschina.net/translate/hotspot-jvm-options-java-examples?cmpThere are hundreds of JVM parametersor JVM Optionsexists inside sun JDK and its virtually impossible to keep t
2015-09-01 10:16:20 281
转载 Spring MVC 教程,快速入门,深入分析
原博客地址: http://elf8848.iteye.com/blog/875830建议去原地址查看,有代码下载目录 一、前言二、spring mvc 核心类与接口三、spring mvc 核心流程图四、spring mvc DispatcherServlet说明五、spring mvc 父子上下文的说明六、springMVC-
2015-08-24 14:56:24 271
转载 SpringMVC Controller 介绍
原博客地址:http://haohaoxuexi.iteye.com/blog/1753271一、简介 在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Model 返回给对应的View 进行展示。在SpringMVC 中提供了一个非常简便
2015-08-24 11:26:30 525
转载 Spring @Transactional (一) 加强版
原博客地址: http://blog.csdn.net/cuker919/article/details/5957209 在service类前加上@Transactional,声明这个service所有方法需要事务管理。每一个业务方法开始时都会打开一个事务。Spring默认情况下会对运行期例外(RunTimeException)进行事务回滚。这个例外是unchecked
2015-08-17 15:28:02 370
转载 Spring事务管理只对出现运行期异常进行回滚
原博客地址: http://blog.csdn.net/abc19900828/article/details/39497631 使用spring难免要用到spring的事务管理,要用事务管理又会很自然的选择声明式的事务管理,在spring的文档中说道,spring声明式事务管理默认对非检查型异常和运行时异常进行事务回滚,而对检查型异常则不进行回滚操作。那么什么是检查型异常什么又
2015-08-17 14:51:03 559
转载 Java并发编程:volatile关键字解析
原博客地址:http://www.cnblogs.com/dolphin0520/p/3920373.html volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是
2015-08-15 18:44:17 337
转载 Spring注解@Component、@Repository、@Service、@Controller区别
原博客地址: http://blog.csdn.net/zhang854429783/article/details/6785574很长时间没做web项目都把以前学的那点框架知识忘光了,今天把以前做的一个项目翻出来看一下发现用·@Component标记一个组件,而网上有的用@Service标记组件,我晕就查了一下资料:Spring 2.5 中除了提供 @Component 注释外,
2015-08-14 15:57:29 438
findbugs class路径如何实现模糊匹配
2015-07-28
TA创建的收藏夹 TA关注的收藏夹
TA关注的人