返回顶部
首页 > 资讯 > 精选 >Java进程转移前会发生什么
  • 480
分享到

Java进程转移前会发生什么

2023-06-16 19:06:12 480人浏览 泡泡鱼
摘要

本篇内容主要讲解“Java进程转移前会发生什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java进程转移前会发生什么”吧!1、系统当前网络连接ss -antp >&

本篇内容主要讲解“Java进程转移前会发生什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java进程转移前会发生什么”吧!

1、系统当前网络连接

ss -antp > $DUMP_DIR/ss.dump 2>&1

本命令将系统的所有网络连接输出到ss.dump文件中。使用ss命令而不是netstat的原因,是因为netstat在网络连接非常多的情况下,执行非常缓慢。

后续的处理,通过查看各种网络连接状态的梳理,来排查TIME_WaiT或者CLOSE_WAIT,或者其他连接过高的问题,非常有用。

2、网络状态统计

netstat -s > $DUMP_DIR/netstat-s.dump 2>&1

将网络统计状态,输出到netstat-s.dump文件中。它能够按照各个协议进行统计输出,对把握当时整个网络状态,有非常大的作用。

sar -n DEV 1 2 > $DUMP_DIR/sar-traffic.dump 2>&1

上面这个命令,会使用sar输出当前的网络流量。在一些速度非常高的模块上,比如rediskafka,就经常发生跑满网卡的情况。

3、进程资源

lsof -p $PID > $DUMP_DIR/lsof-$PID.dump

这是个非常强大的命令。可以查看进程打开了哪些文件,这是一个神器,可以以进程的维度查看整个资源的使用情况。这个命令在资源非常多的情况下,输出稍慢,耐心等待。

4、CPU资源

mpstat > $DUMP_DIR/mpstat.dump 2>&1 vmstat 1 3 > $DUMP_DIR/vmstat.dump 2>&1 sar -p ALL > $DUMP_DIR/sar-cpu.dump 2>&1 uptime > $DUMP_DIR/uptime.dump 2>&1

这几个命令,我们在

linux之《荒岛余生》(二)CPU篇》

这篇文章,已经有了比较详细的介绍。主要输出当前系统的CPU和负载,便于事后排查。

这几个命令的功能,有不少重合,使用者要注意甄别。

5、I/O资源

iOStat -x > $DUMP_DIR/iostat.dump 2>&1

一般,以计算为主的服务节点,I/O资源会比较正常。但有时候也是会发生问题的,比如日志输出过多,或者磁盘问题等。此命令可以输出每块磁盘的基本性能信息,用来排查I/O问题。

6、内存问题

free -h > $DUMP_DIR/free.dump 2>&1

内存问题较为复杂,有兴趣可以看下xjjdog堆外内存排查小结这篇文章。一般发生的问题是JVM内存溢出,我们在进程小节说明。

free命令能够大体展现操作系统的内存概况,是故障排查中一个非常重要的点。

7、其他全局

 ps -ef > $DUMP_DIR/ps.dump 2>&1 dmesg > $DUMP_DIR/dmesg.dump 2>&1 sysctl -a > $DUMP_DIR/sysctl.dump 2>&1

在xjjdog的其他文章,我们不止一次说到dmesg。dmesg是许多静悄悄死掉的服务留下的最后一点线索。

当然,ps作为执行频率最高的一个命令,它当时的输出信息,也必然有一些可以参考的价值。

由于内核的配置参数,会对系统产生非常大的影响。所以我们也输出了一份。

进程快照,最后的遗言

1、jinfo

${jdk_BIN}jinfo $PID > $DUMP_DIR/jinfo.dump 2>&1

此命令将输出java的基本进程信息。包括环境变量和参数配置。

2、gc信息

${JDK_BIN}jstat -GCutil $PID > $DUMP_DIR/jstat-gcutil.dump 2>&1 ${JDK_BIN}jstat -gccapacity $PID > $DUMP_DIR/jstat-gccapacity.dump 2>&1

jstat将输出当前的gc信息。一般,能大体看出一个端倪,如果不能,将借助jmap进行分析。

