最近一段时间  某台服务器上的一个应用总是隔一段时间就自己挂掉      用top看了看  从重新部署应用开始没有多长时间CPU占用上升得很快 排查步骤 1.使用top 定位到占用CPU高的进程PID top 2.通过ps aux | grep PID命令 获取线程信息,并找到占用CPU高的线程 ps -mp pid -o THREAD,tid,time | sort -rn 3.将需要的线程ID转换为16进制格式 printf "%x\n" tid 4.打印线程的堆栈信息  到了这一…
http://blog.csdn.net/jgwei/article/details/12079147 http://hllvm.group.iteye.com/group/topic/38893 http://stackoverflow.com/questions/3805376/jps-returns-no-output-even-when-java-processes-are-running/3822795#3822795…
方法一: 使用 show processlist 语句,查找负荷最重的 SQL 语句,优化该SQL,比如适当建立某字段的索引. 方法二: #查看慢SQL日志是否启用mysql> show variables like 'log_slow_queries';  #查看执行慢于多少秒的SQL会记录到日志文件中mysql> show variables like 'long_query_time';#配置my.ini文件(inux下文件名为my.cnf), 查找到[mysqld]区段,增加日志的配置…
1. 性能优化是什么? 1.1 性能优化就是发挥机器本来的性能 1.2 性能瓶颈在哪里,木桶效应.   CPU占用过高 1.现象重现 CPU占用过高一般情况是代码中出现了循环调用,最容易出现的情况有几种: a)递归调用,退出机制设计的不够合理: b)定时器启动过频繁: c)代码出现死循环  GC频繁也可能导致CPU占用过高 我用最简单的死循环来举例: while (true){ ... } 执行后用top 命令查看系统情况 这个时候可以看大pid 21270 的进程 cpu占用率为100% 这里…
某一个项目CPU占用率一直很高,经常在40%-50%之间,最近比较闲,就开始了排查工作. 1.通过 jstack命令输出进程的堆栈信息 jstack 2788 >C:\log.txt 将堆栈信息输出到log.txt "dubbo-remoting-client-heartbeat-thread-1" #46 daemon prio=5 os_prio=0 tid=0x000000005c53e000 nid=0x240c waiting on condition [0x00000…
http://my.oschina.net/shipley/blog/520062 一.背景: 先执行一个java程序里面开了两个线程分别都在while循环做打印操作. ? 1 # java -cp ./test-threads.jar com.spiro.Main 二.现象: 通过top命令查看当前CPU情况 可以看到有个java进程占用CPU过高,下面来排查是什么线程的什么代码导致CPU过高. 三.步骤 先获得PID为2023,上图可以看到,或者通过jps命令获取. 执行以下命令: ? 1…
之前使用Java Swing开发了一款设备档案收集工具.支持多台设备同时收集,每个设备使用一个线程.在同时收集多台设备信息时,发现CPU占用率居然达到了97%,而且高居不下.显然这样的性能是令人无法忍受的. 我们知道,通过jdk自带的工具jvisualvm可以查看每个线程的执行情况,但就是无法分析每个线程的CPU占用情况.由于工具是运行在Windows系统上的,所以也没办法像Linux下面那样通过命令去分析线程的CPU占用.而微软的process explorer工具可以解决这一难题.通过这个强…
客户现场反馈,top的检查结果中,一个CPU的占用一直是100%.实际上现场有4个CPU,而且这个服务器是mysql专属服务器. 我的第一反应是io_thread一类的参数设置有问题,检查以后发现read和write的thread设置都是4,这和CPU数一致,因此可以断定这并不是单颗CPU占用过高的问题. 接下来需要确认MySQL究竟有没有利用到多核CPU,这个时候需要的工具叫做pidstat,命令如下: pidstat -u -t -p 18158 得到的结果如下图所示: 可以看出其实mysq…
互联网后端架构 https://mp.weixin.qq.com/s/LiqAy2DikbmZzqogb5XRdA JVM的CPU资源占用过高问题的排查 互联网后端架构  今天 上午线上某应用的一台JVM的CPU占比突然飙高到192%,并且一直下不来,导致监控一直告警,好久没处理这种问题了,现在将问题排查步骤总结记录一下.(以下的图都不是线上问题的截图,涉及到公司业务) 1.通过top命令查看当前机器的CPU使用情况 此时发现如果是Java的进程占用过高,并且一直下不来,则排查是什么线程导致占比…
原文:https://www.iteye.com/blog/tyrion-2293369 上午线上某应用的一台JVM的CPU占比突然飙高到192%,并且一直下不来,导致监控一直告警,好久没处理这种问题了,现在将问题排查步骤总结记录一下. 1.通过top命令查看当前机器的CPU使用情况 此时发现如果是Java的进程占用过高,并且一直下不来,则排查是什么线程导致占比过高.以图中进程举例,假如发现PID为31357的Java进程占CPU比一直很高,则记录下它的PID 2.查看Java进程里面的线程的占…