自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

数据库死锁

数据库在进行insert,update,delete这些更新操作的时候为了保证数据一致性都会使用排他锁。 一个事务里进行update操作,在事务结束之前(commit or rollback)排他锁不会被释放。因此在一个事务里update多条数据的时候执行顺序就尤为重要,两个并发事务中更新操作的执行顺序不同就有可能产生死锁:(x, y分别表示一行数据) transaction ...

2013-05-08 14:30:07 127

查找占用CPU高的线程

1、[i]top[/i] 命令 可以发现消耗较高CPU的进程2、通过进程号pid,在linux上可以通过 [i]top –H –p [/i] 命令,显示该进程中每个线程的CPU资源消耗情况,可以发现消耗较高CPU的线程3、通过JVM命令 [i]jstack -F > log.txt[/i],打印出某个应用JVM中某时刻所有线程的调用情况,通过线程号我们就可以对应找到线程调用的程序了4...

2013-01-14 17:28:34 143

原创 详解 Too many open files

运行在Linux系统上的Java程序可能会出现"Too many open files"的异常情况,且常见于高并发访问文件系统,多线程网络连接等场景。 程序经常访问的文件、socket在Linux中都是文件file,系统需要记录每个当前访问file的name、location、access authority等相关信息,这样的一个实体被称为file entry。“open files ta...

2012-12-17 10:49:10 153

原创 DBCP连接池参数

[b]DBCP连接池参数说明如下:[/b]1、maxActive="10":表示并发情况下最大可从连接池中获取的连接数。2、maxIdle="5":如果在并发时达到了maxActive=10,那么连接池就必须从数据库中获取10个连接来供应用程序使用,当应用程序关闭连接后,由于maxIdle=5,因此并不是所有的连接都会归还给数据库,将会有5个连接保持在连接池种中,状态为空闲。由于我们没有使...

2012-10-25 10:49:44 136

原创 tomcat7.0.30的高级应用-apr1.4.6安装

一 windows下安装 直接拷贝tcnative-1.dll到TOMCAT_HOME/bin目录下,启动即可 下载地址 http://archive.apache.org/dist/tomcat/tomcat-connectors/native/ 二 linux centos4.8或者ubuntu10.10 server安装 1.下载包 到http://apr.apach...

2012-10-16 15:32:10 133

原创 可伸缩性最佳实践:来自eBay的经验(转)

在eBay,可伸缩性是我们每天奋力抵抗的一大架构压力。我们所做的每一项架构及设计决策,身前身后都能看到它的踪影。当我们面对的是全世界数以亿 计的用户,每天的页面浏览量超过10亿,系统中的数据量要用皮字节(1015或250)来计算——可伸缩性 是生死交关的问题。相关赞助商 由InfoQ和msup战略合作举办的“亚太软件研发团队管理年会”在一个可伸缩的架构中,资源的消耗应该...

2012-08-09 16:25:29 77

原创 Ketama is an implementation of a consistent hashing algorithm

[b]对Ketama的介绍 [/b]Ketama is an implementation of a consistent hashing algorithm, meaning you can add or remove servers from the memcached pool without causing a complete remap of all keys. Here’s ...

2012-08-08 11:34:24 227

原创 Memcached分布式算法(consistent hash)

Memcached分布式算法在网上一搜可以找到一大片了,不过对于Memcached分布式算法中使用的consistent hashing算法,笔者一直没有彻底搞明白,尤其是具体是如何实现,包括虚拟节点的作用,以及为何会在缓存服务器变动的时候将影响降到最小十分迷惑。今天笔者有幸拜读了一篇质量很高的关于”Memcached一致性hash算法consistent hashing”的文章,摘录下来和大家一...

2012-08-07 10:46:14 106

原创 一致性哈希(Consistent Hash) 概念