3、堆信息

${JDK_BIN}jmap $PID > $DUMP_DIR/jmap.dump 2>&1 ${JDK_BIN}jmap -heap $PID > $DUMP_DIR/jmap-heap.dump 2>&1 ${JDK_BIN}jmap -histo $PID > $DUMP_DIR/jmap-histo.dump 2>&1 ${JDK_BIN}jmap -dump:fORMat=b,file=$DUMP_DIR/heap.bin $PID > /dev/null 2>&1

jmap将会得到当前java进程的dump信息。如上所示,其实最有用的就是第4个命令,但是前面三个能够让你初步对系统概况进行大体判断。

因为,第4个命令产生的文件,一般都非常的大。而且,需要下载下来,导入MAT这样的工具进行深入分析,才能获取结果。

4、执行栈

${JDK_BIN}jstack $PID > $DUMP_DIR/jstack.dump 2>&1

jstack将会获取当时的执行栈。一般都会多次取值,我们这里取一次即可。这些信息非常有用,能够还原你的java进程中线程情况。

top -Hp $PID -b -n 1 -c > $DUMP_DIR/top-$PID.dump 2>&1

为了能够得到更加精细的信息,我们使用top命令,来获取进程中所有线程的cpu信息。这样,就可以看到资源到底是耗费在什么地方。

5、高级替补

kill -3 $PID

有时候,jstack并不能够运行。有很多原因,比如java进程几乎不响应了。我们会尝试向进程发送kill  -3信号。这个信号是java进程享有的,将会打印jstack的trace信息到日志文件中。是jstack的一个替补方案。

gcore -o $DUMP_DIR/core $PID

对于jmap无法执行的问题,也有替补,那就是GDB组件中的gcore。将会生成一个core文件。我们可以使用如下的命令去生成dump

${JDK_BIN}jhsdb jmap --exe ${JDK}java --core $DUMP_DIR/core --binaryheap

瞬时态和历史态

xjjdog这里创建两个名词。瞬时态是指当时发生的,快照类型的元素;历史态是指按照频率抓取的,有固定监控项的资源变动图。

上面有很多信息,比如CPU,比如系统内存等,瞬时态的价值就不如历史态来的直观一些,因为它还存在一个基线问题。所以如果有监控系统一类的工具,将美好的多。

但对于lsof,heap等,这种没有时间序列概念的混杂信息,无法进入监控系统,产生有用价值,就只能够通过瞬时态进行分析。这种情况下,瞬时态的价值反而更大一些。

到此,相信大家对“Java进程转移前会发生什么”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: Java进程转移前会发生什么

