千家信息网

怎么进行web应用缓慢故障分析

发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,本篇文章为大家展示了怎么进行web应用缓慢故障分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。朋友在一家购物网站做运维不久,今日打电话说前台页面打开比较慢订
千家信息网最后更新 2024年09月22日怎么进行web应用缓慢故障分析

本篇文章为大家展示了怎么进行web应用缓慢故障分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

朋友在一家购物网站做运维不久,今日打电话说前台页面打开比较慢订单无法正常投递,但是查看CPU使用率较低没什么压力,只是内存稍高86%左右,磁盘读写也很正常,咨询我怎么进行解决。我问了他一些基本的系统架构问题,知道是F5做的负载均衡分发到前端10台应用服务器上,中间件是JBOSS,后端数据库是ORACLE.整理了下思路,决定让朋友进行如下分析:

一、登陆前端应用服务器,首先查看统计ip连接数

[user@local ~]$ netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

1

1 Address

1 servers)

2 172.16.100.35

2 172.16.100.38

2 172.16.100.45

4 127.0.0.1

10 172.16.100.18

20 172.16.100.8

2048 172.16.100.98 #在服务器和负载均衡间有2048个连接

查看JBOSS应用端口8080的情况

[user@local ~]$ netstat -ntu |grep 8080

tcp 0 0 172.16.100.26:8080 172.16.100.98:19593 TIME_WAIT

tcp 0 0 172.16.100.26:8080 172.16.100.98:16777 TIME_WAIT

tcp 0 0 172.16.100.26:8080 172.16.100.98:11913 TIME_WAIT

tcp 0 0 172.16.100.26:8080 172.16.100.98:1929 TIME_WAIT

tcp 0 0 172.16.100.26:8080 172.16.100.98:53641 TIME_WAIT

tcp 0 0 172.16.100.26:8080 172.16.100.98:43401 TIME_WAIT

tcp 0 0 172.16.100.26:8080 172.16.100.98:36233 TIME_WAIT

tcp 0 0 172.16.100.26:8080 172.16.100.98:28040 TIME_WAIT

tcp 0 0 172.16.100.26:8080 172.16.100.98:5000 TIME_WAIT

...............................................................

...............................................................

...............................................................

[user@local ~]$ netstat -ntu |grep 8080|grep TIME_WAIT |wc -l

2003

通过以上内容显示,在前端应用服务器和负载均衡间产生了大量TCP等待,这正是消耗内存并把前台应用拖慢的主要原因。由负载均衡分发到应用服务器的大量请求可能由于JBOSS的处理瓶颈产生了等待,实际处理的请求远小于分发过来的请求。

二、查看JBOSS连接数设置

一般中间件jboss连接后端的oracle,在deploy下会有个文件oracle-ds.xml,我们看一下它连接数据库的代码:

jdbc/TETD

jdbc:oracle:thin:@172.16.100.18:1521:orcl

oracle.jdbc.driver.OracleDriver

TETD_QT

Hpoui&bmn$m#e$m_n20uytwe@iil

20

50

org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter

注意:的值设的是20,设的值是50

三、查看ORACLE连接数设置

SQL>select count(*) from v$process --当前的连接数

显示为45

SQL>select value from v$parameter where name = 'processes' --数据库允许的最大连接数

显示为600

(注:当数据库最大连接数不够时会出现客户端连接间歇性失败,报错ORA-12519)

通过以上数据分析,在ORACLE端显示的连接数并没有体现出应有的压力,那么瓶颈在哪?应该是JBOSS上,JBOSS的连接池参数设置的太小,导致前端的请求卡在JBOSS处而不能正常通过JBOSS连接到后端ORACLE,从而导致前台应用缓慢订单不正常。

分析完毕后,告诉朋友增大JBOSS连接池参数,把调整为200,调整为500.后来朋友调整了JBOSS连接池参数后,问题得到了显著缓解,内存使用率也降下来了。

这一事例告诉我们,一个水管中间最细处往往决定了通过的水流量,我们在优化后端ORACLE数据库的同时也别忘了优化中间件的参数。

补充1、修改ORACLE最大连接数:

#修改oracle最大连接数:

alter system set processes = 1000 scope = spfile;

重启数据库:

shutdown immediate;

startup;

补充2、修改/etc/sysctl.conf文件
net.ipv4.tcp_max_tw_buckets = 3000
表示系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息。默认为180000,改为 3000。此项参数可以控制TIME_WAIT套接字的最大数量,避免服务器被大量的TIME_WAIT套接字拖死。

上述内容就是怎么进行web应用缓慢故障分析,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

应用 数据 最大 数据库 服务器 服务 分析 参数 均衡 前端 套接字 朋友 缓慢 中间件 内存 内容 前台 调整 故障 使用率 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 清华网络安全考研试题 广联达软件开发刷人 徐汇区什么是软件开发服务保障 深圳erp软件开发机构 苏州个人软件开发 自建服务器需要办什么手续 长沙中崛网络技术公司 戴尔电脑有光盘安装服务器系统 数据库如何打开登录信息 web管理软件开发平台好吗 常用的英文数据库有哪些 java软件开发速成网课 网络安全体系的恢复 学人工智能好还是软件开发好 宜兴工程软件开发平均价格 北京火山动力网络技术上市 潍坊 软件开发企业 长丰品质网络技术开发费用 软件开发怎么运营公众号 改了数据库也需要重启项目 软件开发排期估算 永康市飞牛网络技术有限公司电话 郑培龙 工行软件开发中心 医院人员管理系统的数据库设计 网络技术入门书籍 网络安全是企业安全的基石 手机版本命令方块创造服务器 r320服务器找不到硬盘 软件开发公司属于高新企业么 纵横互联网科技有限公司
0