协议简介  一致性哈希算法在1997年由麻省理工学院提出(参见0),设计目标是为了解决因特网中的热点(Hot pot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简单哈希算法带来的问题,使得DHT可以在P2P环境中真正得到应用。  哈希算法  一致性哈希提出了在动态变化的Cache环境中,哈希算法应该满足的4个适应条件:  平衡性(Balance)  平衡性是指...

2012-08-07 10:46:06 167

原创 memcached的应用和兼容程序

[b]mixi案例研究[/b]mixi在提供服务的初期阶段就使用了memcached。 随着网站访问量的急剧增加,单纯为数据库添加slave已无法满足需要,因此引入了memcached。 此外,我们也从增加可扩展性的方面进行了验证,证明了memcached的速度和稳定性都能满足需要。 现在,memcached已成为mixi服务中非常重要的组成部分。[img]http://dl.itey...

2012-08-06 18:21:20 84

原创 memcached的分布式算法

[b]memcached的分布式[/b]正如第1次中介绍的那样, memcached虽然称为“分布式”缓存服务器,但服务器端并没有“分布式”功能。 服务器端仅包括 第2次、 第3次 前坂介绍的内存存储功能,其实现非常简单。 至于memcached的分布式,则是完全由客户端程序库实现的。 这种分布式是memcached的最大特点。[b]memcached的分布式是什么意思?[/b]这里多...

2012-08-06 17:48:14 110

原创 memcached的删除机制和发展方向

[b]memcached在数据删除方面有效利用资源[/b][b]数据不会真正从memcached中消失[/b]上次介绍过, memcached不会释放已分配的内存。记录超时后,客户端就无法再看见该记录(invisible,透明), 其存储空间即可重复使用。[b]Lazy Expiration[/b]memcached内部不会监视记录是否过期,而是在get时查看记录的时间戳,检查记录...

2012-08-06 17:36:21 122

原创 memcached的内存存储

[b]Slab Allocation机制:整理内存以便重复使用[/b]最近的memcached默认情况下采用了名为Slab Allocator的机制分配、管理内存。 在该机制出现以前,内存的分配是通过对所有记录简单地进行malloc和free来进行的。 但是,这种方式会导致内存碎片,加重操作系统内存管理器的负担,最坏的情况下, 会导致操作系统比memcached进程本身还慢。Slab Allo...

2012-08-06 17:32:34 94

原创 memcached的基础

[b]memcached是什么?[/b]memcached 是以LiveJournal 旗下Danga Interactive 公司的Brad Fitzpatric 为首开发的一款软件。现在已成为 mixi、 hatena、 Facebook、 Vox、LiveJournal等众多服务中 提高Web应用扩展性的重要因素。许多Web应用都将数据保存到RDBMS中,应用服务器从中读取数据并在浏...

2012-08-06 17:22:33 111

原创 交换分区(swap)

SWAP就是LINUX下的虚拟内存分区,它的作用是在物理内存使用完之后,将磁盘空间(也就是SWAP分区)虚拟成内存来使用.  它和Windows系统的交换文件作用类似,但是它是一段连续的磁盘空间,并且对用户不可见。  需要注意的是,虽然这个SWAP分区能够作为"虚拟"的内存,但它的[color=red]速度比物理内存可是慢多了[/color],因此如果需要更快的速度的话,并不能寄厚望于SW...

2012-08-04 11:35:35 161

Java VisualVM远程监控配置

http://sjsky.iteye.com/blog/705323JAVA_OPTS="$JAVA_OPTS -Djava.rmi.server.hostname=10.10.240.85 -Dcom.sun.management.jmxremote.port=9004 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.manageme...

2012-07-30 17:47:06 96

原创 JVM学习目标

1、对JVM的内存分配、垃圾回收有深刻的了解2、可以根据服务器和应用的基本特征正确的配置JVM启动参数3、掌握JVM内存优化和垃圾回收优化的方法,可以熟练的排查并解决JVM性能问题4、对JVM类加载机制有深刻理解5、可以自己编写类加载器6、...

2012-07-23 17:40:24 134

原创 memcached安装步骤和启动参数说明

[b]一、安装步骤[/b]1、libevent-1.4.13-stable.tar.gz上传至服务器并解压2、cd 到解压路径下3、运行命令 ./configure --prefix=[color=red]/export/servers/memcached/libevent-1.4.13-stable[/color]4、运行命令 make5、运行命令 make install...

2012-07-23 17:22:48 118

原创 Spring bean scope

Spring bean scope博客分类: SpringSpringBeanprototype‍‍‍这里的scope就是用来配置spring bean的作用域,它标识bean的作用域。在spring2.0之前bean只有2种作用域即:singleton(单例)、non-singleton(也称prototype), Spring2.0以后,增加了session、request...

2012-07-19 15:00:26 102

原创 Java中的XML解析

查看连接:Http://www.blogjava.net/dunkbird/articles/291420.html

2012-07-19 15:00:15 66

原创 Tomcat调优指南

1 概述本文档主要介绍了Tomcat的性能调优的原理和方法。可作为公司技术人员为客户Tomcat系统调优的技术指南,也可以提供给客户的技术人员作为他们性能调优的指导手册。2 调优分类由于Tomcat的运行依赖于JVM,从虚拟机的角度我们把Tomcat的调整分为外部环境调优和自身调优两类来描述。2.1 外部环境调优调整Tomcat运行环境的操作系统参数和运行Tom...

2012-07-19 15:00:06 66

原创 volatile 变量使用指南

Brian Goetz (brian.goetz@sun.com), 高级工程师, Sun MicrosystemsBrian Goetz 作为一名专业软件开发人员已经 20 年了。他是 Sun Microsystems 的高级资深工程师 ,为多个 JCP Expert Group 服务。Brian 的著作 Java Concurrency In Practice 在 2006 年 5 月由 ...

2012-07-18 16:07:39 69

原创 彼得定律与员工职业生涯规划(该提拔谁,职业规划,知人善用)

在网上能找到不少彼得定律的文章,不过由于彼得定律的提出的时间很早,因此论述在IT公司中影响的内容很少,本文结合一下IT公司的特殊情况略加说明。彼得定律彼得定律大意为:在一个等级制度中,所有人都将被最终提拔到一个无法胜任的位置上(有很多变种说法)。当领导思考“该提拔谁”的时候,经常陷入唯绩效论(虽然比任人唯亲要好得多),并最终导致彼得定律发生。比如,如果把销售冠军提拔为销售经理,...

2012-07-18 16:07:23 148

原创 IT职场人生系列--经验积累

本文是IT职场人生系列的第十四篇。任何时候都会发现IT业是个变化迅速的行业,几年前还很时髦的技术,现在已经过时了;几年前还很热门的行业,现在也过时了。这种变化之莫测,别说我们普通人,连IT巨头们都经常犯错。在这种多变的环境中,提前预测正确一条技术路线或业务路线,并顺利走下去成为其中高手的人少之又少;而即使偶然有几个高手,以前正确也不代表未来会正确下去。在这种多变的环境中,那...

2012-07-18 16:07:14 86

原创 IT职场人生系列--技术?管理?业务?

本文是IT职场人生系列的第十三篇。很多技术人员工作几年后,都要面临未来的出路问题。所有出路中,无外乎技术、管理、业务三个层面。[size=large][b]技术[/b][/size]技术本身也是一条出路,但是在之十二中曾经提到,有深技术和浅技术两者之分。如果本来是从事浅技术的,建议走后面提到的业务中的产品经理路线。因为浅技术的更新换代速度很快,以前积累的经验...

2012-07-18 16:07:06 83

原创 IT职场人生系列--员工的公司观

本文是IT职场人生系列的第六篇。90%的人一生都不会创业,而是给别人打工。而打工的人的自然本能是:“这也不是我的公司,犯不上投入太多。”结果推论就是:90%的人将以不投入的方式度过一生,实在可怕。当然实际上在公司里边会发现各种人:有的人好像干活比老板还着急,甚至天天和老板吵架,直到气得离职;有的人把公司当作挣钱的地方,挖空心思看看还能怎么多赚点钱;有的人与世无争,既不替公司想也不替自己想,...

2012-07-18 16:06:55 102

原创 MySql锁表和锁行实现进程间同步

由于InnoDB预设是Row-Level Lock,所以只有「明确」的指定主键,MySQL才会执行Row lock (只锁住被选取的资料例) ,否则MySQL将会执行Table Lock (将整个资料表单给锁住)。 举个例子: 假设有个表单products ,里面有id跟name二个栏位,id是主键。 例1: (明确指定主键,并且有此笔资料,row lock) SELECT * F...

2012-07-17 11:37:54 613

原创 mysql锁机制以及对性能的优化

为了给高并发情况下的mysql进行更好的优化,有必要了解一下mysql查询更新时的锁表机制。 一、概述 MySQL有三种锁的级别:页级、表级、行级。 MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);BDB存储引擎采用的是页面锁(page-level locking),但也支持表级锁;InnoDB存储引擎既支持行级锁(row-level l...

2012-07-17 11:17:27 119

原创 log4j元素详解

[b]1.Introduction[/b] log4j是Java中老牌的日志工具了,其强大的功能、简便的使用,使得开源项目中随处可见它的身影。即便jdk1.4中引入了logging功 能,log4j还是最受欢迎的日志工具。对log4j的使用者来说,使用log4j的API就那个几个打印日志函数,最需要关注的就是它的配置文件。不 过,很多人只是从网上找个配置样例把它跑起来,而没有更有效的使用l...

2012-07-17 11:16:40 245

原创 mysql explain

在 explain的帮助下,您就知道什么时候该给表添加索引,以使用索引来查找记录从而让select 运行更快。如果由于不恰当使用索引而引起一些问题的话,可以运行 analyze table来更新该表的统计信息,例如键的基数,它能帮您在优化方面做出更好的选择。explain 返回了一行记录,它包括了 select语句中用到的各个表的信息。这些表在结果中按照mysql即将执行的查询中读取的...

2012-07-17 11:15:58 64

原创 NoSQL开篇——为什么要使用NoSQL

【编者按】NoSQL在2010年风生水起,大大小小的Web站点在追求高性能高可靠性方面,不由自主都选择了NoSQL技术作为优先考虑的方面。今年伊始,InfoQ中文站有幸邀请到凤凰网的孙立先生,为大家分享他之于NoSQL方面的经验和体会。非常荣幸能受邀在InfoQ开辟这样一个关于NoSQL的专栏,InfoQ是我非常尊重的一家技术媒体,同时我也希望借助InfoQ,在国内推动NoSQL的发展,希...

2012-07-17 11:15:03 66

原创 关系数据库还是NoSQL数据库

上一篇简单的说明了为什么要使用NoSQL。接下来我们看下如何把NoSQL引入到我们的项目中,我们到底要不要把NoSQL引入到项目中。在过去,我们只需要学习和使用一种数据库技术,就能做几乎所有的数据库应用开发。因为成熟稳定的关系数据库产品并不是很多,而供你选择的免费版本就更加少了,所以互联网领域基本上都选择了免费的MySQL数据库。在高速发展的WEB2.0时代,我们发现关系数据库在性能、扩展...

2012-07-16 10:48:51 77

原创 NoSQL架构实践(一)——以NoSQL为辅

前面[url=http://learned-man.iteye.com/admin/blogs/1540346]《为什么要使用NoSQL》[/url]和[url=http://learned-man.iteye.com/admin/blogs/1540349]《关系数据库还是NoSQL数据库》[/url]两篇从大体上介绍了为什么要用NoSQL,何时该用NoSQL。经常有朋友遇到困惑,看到NoSQL...

2012-07-16 10:47:55 69

原创 NoSQL架构实践(二)——以NoSQL为主

前面一篇[url=http://learned-man.iteye.com/admin/blogs/1541145]《NoSQL架构实践(一)——以NoSQL为辅》[/url]主要介绍了以NoSQL为辅助的架构,这种架构实施起来比较简单,易于理解,由于其中也使用了传统的关系数据库,让开发者更容易控制NoSQL带来的风险。接下来我们继续深入下去,换另外一个角度,“以NoSQL为主”来架构系统。...

2012-07-16 10:47:30 64

原创 NoSQL架构实践(三)——以NoSQL为缓存

在《NoSQL架构实践》系列的前面两篇文章中,介绍了[url=http://learned-man.iteye.com/admin/blogs/1541255]《以NoSQL为主》[/url]和[url=http://learned-man.iteye.com/admin/blogs/1541145]《以NoSQL为辅》[/url]的架构。由于NoSQL数据库天生具有高性能、易扩展的特点,所以我们...

2012-07-16 10:47:01 70

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除