- 博客(182)
- 资源 (132)
- 收藏
- 关注
Mysql高性能学习笔记-02
Mysql高性能学习笔记2刘岩suhuanzheng7784877@163.comBlog:suhuanzheng7784877.iteye.com 1.前言高性能Mysql中的第二章-基准测试和第三章-服务器性能剖析是需要全局考虑的问题,不同的应用场景,基准测试的方式和输入数据是不太一样的。所以我们后续再讨论这两个问题,先放过去,直接进行优化schema和数据类型的这一...
2014-05-23 22:00:45
260
Mysql高性能学习笔记-01
Mysql高性能学习笔记-01 刘岩 Blog:suhuanzheng7784877.iteye.com 1.Mysql的架构Mysql整体的架构模块如下图所示 模块1:连接客户端,这个一般是指mysql基于mysql通讯协议的驱动程序。比如mysql的Java的JDBC驱动程序——mysql-connector-java-5.1.26-bin.j...
2014-04-16 09:48:07
200
Web前端优化
Web前端优化总结 刘岩 suhuanzheng7784877.iteye.com 1.Grade A on Make AJAX cacheable 缓存AJAX的实时数据:当在浏览器下使用ajax技术时,如果在一个时间段内多次访问同一URL地址(GET方法,POST方法是多阶段提交,第二阶段提交body体信息),由于浏览器的缓存(占客户端机器的资源)作用...
2014-04-08 09:35:40
355
Web应用单点压力测试调优-第6季-阶段性总结
阶段性总结 <!--[if !supportLists]-->1) <!--[endif]-->应用的测试用例类型其实是简单的随机get几条json信息。并没有复杂的业务逻辑处理(权限验证等等),所以在业务上基本没有可优化的余地,转成异步的队列请求操作也是得不偿失。像注册用户、提交评论、上传图片等等这些耗时、与下一个操作无关联的、又是POST的HTTP请求...
2014-03-14 12:24:38
262
Web应用单点压力测试调优-第5季
各项配置:my.cnf [client]port = 3306socket = /tmp/mysql.sock[mysqld]port = 3306socket = /tmp/mysql.sockskip-external-lockingkey_buffer_size = 16Mmax_allowed_packet = 1M...
2014-03-13 09:32:56
177
原创 Web应用单点压力测试调优-第4季
调整5-Tomcat的启动JVM参数 首先先启动JMX远程端口,修改catalina.shJAVA_OPTS="-XX:PermSize=120M -XX:MaxPermSize=120M -Xss265k -Xms430m -Xmx430m -Xmn185m -Xverify:none -XX:MaxTenuringThreshold=50 -XX:+UseFastAccess...
2014-03-12 14:55:53
208
单点网站压力测试调优-第3季
调整2-调整配置,数据库连接池数量 mysql默认最大连接数是100 关闭程序和mysqld 修改mysql配置文件/etc/my.cnf 在[mysqld]下增加 max_connections=400 修改项目中jdbc.c3p0.properties配置文件,将127.0.0.1改成localhost,不受网卡限制.mysql对...
2014-03-11 16:21:33
181
Web应用单点压力测试调优-第2季
并发1000,准备时间1s,让它产生大量的等待请求 第一次发起并发的时候,基本错误率在80% 间隔时间较短,多次发起并发 走势图 吞吐量 平均错误率在28%~38%之间,不稳定。大规模的错误异常是tomcat连接超时 org.apache.http.conn.HttpHostConnectEx...
2014-03-07 16:52:51
190
单点网站压力测试调优-第1季
环境介绍 虚拟机配置 操作系统 Centos6-64位(内核版本: Linux localhost.localdomain 2.6.32-358.el6.x86_64 #1 SMP Fri Feb 22 00:31:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux)CPU (英特尔)Intel(R...
2014-03-07 10:36:47
191
原创 Memcache工作原理总结
<!--[if !supportLists]-->1. <!--[endif]-->分片原理 咱们废话话不多说了,直接看Memcache的原理。首先memcache解决的最大的一个问题就是内存多次读取的内存碎片问题。内存碎片分为内存内部碎片和内存外部碎片。一般是指在外部碎片中出现了不连续的细小内存片段,不能够被进程利用。因为不连续,不能组合成大而的连续空间...
2014-03-07 10:22:22
312
Tomcat7.0.28源代码浅读1
1.接收Http连接 处理连接涉及的主要类是org.apache.tomcat.util.net.JIoEndpoint的内部类Acceptor。JIoEndpoint在启动之初会调用它的startInternal()方法,之后会有单独的线程负责激活Acceptor。 /** * 监听TCP/IP连接,并处理他们,分发到HTTP的处理器 */...
2014-03-05 20:34:00
140
关于JVM内存回收算法的补充
1. 再说JVM的分代回收策略 HotSpot的垃圾回收机制采用分代回收,堆分为年轻代和老年代,非堆就是持久带。面对不同的代,采用不同的回收策略。 而年轻代又可以分为1个Eden和2个Survivor。对于Eden,大多数对象都是先在此区域开辟空间,存储年轻对象的实例数据。Eden相对于Old带,空间是比较小的。所以对象数据不断地在此开辟空间,Eden不够了,年...
2014-03-05 20:04:49
127
JVM管理内存就像公司入职与裁员
1. 1-内存管理 JVM内存管理,平时大家估计都不是很在意,一直到快跳槽了,快面试了,大家可能会看看,也可能直接忽略不计了。JVM内存管理是虚拟机的事情,和开发人员有什么关系。这种想法一直在我们开发人员的潜意识中存在:“内存管理,与我无关,只要规范地写好Java代码就好喽,虚拟机那是Oracle或者IBM的事。”。我们暂时先放下这个想法啊,一起来看看Java虚拟机到底如何对内存...
2014-03-05 19:58:33
224
编程质量提高建议总结1(持续总结)
编程质量提高建议总结1(持续总结)1.混淆字母要明显比如long i = 1l;最好写成long i = 1L;字母意义突出明显。2.常量定义不要包含非常量因子final static long a = 当前日期的long数值3.变长方法重载JVM优先采用最精确的重载方法4.变长参数如果调用者传的是null,那么就不好...
2014-03-05 19:42:41
240
Java分布式应用学习笔记09JMX-MBean的介绍(JMX的一点点补充)
1. MBean介绍从上一篇Blog的内容可以看到,我们大多数代码工作量都是自定义的一个JavaBean,这个JavaBean有属性、访问器(get)、写操作(set),之后还可以定义一些非常规方法,比如执行核心管理操作的方法,甚至还可以深度调用full gc进行全面的资源回收。也就是说这个JavaBean并不像它的名字那么简单,它负责了一些监管任务等等。使用者灵活地使用JMX客户端工具,比...
2011-10-09 09:01:23
234
读金庸故事,品程序人生05刀狂剑痴
“武林至尊,宝刀屠龙。号令天下,莫敢不从。倚天不出,谁与争锋。”。这个是我们的射雕英雄郭靖留给倚天屠龙年代的唯一财富,小说中,这笔财富在反元起义军中起到了很重要的作用。咱们不说新版的小说改动吧,就用经典版来说事。倚天剑里面是《九阴真经》,而屠龙刀里面是《武穆遗书》(最新版小说已经修改),单独来讲,倚天剑和屠龙刀都是利器,作为武器,十分锋利。紫衫龙王都说过,灭绝师太凭着倚天剑的锋利,战胜了她,所以她...
2011-09-13 09:27:17
223
Java分布式应用学习笔记08JMX规范与常用的监控场景
1. JMX规范JMX是“Java管理扩展的”的缩写,它和其他JavaEE类似也是曾经的Sun提出的一种规范(规约),从名字上可以看出主要是负责系统管理。是一个为系统加入或者说扩展成有管理功能的规约,只要按照这套规约行事,您的系统,某些某块就具备被其他工具(例如JConsole)管理的能力。换句话说就是可以用JMX来监控咱们的系统运行情况,还有可以在运行时环境像Web Service、RMI...
2011-09-13 09:17:04
184
Java分布式应用学习笔记07线程池应用(又名:线程池与大排档)
1. 线程池是啥子一说到池子,大家都会想到数据库连接池那种对象池。本来嘛,现在倡导废物回收利用的节能环保绿色新社会嘛。其实线程池的初衷就是能将已经创建好了的线程对象重复利用。之前咱们说过对于一个分布式系统,离不开高并发、多线程的支持。那么无论是HTTP方式的,还是文件方式的,面对海量的客户端请求,作为服务端如果对于请求使用单线程阻塞方式显然是不可能的。JDK5之后为咱们提供了现成的线程池对象...
2011-09-07 09:00:47
185
《我奋斗了18年才和你坐在一起喝咖啡》,而我奋斗了18年,不是为了和你一起喝咖啡(转载)...
转摘自某空间,看完颇有感触。摘录于此,与大家分享。 博主,看完以后,分析没错的话,生于1978年,清华大学硕士学位,北京某外企中层领导。 文中提及主要人物:我,农家子弟。 你,大学同学北京人。 3年前,麦子的一篇《我奋斗了18年才和你坐在一起喝咖啡》引...
2011-09-01 22:04:53
536
Java分布式应用学习笔记06浅谈并发加锁机制分析
1. 前言之前总结的多线程的调度、并发调度、线程加锁安全等等并发包底层大都使用了线程锁机制。咱们通过锁的源码来看看JDK如何将这些资源进行加锁限制的,怎么就能做到线程集中等待后就唤醒主线程的。2. 一段并发包源码以下是java.util.concurrent.CyclicBarrier的底层代码片段。 private int dowait(boolean timed, l...
2011-08-19 16:12:46
122
Java分布式应用学习笔记05多线程下的并发同步器----后篇
5. CountDownLatch很多资料上都说CountDownLatch是倒数计数器,我觉得这种说法太过专业,其实它就是一个数数的人员。利用它,可以在多线程执行任务完毕后完成进行多线程的等待,便于等待所有的线程之后在干别的事情,这个有点类似于FutureTask,使用上不太一样。这个场景就是一个线程必须要等到其他线程执行完毕后才能往下执行,注意,这里这个线程没必要需要其他线程的执行结果,...
2011-08-11 09:07:00
115
Java分布式应用学习笔记05多线程下的并发同步器----前篇
1. 前言JDK提供的并发包,除了上一篇提到的用于集合外,还有线程的调度、协作、调度等等功能。上篇提到过,线程之间除了竞争关系,还有协作关系。在高并发环境下有效利用Java并发包解决线程之间协作的特殊场景。在并行计算,尤其是多线程计算的结果集合并的时候都需要用到这些并发同步器。还有一种使用场景,就是跨越多台机器(实机)的多线程进行并行运算,需要将多台机器进行结果集的汇总,合并。其原理核心也是...
2011-08-11 09:02:46
136
Java分布式应用学习笔记04JDK的并发包的集合总结---后篇
唉~这一大篇blog又是只能显示部分,部分内容被截断了。。。。 4. Set的并发CopyOnWriteArraySet和CopyOnWriteArrayList底层实现差不多,就是在添加元素的时候需要对对象进行唯一性判断,如果对象数组已经含有重复的元素,不进行增加处理。在此不再赘述。5. Queue的并发队列的并发类是java.util.concurrent.ArrayB...
2011-08-02 17:21:48
137
Java分布式应用学习笔记04JDK的并发包的集合总结---前篇
1. 前言平时咱们使用的HashMap、ArrayList等等容器集合包都存在线程安全的问题,看过JDK源码的各位朋友们知道这些实现类底层,为了性能,都没有对这些集合的操作方法做加锁或者副本传递机制,只有Vector和Stack是线程安全的,大家可以看它们的源码,底层方法是以在方法上加上synchronized作为代价的,换句话说是用时间换取空间的方式。Sun JDK对多线程并发环境下做了很...
2011-08-02 17:17:54
145
Java分布式应用学习笔记03JVM对多线程的资源同步和交互机制
1. 前言既然是分布式系统,就离不开对于多线程程序的开发,面对客户端大并发的访问,如何控制程序的多线程资源?我们都知道在程序中使用关键字synchronized,对对象级别的加锁也好,对类级别的加锁也罢。JVM在底层是如何运行的,这个属于JVM处理多线程的原理了,当然了,JVM最终当然还是需要操作系统和CPU一起完成真正的多线程并发的问题。只是咱们这次放慢时间,看看JVM这一层对于多线程并发...
2011-07-28 10:55:23
133
Java分布式应用学习笔记02再谈JVM---续
唉~~因为blog总显示不全只能分为2个了,排版也不是很好,凑合着看吧。客户端执行的优化策略有如下3种措施方法内联:一个方法的执行离不开其他方法的支持,若调用的其他方法十分简单。那么调用的时候会将被调用那个方法里面所有的内容粘到主调方法中,这样做的好处是节省参数变量,中间变量的资源和返回值的资源申请位置。 private void test(){ ...
2011-07-25 09:22:07
89
Java分布式应用学习笔记02再谈JVM
1. 前言-为何要再谈JVM很多人认为,分布式Java应用看上去好像和Java虚拟机没什么太多关注的东西,别说分布式系统了,就是一个单机JavaSE系统也不用将JVM学得透透的,有个JVM执行不就行了吗。据笔者的经验回答则是,在大型分布式系统,尤其是云计算服务平台,SAAS也好,PAAS也罢,要求编写的应用必须要高效,你就当你运行的是一个配置很小的机器上,要求资源比较苛刻。所以了解,甚至再学...
2011-07-25 09:10:58
133
Java分布式应用学习笔记01分布式Java应用和SOA
1. 前言当我们所做的系统到一定的程度后,随着涉及的领域越来越宽泛,客户群也越来越多,我们的系统不得不需要第三方系统协作,或者将原有大系统分解成各个协作的小系统才能更好地完成任务。就好像KFC,收银员就负责客户端点餐、收银、找零钱、开发票是一个接待人员完成。而真正为您做餐的又分为比较复杂的分工,比如负责炸薯条的人、做汉堡的人、还有做盖饭的(KFC的盖饭,唉~~不说了)。而为这些做餐人员提供物...
2011-07-22 13:52:44
132
3种下载文件程序的思考,为何使用NIO进行异步网络通讯
1. 前言现在很多做网络通讯中间代理层的通讯都是使用Java1.4以后推出的NIO进行编写,现在还有很多开源的框架也是封装了NIO的书写细节来帮助大家简写异步非阻塞通讯服务。像MySql的代理中间件amoeba-mysql-proxy就是采用NIO的方式处理client端过来的request,之后与Mysql-Server层的通讯也是采用NIO进行命令消息发送的。再看咱们JavaEye首页介...
2011-07-12 08:54:48
171
读金庸故事,品程序人生04韦小宝做事的启示
很多人认为我们程序员不会做人,至少认为我们在人际交际方面缺乏技巧。程序员一遇到人际方面的事情就发憷,和售前人员,领导,甚至是客户都不太会沟通,遇到非技术的事情,就慌了,往往作出的决定比较茫断! 反正笔者确确实实觉得是有这样的问题,不说大的方面吧,我们就看看在工作中如何做顺水人情。可能标题有点大,一般职场说不上什么恩德吧,但是总可以说得上是顺水人情吧。各位看过金庸小说的朋友觉得谁值得我们...
2011-07-06 09:18:39
214
使用Memcached做分布式系统的Session存储
1. 前言Memcache除了可以做Hibernate的二级缓存外,还可以做很多很多事情。在互联网应用中,往往通过它作为缓存解决方案来保存数据,进而减少数据库的负载,而在分布式系统中,Session在不同Node中的复制,是一个比较常见的问题啦。而且在分布式系统中还要实现Session的修复,就是其中一个Node宕机了,另一个Node立即可以接管宕机Node的所有Session信息,Memc...
2011-07-01 10:12:27
119
用xmemcache作为JPA(Hibernate实现)二级缓存
1. 持久层的缓存Hibernate中提供了两级Cache,第一级别的缓存是Session级别的缓存,它是属于事务范围的缓存。这一级别的缓存由hibernate自身进行管理的,一般情况下无需进行干预,默认一级缓存也是打开的;第二级别的缓存是SessionFactory级别的缓存,它是属于进程范围或群集范围的缓存。这一级别的缓存比较重量级,可以进行配置和更改,并且可以动态加载和卸载。 Hibe...
2011-06-30 09:44:42
218
Maven3实战笔记16Maven总结
1. 前言用了15篇Blog做Maven3的学习笔记,最后想想好像觉得总是比较冷冰冰的,将知识点列出来,停留在如何使用Maven的层面。那么咱们抛开书本,回过头来再看看哪些Maven的功能点,再来总结总结Maven到底为我们做了些什么,使用Maven的好处到底体现在哪里。2. Maven改变个人习惯在没有Maven之前,我们开发一个新项目的时候,总是要引入很多第三方的组件为我们提供...
2011-06-27 09:54:10
112
Maven3实战笔记15编写Maven插件
1. 自定义插件介绍在一些情况下,Maven现有的一些插件可能满足不了我们的一些“特殊服务”。这个时候有三种选择,第一,问问有经验的Maven开发者,是否有相应的。第二,从网上找找搜搜,看看有没有别的组织开发的Maven插件可以使用。第三,以上两条路都没走通,看来只能自己开发Maven的插件了,谁让咱们的需求比较“特殊”呢!“特殊服务”就得付出点代价不是~对于插件,大家可能接触最深的就是ID...
2011-06-24 08:52:31
135
读金庸故事,品程序人生03杀死你的执着
执着能杀人,在执着杀死你之前,请将它杀死。看过《天龙八部》的人一定记得那经典的一段珍珑棋局吧。我们就从这盘棋局说起。逍遥掌门让苏星河布置珍珑棋局是为了替逍遥派清理门户,继承自己的衣钵。参与这场棋局的主要有四人(范百龄就算了吧),段誉、慕容复、段延庆、虚竹。其中,虚竹不怎么会下棋,假借段延庆的传音入耳和他的棋艺通过了面试,最终获得逍遥掌门的绝世内功。我们就看慕容复的执着是如何差点要他命的。慕容复胸怀...
2011-06-23 08:55:09
163
Maven3实战笔记14Maven生成项目站点
1. 前言一个项目的成败离不开项目各个阶段的信息反馈,总结报告,团队建设信息等等因素。及时反应这些信息,落实到具体的数字上,才能反映一个团队的战斗力。也更能反映出一个团队的问题出现在哪里,其实这是“敏捷开发”所提倡的概念,及时反映团队信息,用数据报告说话,团队成员看到这些,自己心里就有个数,自动调整、自动反馈、及时反应新数据。这样对于项目本身也有好处,也能够积极调动团队成员主观能动性。不过就...
2011-06-23 08:52:33
179
Maven3实战笔记13Maven Profile定制化构建
1. 前言有时候我们开发的软件有不同的环境,开发阶段是开发环境,也就是我们这些研发人员平时使用的环境,大多数人开发还是在Windows下面吧,少数人连开发环境都需要在Linux或者Unix下进行,因为Java自身的跨平台性可能在哪个操作系统下开发差别不大,如果Java调用C/C++执行特定服务,就需要C/C++人员开发时最好和生产环境一样在Linux(而且版本一致)下进行研发,省得到时候测试...
2011-06-22 08:39:14
151
读金庸故事,品程序人生02摒弃嫉妒心
用电影《东邪西毒》的台词作为开头,“任何人都可以狠毒,只要你尝试过什么是嫉妒,我不在乎别人怎么看我,我只是不想别人比我更开心。”。嫉妒心是人人都会有的,除非真正看破红尘的人,不在此列,哀莫大于心死,心死的人再无好胜之心,可以说嫉妒心也远离他而去,不过我们这些打工的就算了,肯定是个凡人吧。《笑傲江湖》里面的林平之,刚开始是一个诚实、有正义感的年轻人。金庸刚开始把他写得也是有光彩的,就在福州小店,...
2011-06-17 10:12:08
183
读金庸故事,品程序人生01出世前的修炼
搞软件就像金庸小说中的侠客们闯荡江湖,快意恩仇,你死我活。有人问,职场真的就这么血雨腥风吗?职场就是江湖,用一句广播语说:“什么是江湖?有云的地方就有天下,有人的地方就有江湖。”出世前就好比闯荡江湖之前,对于大学生来说就是四年的大学学习生涯,对于专科生来说就是三年修炼。不过这也不是绝对,有人在高中,甚至是初中就接触了软件开发,不过国内比较少,我们以大多数人的情况说事儿。我们就用射雕三...
2011-06-16 09:06:38
127
使用CXF暴露您的REST服务
1. 前言现在互联网Open API流行,将您的Web应用也可以开放Open API给其他第三方使用。达到一种资源有效利用的目的。而Open API的暴露方式是多种多样的。有Web Service形式的,也有提供一个URI方式的,还有就是给客户端一个jar包,直接使用即可。个人认为,对于使用者来说,使用最简单的就是一个“jar包”+“一份使用文档了”,jar将具体的远程通讯细节、鉴权、握手、...
2011-06-15 14:32:47
224
用nagios来监控网络服务器和网络服务
2013-11-08
nagios完整配置文档
2013-11-08
Facebook开发流程
2013-11-06
linux和windows版本的tomcat和jetty
2013-11-06
漫谈大数据第四期-storm
2013-11-06
linux最新稳定内核3.11.6版本
2013-10-29
TortoiseGit and TortoiseSVN
2013-10-29
hbase-0.94.12
2013-10-29
linux的32位make的rpm包
2013-04-03
mysql解压缩版依赖包:libaio;perl
2013-02-24
32位centos的gcc和gcc++rpm包
2013-02-23
centos6.0 32位的gcc安装rpm包
2013-02-23
SVN分支与合并【超详细的图文教程】
2014-05-27
完美网页设计艺术
2014-05-23
Mysql高性能学习笔记02
2014-05-23
高性能MySQL
2014-04-09
Web前端优化
2014-04-08
Mysql的学习笔记01
2014-04-08
关于JVM内存回收算法的补充
2014-03-31
JVM管理内存就像公司入职与裁员
2014-03-31
Java并发程序设计教程-by 温少
2014-01-31
深入学习hbase原理资料整理
2014-01-28
精通CSS:高级Web标准解决方案
2014-01-04
storm安装所需
2013-12-31
Apache调优最详细的文档
2013-12-11
Mysql_性能优化
2013-11-21
Linux升级内核版本
2013-11-21
电信行业业务支撑系统体系
2013-11-21
oracle的Exadata_技术架构和主要特点
2013-11-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人