- 浏览: 10230 次
- 性别:
- 来自: 成都
最新评论
文章列表
linux 修改磁盘卷标
- 博客分类:
- Linux
应用场景:
1.在Linux root目录下有个叫/test的目录挂在在/dev/sda4下
2.此时觉得此名(test)不够common
step1.确定/test挂载在那个dev下:
df -h
step2.先卸载/test
umount /test
step3.创建要挂载的目录:
mkdir /data01
step4.重新挂载:
mount /dev/sda4 /data01
ps:不会丢失数据
在我们的项目中往往有这样的需求:我们需要用的一些对象是thread-unsafe的,但是它又承受着高并发的压力,同时往往我们有可能无法去对它改造(或许它是第3方提供的);抑或他的一次创建和销毁非常的耗时。以上两种场景的解决方案用对象池再适合不过了。
本文将解答一下几个问题:
#1什么是对象池
#2怎么使用对象池
#3其实用原理是什么
#4实战中应该注意什么
什么是对象池
简单的来讲,对象池就是我们构造一个集合,提前将需要池化的对象构造一些保存起来,当需要的时候从池子里面取出一个给索取者,索取者用完后还回给池子以便其他索取者可用获得。
要点:1.提前缓 ...
sublime text3使用
- 博客分类:
- sublime
一直在想使用sublime,无奈64位的高级家庭版的系统上界面实在是不忍直视。
在网上找了好久终于找到了一个国内优化版本,下载地址:
http://lx.cdn.baidupcs.com/file/9340c9dce5046d2fe1d3dcefb545df0a?bkt=p2-nj-922&xcode=47f2ff57ac8c92ff5c71736597063b931fa9efe189b6ec7fd5dc8bb3c2080735&fid=4094912105-250528-914688213&time=1419652769&sign=FDTAXERLBH-DCb7 ...
最近在复习hibernate(4.3.7),在编译tutorial时出现两个问题:
1.hibernate-tutorial-envers 项目中的pom.xml中的引用问题
<dependencies>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-envers</artifactId>
[b]<version>4.3.7 ...
jvm-监控工具纪要
- 博客分类:
- jvm
1.jps 仅输出java进程
-q 只输出进程的ID
-m 输出传递给java main函数的参数
-l 输出main函数的完整路径
-v 输出运行jvm的参数
2.jinfo 输出运行java app的扩展参数 --待详细使用
3.jmap 输出java app的堆对快照及对象统计
4.jstack 打印线程dump信息
-l 打印所信息
-m 打印java和native的帧信息
-f 强制dump
5.jconsole 监控java app运行内存情况
6.visual vm jconsole的升级版本
ClassLoader
作用:将class的字节码装载到JVM中
阶段:作用在JVM的装载阶段
主要核心方法:
loadClass,defineClass,findClass,findLoadedClass
classLoader分类:
根加载器:加载jdk中的类如Object
扩展加载器:加载扩展类如spring包中的类
系统加载器:加载系统中的类,即一个系统中程序员开发的类
自定义加载器:自定义类的加载
父->子关系:
根加载器->扩展加载器->系统加载器
加载询问;自子向父询问是否已经加载该类
加载过程:自父向子加载,即要加载一个类,先让父加载器开始加载,如果父加 ...
storm-topology
- 博客分类:
- strom
Storm-topology-grouping
Stream Grouping
storm的grouping 用来决定如何在topology的组件中如何交换数据。类似在haddoop中的partition的过程。spout和bolt都可以产生数据流,但是grouping可以决定如何选择下一个处理stream。
Shufle Grouping
使用频率:高
使用参数:数据源id
特点特性:将数据随机分发到每个bolt,且保证每个bolt接收到同样数量的tuple。
Fields Grouping
使用频率:中
使用参数:数据源id+fields
...
串行收集器:
启动方式:-XX:UseSerialGC
使用该模式后eden使用复制算法,old代使用标记-压缩
ParNeW并行收集器:
启动方式: -XX:+UseParNewGC
使用该模式后,eden代使用并行回收,old代使用串行回收
同时可以使用-XX:ParallelGCThread限制并行回收线程数量
Parallel收集器:
1.ParNew的升级版本
2.该收集器下 eden代使用复制算法 old代使用标记-压缩算法
3.-XX:+UseParallelGC eden使用Parallel并行 old代使用串行收集
4.-XX:+UseParallelOldGC eden+ ...
-XX:PrintClassHistogram
打印类和对应实例的直方图
分别显示:实例数量 总站用大小(byte) 类型
堆内存分配参数:
-Xmx -Xms
指定堆使用最大堆内存 jvm使用的最小堆使用内存
-Xmn
指定新生代内存大小具体的一个值
-XX:NewRatio
通过指定和老年代的比例设置指定新生代的大小,例如 -XX:NewRatio=5 表示 新生代:老年代=1:5,新生代占堆内存的1/6
-XX:SurvivorRatio
设置2个Survivor和eden的内存比
-XX:SurvivorRatio=5 表示2个Survivor:eden=2:5,则一 ...
在搭建storm中需要安装python2.6.centos中默认安装的是python2.4.关于python的升级见文章:http://wind35.iteye.com/admin/categories/292186
升级后在运行yum出现问题
There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was:
No module named yum
Please install a ...
为了安装strom0.8.1需要安装python2.6.6.但是自己机子上的版本是2.4.为了版本兼容升级python.
1.python2.6.6
2.为防止覆盖旧版本,建立新的安装路径:
mkdir /usr/local/python2.6.6
3.解压python包:
tar -xvf python.2.6.6.gz.tar
4.编译安装python
cd python.2.6.6
./configure --prefix /usr/local/python2.6.6 指定安装到新建的目录
make
...
storm的用途这里不做过多的讲解,网上资料一大把,这里只讲安装:strom的按装分为两部分,首先安装相关的依赖。
storm的安装主要以来的其他组件有:
1.java
2.zookeeper
3.ZeroMQ 2.1.7
4.JZMQ
5.python
6.unzip
可以确认的是1,2,3,4是必须的,unzip只是在解压的jzmq的之后用了在storm实际的运行中有没有用到目前还不确定,Python在目前整个安装过程中确实是没有用到的。我的安装顺序是1-2-6-3-4-5.因为要解压jzmq所以现装了unzip
...
tomcat上部署多个web系统,由于使用的是spring+mybatis结构,涉及到的jar比较多。常规的做法是把多个系统公用的jar放到tomcat的共享lib下。对于如何调整tomcat使用的jvm参数比较感兴趣就顺手研究一下:
下图为调整前的tomcat jvm状态图:
可以将明显看到permGen是比较小的,heap内存相对比较大。因此必须需要调整permGen大一些,heap相对减小一些维持在60%左右。
在网上查了很多资料,都说直接在catalina.sh下直接添加JAVA_OPTS即可,但是这个方法我自己没实践成功在tomcat7 ...