在LIUNX服务器上找出web项目中占用cpu资源最多的线程的排查方法

在这里对linux下、sun(oracle) JDK的线程资源占用问题的查找步骤做一个小结;linux环境下,当发现java进程占用CPU资源很高,且又要想更进一步查出哪一个java线程占用了CPU资源时,按照以下步骤进行查找:

第一步:登陆到web服务所在的liunx服务器,利用top命令获取java的cpu使用率

第二步:

如上图所示,java的进程id为'3260',接下来用top命令单独对这个进程中的所有线程作监视:top -p 3260 -H

第三步:

如上图所示,linux下,所有的java内部线程,其实都对应了一个进程id,也就是说,linux上的sun jvm将java程序中的线程映射为了操作系统进程;我们看到,占用CPU资源最高的那个进程id是'3740',这个进程id对应java线程信息中 的'nid'('n' stands for 'native');

第四步:

要想找到到底是哪段具体的代码占用了如此多的资源,先使用jstack打出当前栈信息到一个文件里, 比如mystack.log:jstack 3260 > mystack.log

第五步:

将3740转换成十六进制的数字为e9c,在mystack.log文件中找出nid=oxe9c的线程,然后在该线程中排查代码问题

时间: 2024-09-20 00:19:29

在LIUNX服务器上找出web项目中占用cpu资源最多的线程的排查方法的相关文章

Java Web项目中使用Socket通信多线程、长连接的方法_java

很多时候在javaweb项目中我们需要用到Socket通信来实现功能,在web中使用Socket我们需要建立一个监听程序,在程序启动时,启动socket监听.我们的应用场景是在java项目中,需要外接如一个硬件设备,通过tcp通信,获取设备传上来的数据,并对数据做回应. 先看一下web的监听代码: import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; public class

如何在Linux上找出并删除重复的文件:FSlint

如何在Linux上找出并删除重复的文件:FSlint 大家好,今天我们会学习如何在Linux PC或者服务器上找出和删除重复文件.这里有一款工具你可以工具自己的需要使用. 无论你是否正在使用Linux桌面或者服务器,有一些很好的工具能够帮你扫描系统中的重复文件并删除它们来释放空间.图形界面和命令行界面的都有.重复文件是磁盘空间不必要的浪费.毕竟,如果你的确需要在不同的位置享有同一个文件,你可以使用软链接或者硬链接,这样就可以在磁盘的一个地方存储数据了. FSlint FSlint 在不同的Lin

javaweb-在linux服务器上重新发布java项目运行的代码不是最新的

问题描述 在linux服务器上重新发布java项目运行的代码不是最新的 我在方法中加了print打印,重新编译后在本机运行可以打印出来内容,但是把class文件重新部署到服务器上就不行了,tomcat也重启了,服务器也reboot了,项目也重新部署了几次,但是执行的代码不是最新的,控制台也没输出打印的内容 解决方案 服务器不要有print输出语句,你想看结果就用日志,服务器不推荐用print

服务器-从图片上找出指向地址下载加密文件找潜在密钥

问题描述 从图片上找出指向地址下载加密文件找潜在密钥 分析一个文件服务器上的数据,但所有数据都是加密的,密钥无从获知.服务器上唯一没有被加密的文件是一张jpg图片,这是获取密钥的唯一途径.现在只知道记录密钥的方法是"KEY="这个前缀,等号后面即是这个密钥,要从图片中找出指向地址并从指向地址上下载的加密文件中找出潜藏的密钥.(整个文件只有一个KEY=开头的字符串,因此不会造成混淆:只要这一个办法,破解加密文件意义不大) 图片地址:http://range.jsxajs.cn:8080/

IIS报在服务器上找不到脚本语言'VBScript.encode'错误怎么办

  这篇文章主要介绍了IIS报在服务器上找不到脚本语言'VBScript.encode'错误解决方法,其实这是一种服务器安全设置,一般虚拟主机都会禁用,需要的朋友可以参考下VBScript.Encode 这个组件经常被用来加密一些ASP的木马后门以达到免杀效果,还有一些程序的作者也会在ASP中使用加密以达到保护版权的目的. 偶然间发现,有套程序传到服务器上,程序报错了: 代码如下:Active Server Pages 错误 'ASP 0129' 在服务器上找不到脚本语言 'VBScript.e

IIS报在服务器上找不到脚本语言'VBScript.encode'错误解决方法_win服务器

VBScript.Encode 这个组件经常被用来加密一些ASP的木马后门以达到免杀效果,还有一些程序的作者也会在ASP中使用加密以达到保护版权的目的. 偶然间发现,有套程序传到服务器上,程序报错了: 复制代码 代码如下: Active Server Pages 错误 'ASP 0129' 在服务器上找不到脚本语言 'VBScript.encode' /config.asp,行 5 按道理程序在本地调试过的,没有问题,于是找到了网站根目录下的config文件,看向第5行,居然是一些乱码!噢,原来

编程-在weblogic上部署JAVA WEB项目,为什么关闭之后最小的连接数不会自动关闭

问题描述 在weblogic上部署JAVA WEB项目,为什么关闭之后最小的连接数不会自动关闭 在项目中设置的最小连接数是2 初始连接数是5,当我开启这个项目的时候发现连接池中的连接数加了5个,因为我设置了maxIdleTime属性,过了一会有3个连接数因为空闲会被关闭,但是那2个最小的连接数一直不会关闭,就算在服务器上把这个应用停止了也不会关闭,这要怎么处理呢? 项目是spring+strtuts2+hibernate 连接池用的是c3p0 解决方案 出于性能的考虑,底层连接池会保持连接,这是

如何在Ubuntu上找出可用的网络适配器

如何在Ubuntu上找出可用的网络适配器 想知道在Linux中你正在使用的网卡是什么吗? 在Linux中很容易就找出网卡的生产商.打开一个终端并输入下面的额命令: sudo lshw -C network 如果上面的命令不能在sudo下使用,那就别用 sudo 的特权模式.它的输出看上去有点奇怪但是很有用. *-network description: Wireless interface product: BCM4360 802.11ac Wireless Network Adapter ve

java web项目中应用的服务器推送技术都有哪些?有没有性能问题

问题描述 java web项目中应用的服务器推送技术都有哪些?有没有性能问题 java web项目中应用的服务器推送技术都有哪些?有没有性能问题 解决方案 Web实时推送,选择GoEasy推送服务, 代码简单易懂,几分钟就可以自己写好一个在线聊天demo. 中英文文档齐全.官网:https://goeasy.io 解决方案二: 目前,websocket是个很好的方向. 解决方案三: websocket. http://blog.csdn.net/jiangcs520/article/detail