`
cfyme
  • 浏览: 276539 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
文章列表
前阵放假时候,帮人跑实验,需要在一台服务器上跑一堆java实验程序。 为了实验结果的公正性,要保证每次只跑一个实验,也就是需要串行的跑完所有java程序。 刚开始的时候,我每跑一个程序,隔一段时间去服务器上检查一下是否跑完,需要时时留意,实在有点不爽,人也不能走开。 于是写了个shell脚本:串行的去执行一批java程序任务列表。 过程如下: 1.新建任务列表 以实验为例的tasklist.txt: Java代码   java -cp fastPPV0318.jar -Xms512m -Xmx1024m  -Dppv.config=/home/zhufw/fas ...
1.       ExecutorService Java从1.5开始正式提供了并发包,而这个并发包里面除了原子变量,synchronizer,并发容器,另外一个非常重要的特性就是线程池.对于线程池的意义,我们这边不再多说. 上图是线程池的主体类图,ThreadPoolExecutor是应用最为广泛的一个线程池实现(我也将在接下来的文字中详细描述我对这个类的理解和执行机制),ScheduledThreadPoolExecutor则在ThreadPoolExecutor上提供了定时执行的等附加功能,这个可以从ScheduledExecutorService接口的定义中看出来.Executor ...
JAVA LOCK总体来说关键要素主要包括3点: 1.unsafe.compareAndSwapXXX(Object o,long offset,int expected,int x)2.unsafe.park() 和 unsafe.unpark()3.单向链表结构或者说存储线程的数据结构第1点主要为了保证锁的原子性,相当于一个锁是否正在被使用的标记,并且比较和设置这个标记的操作是原子的(硬件提供的swap和test_and_set指令,单CPU下同一指令的多个指令周期不可中断,SMP中通过锁总线支持上诉两个指令的原子性),这基本等于软件级别所能达到的最高级别隔离。第2点主要将未得到锁的线程 ...
找到最耗CPU的java线程 ps命令 命令:ps -mp pid -o THREAD,tid,time   或者  ps -Lfp pid 结果展示:   这个命令的作用,主要是可以获取到对应一个进程下的线程的一些信息。 比如你想分析一下一个java进程的一些运行瓶颈点,可以通过该命令找到所有当前Thread的占用CPU的时间,也就是这里的最后一列。   比如这里找到了一个TID : 30834 ,所占用的TIME时间最高。 通过 printf "%x\n" 30834 首先转化成16进制, 继续通过jstack命令dump出当前的jvm进程的堆栈信息 ...
最近一段时间,我们的生产系统升级频繁出现故障,具体故障现象是启动后10来分钟就出现交易缓慢,处理线程耗尽等现象,并且故障发生的频率蛮高的。经过详细的诊断和排查,终于发现了问题,是groovy在osgi中运行会出现classloader死锁,最后我们也解决了这个问题。         如果单靠通过查看代码是很难去发现这个问题,在这一次故障排查中,我也学到了怎样更好的使用jvm监控工具来进行诊断,主要用到了jstack和jmap命令,jmap上次已经讲过就不再讲了,下面就一个例子来讲怎么使用jstack来对的Java程序进行诊断。         首先让我们来了解一下jstack这个命令的作用,j ...
J.U.C 整体认识 原子操作 part 1 从AtomicInteger开始 原子操作 part 2 数组、引用的原子操作 原子操作 part 3 指令重排序与happens-before法则 原子操作 part 4 CAS操作 锁机制 part 1 Lock与ReentrantLock 锁机制 part 2 AQS 锁机制 part 3 加锁的原理 ...
线上服务器负载过高发生了报警,同事找我求救。我看到机器的负载都超过20了,查看java进程线程栈,找到了出问题的代码。下面是其代码片段,实际情况错误处理比这更坏。  1 package demo; 2  3 import java.io.BufferedReader; 4 import java.io.InputStream; 5 import java.

新的桌上足球

 
2015.05.19日 12:30    新的桌上足球 购买安装完毕   在次记录,看这台子的寿命有多长。            
故事:我有两台服务器  122,123,搭建了tomcat 集群,由于开发环境和正式环境不一样的配置,我需要在正式环境服务器上留下正式环境的配置文件,发布的时候,使用这些预留的配置文件覆盖即可 由于两台服务器使用的项目配置文件是一样的,我不想两台服务器上都去维护这些预留的配置文件 在 122的服务器上我建个webapps/backupConfig文件夹,让 123共享到   操作系统:Ubuntu,122(nfs服务端),123(nfs客户端) 文中提到的ip地址仅供参考   步骤:   1.122 安装nfs sudo apt-get install nfs-kerne ...
nginx日志uv统计,cat access.log | awk '{print $1}' | uniq -c| sort -n | wc -l
; 表示的是一个命令执行完, 忽略其返回值, 继续执行下一行 && 表示只有前面为true才继续执行后面的命令, 否则忽略, 可以理解为短路执行 || 表示子前面为false才继续执行后面的命令, 这个比以前看到的解释更容易理解 凡是要输出字符串的, 最好用引号括起来, 否则容易被shell理解为命令, 这一点很容易疏忽 {}是一种命令块的写法 :可以看成append操作 export用来将一个变量升级为环境变量 str= 这行代码表示将str这个变量设置为null ${str:-+=expr} 这些操作忘记了, 还需要巩固一下 
一、影响Linux服务器性能的因素1. 操作系统级 CPU 内存 磁盘I/O带宽 网络I/O带宽 2. 程序应用级 二、系统性能评估标准影响性能因素 影响性能因素 评判标准 好 坏 糟糕 CPU

linux常用命令技巧

查找目录dir中后缀为*.c和*.h的文件   用正则 find dir -type f -name '*.[ch]'   不用正则 find dir -type f -name '*.c' -o '*.h'   在目录a下建立目录b,而目录a可能不存在 mkdir -p a/b   查看dir目录下面所有txt文件中含有"string"串的总行数  find dir -type f -name *.txt -exec grep "string" {} \; | wc -l     让所有执器同时执行同一道命令 建立好ss ...
我们团队为上一家公司承担运维、优化和扩展工作的时候,我们碰到了各种不同规模的性能很差的系统和基础设备(大型系统居多,比如CNN或者世界银行的系统)。要是再赶上修复时间紧、奇葩的技术平台、缺少信息和文档,基本上这过程都会惨痛到让我们留下深刻的记忆。 遇到服务器故障,问题出现的原因很少可以一下就想到。我们基本上都会从以下步骤入手:   一、尽可能搞清楚问题的前因后果 不要一下子就扎到服务器前面,你需要先搞明白对这台服务器有多少已知的情况,还有故障的具体情况。不然你很可能就是在无的放矢。 必须搞清楚的问题有: 故障的表现是什么?无响应?报错? 故障是什么时候发现的?
一、背景 进入多核时代已经很久了,大数据概念也吵得沸沸扬扬,不管你喜欢不喜欢,不管你遇到没遇到,big-data或bigger-data都必须正视. 处理大数据,基本都离不开分布式计算和分布式存储,这其中以hadoop最为使用广泛和经典。 分布式系统,就离不开计算系统、网络系统、文件系统和数据库系统。 这么多系统,之间又是如何协作的呢?通讯过程又是如何保障高性能的呢? 1.单处理器 在以前的单核心cpu下,我们要实现文件I/O、网络I/O,可以妥妥的使用单线程循环处理任务。 但是如果想“同时”做点其它事情,就得多开线程,比如: 在下载远程文件的同时,显示下载进度。 ...
Global site tag (gtag.js) - Google Analytics