首页 > 编程语言 >Java程序【生产问题】排查

Java程序【生产问题】排查

时间:2023-10-11 15:44:07浏览次数:39  
标签:Java 查看 jstack 程序 排查 线程 进程 ID

1.查看线程数:

方法一:查看/proc/[进程ID]/       
grep Threads /proc/[进程ID]/status
方法二:
ps -L -o pid,tid,comm,state -p [进程ID]

2.jstack分析Java堆栈

jstack -l [进程ID]

3.查看IO

eg:如果有 too many open files 的报错,则说明程序打开的文件过多
1.查看该进程打开的文件
lsof -p [进程ID] 2.查看文件被哪个进程打开 lsof 文件名
3.查看Linux的句柄数
ulimit -a
中有个open files 默认为65535

4.查看CPU 

1.top,默认按照CPU排序,找到占用最高CPU的进程ID
2.查看该进程的所有线程相关信息,找到占用最大的线程。
    top -Hp [进程ID]
3.将线程ID转化为16进制
  printf "%x\n" [线程ID]
4.在jstack导出该进程的结果中找到该线程。

5.查看内存 

1.操作系统占用的内存
free -h
2.top,M 按照内存排序

6.查看磁盘空间 

1.查看系统磁盘大小以及挂载磁盘大小
df -h
2.查看某个文件夹大小
du -h 文件夹

 

 

 

 

 

 

 

 

 

 

 

 

 

 

标签:Java,查看,jstack,程序,排查,线程,进程,ID
From: https://www.cnblogs.com/langgj/p/17757067.html

相关文章

  • 封装利用libwebsockets写出的客户端、服务端程序为客户端服务端类
    1.封装我们后续将使用c++来开发程序,因此有必要将用c写成的wss客户端、服务端程序作进一步封装,使其成为wss客户端类和服务端类,这样更便于调用。封装后的程序结构: ubuntu@ubuntu-virtual-machine:~/work/test_libwebsockets/lws_class$tree .├──client│  ├──cl......
  • JavaScript :全局对象
    全局对象是一个常规的JavaScript对象,具有非常重要的用途:该对象的属性是全局定义的标识符,可供JavaScript解释器启动(或每当Web浏览器加载新页面时)使用,它会创建一个新的全局对象对象并为其提供一组初始属性,这些属性定义:全局常量,例如undefined、infinity和NaN。全局函数,如isN......
  • JavaScript之正则表达式
    正则表达式(RegExp)正则表达式不是JS独有的内容,大部分语言都支持正则表达式JS中正则表达式使用得不是那么多,我们可以尽量避免使用正则表达式在JS中,正则表达式就是RegExp对象,RegExp对象用于将文本与一个模式匹配正则表达式(regularexpressions,规则表达式)正则表达式用来定......
  • 又一个难题:Java 序列化和反序列化为什么要实现 Serializable 接口?
    作者:椰子Tyshawn来源:https://blog.csdn.net/litianxiang_kaola最近公司的在做服务化,需要把所有model包里的类都实现Serializable接口,同时还要显示指定serialVersionUID的值.听到这个需求,我脑海里就突然出现了好几个问题,比如说:序列化和反序列化是什么?实现序列化和......
  • Java设计模式之桥接模式
    1.1.概述现在有一个需求,需要创建不同的图形,并且每个图形都有可能会有不同的颜色。我们可以利用继承的方式来设计类的关系:我们可以发现有很多的类,假如我们再增加一个形状或再增加一种颜色,就需要创建更多的类。试想,在一个有多种可能会变化的维度的系统中,用继承方式会造成类爆......
  • 日期格式转换异常:Java 8 date/time type `java.time.LocalDateTime` not supported by
    异常信息:"unexpectederror:Typedefinitionerror:[simpletype,classjava.time.LocalDateTime];nestedexceptioniscom.fasterxml.jackson.databind.exc.InvalidDefinitionException:Java8date/timetype`java.time.LocalDateTime`notsupportedbydefault:......
  • 查询数据库慢排查、获取当前数据库连接数,sql执行很快但是日志记录接口确很慢
    获取当前数据库连接数@ResourceprivateDruidDataSourcedruidDataSource;intactiveCount=druidDataSource.getActiveCount();intactivePeak=druidDataSource.getActivePeak();LOG.info("当前连接数:{},最高峰值连接数:{}",activeCount,activePe......
  • java RestTemplate集成HttpClient池化及异常重试
    解决存在网络隔离,首次连接请求被拒绝情况SocketException首次请求超时情况SocketTimeoutException无返回数据清空NoHttpResponseException进行重试importorg.apache.http.HttpEntityEnclosingRequest;importorg.apache.http.NoHttpResponseException;importorg.apache.htt......
  • 实现一个自动生成小学四则运算题目的命令行程序
    作业所属课程https://edu.cnblogs.com/campus/gdgy/CSGrade21-12/homework/13016作业要求https://edu.cnblogs.com/campus/gdgy/CSGrade21-12/homework/13016作业目标实现一个自动生成小学四则运算题目的命令行程序结对项目艾山·依力哈木+3120005145一......
  • springboot启动后异步启动一个程序
    如果你想在SpringBoot启动后异步方式启动一个方法,你可以使用SpringFramework的异步支持和 @Async 注解来实现。以下是如何在SpringBoot应用程序中异步方式启动一个方法的步骤:配置异步支持: 首先,在应用程序的主类上添加 @EnableAsync 注解,以启用异步支持importor......