几种常见的操作tomcat的linux命令

重启tomcat

ps x 查看pid

kill -9 pid 杀死进程

/app/tomcat/bin/startup.sh 启动tomcat

追踪日志

tail -f /app/tomcat/log/*.log

配置文件

vi /app/tomcat/webapp/root/WEB-INF/server.properties 查看服务器配置

vi /app/tomcat/webapp/root/WEB-INF/web.xml 查看后端文件位置

vi /app/tomcat/webapp/root/WEB-INF/common-applicationcontext.xml 查看数据库

查看内存溢出

top 查看系统性能

jmap -heap pid 打印heap的概要信息

jmap -histo pid 打印每个class的实例数目,内存占用,类全名信息

jmap -dump:format=b,file=heap.bin pid 输出heap信息到heap.bin文件

jhat -J-mx768m heap.bin 分析heap.bin文件

最好使用eclipse的MAT查看heap.bin,相比jhat等更加直观,容易发现内存溢出

查看死锁

jstack -l pid > deadlock.jstack 输出stack信息到deadlock.jstack

vi deadlock.jstack 使用vi查看

数据库导出

/usr/local/mysql/bin/mysqldump -u root -p test > test_new.sql

数据库导入

/usr/local/mysql/bin/mysql -u root -p test < test_new.sql

选择性查看日志

grep * /app/tomcat/log/*.log|cut -d '#' -f 8-9|sort -t '#' -u没有重起吧

可以shutdown

然后再startup

tomcat的bin目录下有这些脚本

通过top和jstack确定哪些线程耗尽了CPU?这些线程在做什么

1. 背景

有时,线上集群load会突然飙升,无法响应正常请求。

那么引起load飙升的线程究竟在做什么?哪些线程霸占了CPU?可以通过top和jstack命令进行定位。

2. 定位步骤

1. 使用终端1进入目标机器,执行top命令,默认是进程视图,其中PID是进程号,截图如下:

在这里,我们只能看到java进程占用CPU达到115%,那么究竟是那些线程非常耗CPU呢?

2. 由于我们要看到线程,在终端1,按下“H”键或者“shift+h”,top视图会切换到线程视图,其中PID是线程号,截图如下:

可以发现红框内的线程的CPU使用率非常高,占用CPU时间达到1秒左右,显然不正常,但是这些线程在做什么?

打开终端2,使用jstack命令输出这一时刻的线程栈,保存到文件,命名为jstack.log。注意:输出线程栈和保存top命令快照尽量同时进行。

4. 由于jstack.log文件记录的线程ID是16进制,需要将top命令展示的线程号转换为16进制,以15100为例,在linux下输入命令:printf 0x%x 15100,得到15100的十六进制为0x3afc

5. 在jstack.log中搜索0x3afc关键字,可以清晰看到该线程在做刷新地址列表,如下图:

3. 总结

以前碰到集群load飙升时,有时会束手无策,不知从何查起。以后再发生类似问题时,可以使用这个方法,看下究竟是那些线程在长时间占用CPU,尽快定位问题和解决问题。你说呢...

jstack命令详解(linux jstack命令详解)相关推荐

  1. linux中jstack命令详解,Linux jstack命令详解

    jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息. 如果是在64位机器上,需要指定选项"-J-d64",Windows的jstack ...

  2. linux上传文件put,详解Linux ftp 命令行中下载文件get与上传文件put的操作方法

    尽管现在有许多好的FTP应用程序,但服务器命令行ftp命令的应用程序仍然很多,下面就让电脑乐园小编带你一起来学习详解Linux ftp 命令行中下载文件get与上传文件put的操作方法. 介绍:从本地 ...

  3. linux 命令行 time,详解Linux time 命令的使用

    1.命令简介 time 用于统计命令执行所消耗的时间及相关系统资源等信息.time 可以显示的资源有四大项,分别是: Time resources Memory resources IO resour ...

  4. linux下的arp刷新命令详解,linux arp 命令常用参数详解

    linux arp 命令常用参数详解 linux arp 命令常用参数详解 显示和修改地址解析协议(ARP)使用的"IP 到物理"地址转换表. ARP -s inet_addr e ...

  5. linux cd 命令详解,linux cd 命令详解

    下面为大家讲解Linux最常用的基本命令linux cd命令. 说linux cd命令是linux最常用的命令一点也不为过,我们几乎时时刻刻都需要使用这个命令. 在DOS下也有cd这个命令,他与lin ...

  6. init.d,rc.d详解 Linux运行时详解

    Linux 启动时需要哪些步骤呢?本文将详细描述不同的运行级在启动中的作用. 对于那些在DOS/Win9x/NT 平台下的高级用户而言,Linux 似乎是一个怪物.没有config.sys ,没有 a ...

  7. Linux 认证考试:精解Linux find命令的使用linuxfindnam

    Linux认证考试:精解Linuxfind命令的使用 Linuxfind命令是用来查找文件时使用的命令,熟练使用这一命令可以帮助我们快速查找所需要的文件,分别可以有时间.用户组.文件权限以及附加操作参 ...

  8. Linux命令集(Linux文件管理命令--rm指令篇)

    Linux命令集(Linux文件管理命令--rm指令篇) Linux文件管理命令集(rm指令篇) 3. rm(remove) 1. 删除文件 2. 强制删除文件 3. 提示确认,删除前需逐一询问是否确 ...

  9. Linux命令集(Linux文件管理命令--rmdir指令篇)

    Linux命令集(Linux文件管理命令--rmdir指令篇) Linux文件管理命令集(rmdir指令篇) 5. rmdir(remove directory) 1. 删除空的目录 folder1 ...

  10. Linux命令集(Linux常用命令集--CD指令篇)

    Linux命令集(Linux常用命令--CD指令篇) Linux常用命令集(CD指令篇) 1.CD(change directory) Linux常用命令集(CD指令篇) 如下为笔者总结出在linux ...

最新文章

  1. bzoj1003 物流运输
  2. 网络编程学习笔记(freeaddrinfo函数)
  3. Ubuntu cocos2d-x 3.13版本游戏开发学习系列3 Cocos2d-x的坐标系
  4. Django源代码阅读分析-2:持久层结构分析
  5. 收起虚拟键盘的各种方法 -- IOS
  6. 未定义_随笔—未定义
  7. 【Codeforces549F】Yura and Developers [单调栈][二分]
  8. linux下载安装禅道
  9. 能制作引导系统型U盘的几个软件工具
  10. 纤亿通教你如何选择合适的 Cat6 网线
  11. Cmake查找所有指定cpp文件并进行编译
  12. 百融云创:互联网驶入深水区,金融科技保驾护航 | 会员专栏
  13. 全球公开的DEM数据产品
  14. 腾讯AI八篇论文入选顶级医学影像会议MICCAI ,涉及病理癌症图像分类等
  15. 2021年高教杯数学建模国赛C题的解题过程附全部代码以及参赛论文(百度网盘)
  16. Map key 和 value 的输出;
  17. netty的epoll和linux的epoll是如何实现的
  18. switch()的参数类型
  19. 20120814-虚拟串口VSPD的使用方法
  20. Vue源码系列 - 前言

热门文章

  1. sqli-labs less 24 POST -Second Oder injection *Real treat* - Stored injections
  2. IDEA 创建 Spring 的 XML 配置文件
  3. adams2021学生版安装
  4. 百度前端学院_小薇课堂_task2
  5. C++ 设计一个CStudent(学生)类,用链表实现
  6. 计算机二级vba知识点,计算机二级--VBA程序
  7. Java异步实现的N种方式
  8. 产品“三观”:解读产品经理的三个思考维度
  9. 计算机在音乐教学的应用论文开题报告,《多媒体在音乐教学中的应用探索》课题研究开题报告(实施方案)...
  10. 【H5】阻止H5页面播放视频默认全屏