
checking
追寻北极
没有月亮的晚上,我们相信星光。没有路可走的时候,我们相信远方.--
展开
-
Tomcat进程意外退出的问题分析
节前某个部门的测试环境反馈tomcat会意外退出,我们到实际环境排查后发现不是jvm crash,日志里有进程销毁的记录,从pause到destory的整个过程:org.apache.coyote.AbstractProtocol pausePausing ProtocolHandlerorg.apache.catalina.core.StandardService stopInterna转载 2014-09-07 09:04:39 · 716 阅读 · 0 评论 -
JDK的sql设计不合理导致的驱动类初始化死锁问题
问题描述当我们一个系统既需要mysql驱动,也需要oracle驱动的时候,在并发加载初始化这些驱动类的过程中产生死锁的可能性非常大,下面是一个模拟的例子,对于Thread2的实现其实是jdk里java.sql.DriverService的逻辑,也是我们第一次调用java.sql.DriverManager.registerDriver注册一个驱动实例要走的逻辑(jdk1.6下),不过这篇文章是转载 2014-09-07 09:22:19 · 889 阅读 · 0 评论 -
iostat分析
iostat:在命令行收集有关CPU、磁盘、终端和磁带输入/输出操作的数据#iostat -x 60 10 在60秒内产生10个统计报告,输出# iostat -x extended device statisticsdevice r/s w/s kr/s kw/s wait actv svc转载 2014-09-08 11:47:05 · 867 阅读 · 0 评论 -
查看linux服务器硬盘IO读写负载
最近一台linux服务器出现异常,系统反映很慢,相应的应用程序也无法反映,而且还出现死机的情况,经过几天的观察了解,发现服务器压力很大,主要的压力来自硬盘的IO访问已经达到100% 为了方便各位和自己今后遇到此类问题能尽快解决,我这里将查看linux服务器硬盘IO访问负荷的方法同大家一起分享: 首先 、用top命令查看 top - 16:15:05 up 6 days, 6:2转载 2014-09-08 08:23:41 · 730 阅读 · 0 评论 -
linux常用监控命令
监测工具我们只需要简单的工具就可以对 Linux 的性能进行监测,以下是 VPSee 常用的工具:工具 简单介绍top 查看进程活动状态以及一些系统状况vmstat 查看系统状态、硬件和系统信息等iostat 查看CPU 负载,硬盘状况sar 综合工具,查看系统状况mpstat 查看多处理器状况ne转载 2014-09-08 11:35:51 · 619 阅读 · 0 评论 -
top命令分析
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。下面详细介绍它的使用方法。 top - 09:15:07 up 3:13, 4 users, load average: 0.03, 0.21, 1.17 Tasks: 229 total, 2 running, 227 sleeping, 0 stoppe转载 2014-09-08 08:36:00 · 710 阅读 · 0 评论 -
理解Load Average做好压力测试
SIP的第四期结束了,因为控制策略的丰富,早先的的压力测试结果已经无法反映在高并发和高压力下SIP的运行状况,因此需要重新作压力测试。跟在测试人员后面做了快一周的压力测试,压力测试的报告也正式出炉,本来也就算是告一段落,但第二天测试人员说要修改报告,由于这次作压力测试的同学是第一次作,有一个指标没有注意,因此需要修改几个测试结果。那个没有注意的指标就是load average,他和我一样开始只转载 2014-09-08 08:38:44 · 723 阅读 · 0 评论 -
如何查看Linux下进程的IO活动状况
Linux Kernel 2.6.20 以上的内核支持进程 IO 统计,可以用类似 iotop 这样的工具来监测每个进程对 IO 操作的情况,就像用 top 来实时查看进程内存、CPU 等占用情况那样。但是对于 2.6.20 以下的 Linux 内核版本就没那么幸运了,根据Stack Overflow 的这篇回帖 给出的方法,VPSee 写了一个简单的 Python 脚本用来在 linux k原创 2014-09-08 09:01:51 · 1363 阅读 · 0 评论 -
在Linux中监视IO性能
在这一部分里我们先舍弃各种结构复杂的存储系统,直接研究一个单独的磁盘的性能问题,藉此了解各个衡量IO系统系能的各个指标以及之间的关系。需要注意的是,本文探讨的仅限于磁盘IO性能,网络IO性能不考虑在内。 几个基本的概念 在研究磁盘性能之前我们必须先了解磁盘的结构,以及工作原理。不过在这里就不再重复说明了,关系硬盘结构和工作原理的信息可以参考维基百科上面的相关词条——Hard转载 2014-09-08 11:33:28 · 1051 阅读 · 0 评论 -
文件io消耗分析
Linux 3.2.0-23-generic (joeyon) 09/08/2014 _x86_64_ (8 CPU)avg-cpu: %user %nice %system %iowait %steal %idle 0.93 0.00 0.26 0.17 0.00 98.64Device原创 2014-09-08 12:05:32 · 921 阅读 · 0 评论 -
IO负载高的来源定位2
工具准备:iotop: http://guichaz.free.fr/iotop/pt-ioprofile:http://www.percona.com/downloads/percona-toolkit/2.2.1/ Step1 : iostat 查看IO情况 iostat -x 1 查看IO情况,从下图可以看到dfa这个磁盘的IO负载较高,接下来我们就来定位具体的转载 2014-09-08 10:28:01 · 880 阅读 · 0 评论 -
iostat与iotop
以下实验环境都在我自己笔记本的VirtualBox虚拟机上,如果换到了真实服务器设备,会额外提示。1[root@roger-lab tmp]# cat /etc/redhat-release2CentOS release 6.3 (Final)3[转载 2014-09-08 10:25:43 · 3547 阅读 · 0 评论 -
Java自带的性能监测工具用法简介——jstack、jconsole、jinfo、jmap、jdb、jsta、jvisualvm .
1、介绍jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项"-J-d64",Windows的jstack使用方式只支持以下的这种方式:jstack [-l] pid如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的java stack和native stack的信转载 2014-09-07 23:01:50 · 679 阅读 · 0 评论 -
磁盘IO瓶颈 之:单节点下的文件数量导致文件读取性能低下
过去,在测试服务端程序时,能想到遇到某目录文件数量大会影响性能。 如今,这一问题到自己身上时却不以为然。 今天在测试一下项目性能时,需要向服务器Post文件。服务器会解析文件内容,然后走业务逻辑。 测试有以下两种场景: 1、 上报“单文件”:Post携带的内容中仅包含一个文件的内容; 2、 上报“多文件”:Post携带的内容中包含多个文件的内容。转载 2014-09-08 01:14:22 · 3296 阅读 · 0 评论 -
tomcat启动时检测到循环继承而栈溢出的问题
一个用户在使用tomcat7054版本启动的时候遇到的错误:Caused by: java.lang.IllegalStateException: Unable to complete the scan for annotations for web application [/test] due to a StackOverflowError. Possible root causes转载 2014-09-07 09:03:13 · 724 阅读 · 0 评论 -
一个api的 rt 大涨问题排查
mtop是移动接入网关平台,对客户端暴露api,后端接api实际的应用服务,有HSF,也有http的服务端。之前进行了机房从杭州搬迁到上海,在搬迁的过程中,其中一个api的rt突然大涨,(之前平均的约210ms)分析具体的原因了,当时正机房搬迁,首先考虑的就是是否此影响,是否发生了跨机房调用的导致,当时把整个杭州的后端服务全部干掉,确认没有跨机房调用,但rt还是没有降低,仍旧很高。转载 2014-09-07 09:21:07 · 2142 阅读 · 0 评论 -
文章汇总
http://ifeve.com/classnotfoundexception-is-it-slowing-down-your-jvm/http://ifeve.com/15-java-faq/http://ifeve.com/buglinkedtransferqueue-bug/http://ifeve.com/how-to-calculate-threadpool-size/h转载 2014-09-07 09:25:19 · 515 阅读 · 0 评论 -
iostat命令详解
iostat 结果解析[root@20081006-1724 ~]# iostat -xLinux 2.6.9-78.ELsmp (20081006-1724) 11/20/2009avg-cpu: %user %nice %sys %iowait %idle 0.19 0.00 0.04 0.03 99.73转载 2014-09-07 23:59:36 · 821 阅读 · 0 评论 -
关于ActiveMQ大数据量时的无能为力
专设一台24G内存的服务器跑一个ActiveMQ节点,结果队列不到2千万时开始出现慢+卡的现象。不久它就挂了! 再访问控制页面的时候已经抛500内部错误了,截图如下: 此时ActiveMQ再也无法启动了,据说是由于使用了内存存储方式导致的。然后修改存储方式为文件存储(fileQueueCursor)再启动悲剧又发生了: INFO | cursor for q转载 2014-09-08 00:35:15 · 10755 阅读 · 0 评论 -
关于Linux系统指令 top 之 %si 占用高,分析实例一
续“top %wa 高的问题”之后,又遇到top之%si过高(高峰时段超过95%)的问题。%wa高,说明磁盘忙。譬如磁盘读写次数非常高。%si高,是否说明软中断忙?是否也说明软中断次数非常高呢?为了查证此问题,找了一些Linux监控中断的工具。起初找到oprofile,它非常强大,强大到使用起来摸不着北。能用oprofile监控硬中断,但在%si很高的时候,监控到硬中断为零。然后找转载 2014-09-08 00:53:39 · 23053 阅读 · 0 评论 -
Java问题排查常用linux命令
系统配置相关:查看内核/操作系统/CPU信息: uname -a查看操作系统版本: head -1 /etc/issue查看网卡信息:cat /sbin/ifconfig查看cpu配置: cat /proc/cpuinfo查看mem配置:cat /proc/meminfo查看环境变量 资源: env 查看各分区使用情况: df -h查看指定目录的大小: du -转载 2014-09-07 23:00:09 · 811 阅读 · 0 评论 -
linux 系统负载高 如何检查
1:load Average 1.1:什么是Load?什么是Load Average? Load 就是对计算机干活多少的度量(WikiPedia:the system Load is a measure of the amount of work that a compute system is doing) 简单的说是进程队列的长度。Load Average 就是一段转载 2014-09-08 00:00:26 · 645 阅读 · 0 评论 -
处理linux服务器cpu的wa%值过高
时近中午醒来,看了一下新闻,做了十几分钟的室内运动,洗澡之后发现脖子有点疼,可能昨晚睡觉给扭到了。下班街头看美女都不好扭脖子。现在项目急,每天更新,然后修bug.。出问题的风险也越来越高,7号公司网站就出现,响应很慢的情况,最后排除发现是机房出口带宽不够用了。囧,今天写周报,发现数据库服务器CPU的wa%值增加的很快,排查了一下,发现是mongodb的一个集合写入磁盘时间太慢,而且并发也挺高才导致转载 2014-09-08 00:29:20 · 24691 阅读 · 1 评论 -
关于Linux系统性能瓶颈定位分析(一),Nginx状态页测试
关于系统性能瓶颈的定位,今天搬来一实例。希望和广大网友沟通分享 使用场景: Nginx对外提供接口服务,本文以Nginx的状态页(stub_status)为例。 需要解决的问题: 定位性能瓶颈,并调优 测试方法 使用约40台测试机向一台Nginx服务器并发访问 服务器配转载 2014-09-08 00:50:01 · 4225 阅读 · 1 评论 -
线上应用故障排查:高内存占用
上一篇介绍了线上应用故障排查之一:高CPU占用,这篇主要分析高内存占用故障的排查。搞Java开发的,经常会碰到下面两种异常:1、java.lang.OutOfMemoryError: PermGen space2、java.lang.OutOfMemoryError: Java heap space要详细解释这两种异常,需要简单重提下Java内存模型。 Java内存模型是描转载 2014-09-07 22:57:19 · 743 阅读 · 0 评论 -
线上应用故障排查:高CPU占用
一个应用占用CPU很高,除了确实是计算密集型应用之外,通常原因都是出现了死循环。以我们最近出现的一个实际故障为例,介绍怎么定位和解决这类问题。根据top命令,发现PID为28555的Java进程占用CPU高达200%,出现故障。通过ps aux | grep PID命令,可以进一步确定是tomcat进程出现了问题。但是,怎么定位到具体线程或者代码呢?首先显示线程列表:ps转载 2014-09-07 22:47:00 · 837 阅读 · 0 评论