Java web 系统变慢分析

举报
lu_zhishen 发表于 2021/06/22 12:23:51 2021/06/22
【摘要】 java web系统变慢分析

1.排查是否是客户网络问题,如果多用户多地反馈,应该是服务器端问题。

2.系统是否多模块都变慢,可查看数据库是否有锁等待。访问一个单表的模块进行排除,db2数据库的话可以使用 db2top -d dbname 进行查看。使用数据库客户端工具验证数据库。还需要从应用主机ping数据库主机,查看是否有超时。

3.服务器性能监控,以linux为例,使用top命令,查看系统负载是否过高,swap是否在持续增加。

4.如果负载高查看最耗费cpu的进程,top界面输入:大P回车,按照内存排序:大M

5.查看磁盘IO,磁盘是否满了 ,df -h。

iostat -d -x -k 1 1 如果%util接近100%,说明产生的I/O请求太多,I/O系统已经满负荷,%idel CPU 空闲时间百分比,小于70%,说明io高。

6.使用java 命令,查看某个进程的哪些线程使用的cpu 较高。

top -H -p <pid> 此top命令 ,输入F后 可设定排序的列。

printf '%x\n' <pid> 把pid 转换成16进制的nid

jstack <pid> | grep '<nid>' -C5 -color 查找该线程的堆栈信息

jstack <pid> > jstack.log 把整个jstack 日志重定向到log 文件中。

cat jstack.log | grep "java.lang.Thread.State" | sort -nr | uniq -c 统计WAITING TIMED_WAITING BLOCKED 的个数. 如果waiting 类特别多,多半是有问题的。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。