本文链接: https://lsjlt.com/news/284857.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Java进程转移前会发生什么
    本篇内容主要讲解“Java进程转移前会发生什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java进程转移前会发生什么”吧!1、系统当前网络连接ss -antp >&...
    99+
    2023-06-16
  • 为什么前端固定定位会发生移动问题?
    前端固定定位为什么会出现移动现象? 在进行前端开发时,我们经常会使用CSS中的position属性来控制元素的定位。其中,固定定位(position: fixed)是一种常用的定位方式,它可以让元素相对于浏览器窗口进行定位,保持...
    99+
    2024-02-02
    前端 定位 移动现象 overflow 清除浮动 position属性 固定定位
  • JavaScript什么时候会发生自动转换
    这篇文章主要介绍了JavaScript什么时候会发生自动转换,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。JavaScript可以自由的进行数据类型转换,也提供了多种显式转换...
    99+
    2023-06-29
  • 当你在Linux上启动一个进程时会发生什么
    当你在Linux上启动一个进程时会发生什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。我们要做的是启动一个进程。我们已经在博客上讨论了很多关于系统调用的问题,每当你启动一...
    99+
    2023-06-16
  • 服务器硬盘发生故障前会有什么表现
    文件读写速度变慢:当硬盘开始出现问题时,可能会导致文件的读写速度变得非常缓慢,这是由于硬盘出现坏道或其他问题导致数据的读写变得困...
    99+
    2024-04-30
    服务器
  • java死锁为什么会产生
    Java死锁是由于多个线程同时持有一些资源,并且每个线程都在等待其他线程释放它们所持有的资源,导致所有线程都无法继续执行的情况。产生...
    99+
    2023-08-08
    java
  • 教育行业结合小程序会发生什么
    本篇内容介绍了“教育行业结合小程序会发生什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!传统教育行业的改变:1.不在场景限制我们都很清楚,...
    99+
    2023-06-27
  • PostgreSQL索引失效会发生什么
    前段时间碰到个奇怪的索引失效的问题,实际情况类似下面这样: bill=# begin; BEGIN bill=*# create index idx_t1 on t1(id); CREATE INDEX bill=*# ...
    99+
    2024-04-02
  • Redis高延迟时会发生什么
    这篇文章将为大家详细讲解有关Redis高延迟时会发生什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Redis 是一种内存数据库,将数据保存在内存中,读写...
    99+
    2024-04-02
  • Golang和Lua相遇会发生什么
    这篇文章主要讲解了“Golang和Lua相遇会发生什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Golang和Lua相遇会发生什么”吧!在 GitHub 玩耍时,偶然发现了 gopher...
    99+
    2023-06-25
  • 移动前端开发和web前端开发的区别是什么
    这篇文章主要讲解了“移动前端开发和web前端开发的区别是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“移动前端开发和web前端开发的区别是什么”吧!移动...
    99+
    2024-04-02
  • 输入URL后页面会发生什么
    这篇文章主要介绍“输入URL后页面会发生什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“输入URL后页面会发生什么”文章能帮助大家解决问题。构建 DOM 树由于浏览器无法直接理解 HTML字符串 ...
    99+
    2023-06-27
  • 为什么小程序当前页面不可转发
    小程序当前页面不可转发的原因:可能是你删除了默认的onShareAppMessage实现方法,这个方法在代码生成的时候就存在了,只要加上即可,例: “onShareAppMessage: function () { }”。...
    99+
    2024-04-02
  • 输入网址按回车会发生什么
    这篇文章主要介绍“输入网址按回车会发生什么”,在日常操作中,相信很多人在输入网址按回车会发生什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”输入网址按回车会发生什么”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-16
  • php die函数不传参会发生什么
    今天小编给大家分享一下php die函数不传参会发生什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。php die函数不传...
    99+
    2023-06-30
  • 如果 MySQL 会话结束,MySQL 临时表会发生什么?
    如果 MySQL 会话终止,临时表将被删除。再次登录后,在发出 SELECT 命令时,我们将发现数据库中没有可用数据。甚至我们的临时表也不存在。...
    99+
    2023-10-22
  • 如果在当前事务的中间执行 START TRANSACTION 命令,当前 MySQL 事务会发生什么?
    如果在当前事务中间执行 START TRANSACTION,则当前事务将被提交并结束。当前事务中所做的所有数据库更改都将永久生效。这称为 START TRANSACTION 命令的隐式提交。示例假设我们在表“marks”中有以下值mysql...
    99+
    2023-10-22
  • 服务器托管为什么会发生故障
    服务器托管发生故障的原因有:1、由于客户远程操作失误而导致服务器托管发生故障;2、在服务器上运行多种应用服务,导致某种服务无法启动或死机,从而导致服务器托管发生故障;3、服务器硬件出现问题,包括主板、内存、硬盘等方面;4、服务器访问量过大,...
    99+
    2024-04-02
  • Java中的HashMap为什么会产生死循环
    目录前置知识死循环执行步骤1死循环执行步骤2死循环执行步骤3解决方案总结前言: HashMap 死循环是一个比较常见、比较经典的问题,在日常的面试中出现的频率比较高,所以接下来咱们通...
    99+
    2024-04-02
  • 并行Stream与Spring事务相遇会发生什么?
    目录事务不生效的代码JDK 8 的Stream@Transactional事务处理Bug综合分析问题拓展小结前言: 事情是这样的:运营人员反馈,通过Excel导入数据时,有一部分成功...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作