- 浏览: 276539 次
- 性别:
- 来自: 杭州
最新评论
-
jnjeC:
第一步:打开日志文件 less sigma.log第二步 ...
linux less从后向前查看日志信息 -
jnjeC:
mac 里面直接按b或f就可以,好像按ctrl没反应
linux less从后向前查看日志信息 -
wiselyman:
写的太好了
从100PV到1亿级PV网站架构演变 -
cfyme:
fu222cs98 写道曹教练最后拿了什么大奖了没啥大奖啊
2015桐庐年会--奔跑吧,骚年 -
fu222cs98:
曹教练最后拿了什么大奖了
2015桐庐年会--奔跑吧,骚年
文章列表
串行执行批量任务脚本
- 博客分类:
- shell脚本
前阵放假时候,帮人跑实验,需要在一台服务器上跑一堆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进程的堆栈信息 ...
使用jstack诊断Java应用程序故障
- 博客分类:
- 故障经验
最近一段时间,我们的生产系统升级频繁出现故障,具体故障现象是启动后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常用命令技巧
- 博客分类:
- 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,可以妥妥的使用单线程循环处理任务。
但是如果想“同时”做点其它事情,就得多开线程,比如:
在下载远程文件的同时,显示下载进度。
...