分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

粗糙记录网站加载过慢的一次排查经历

发布时间:2023-09-06 01:57责任编辑:蔡小小关键词:暂无标签

2018/05/29
今天上班,程序员和我说测试环境的站点打开很慢,让我排查一下。作为菜鸟,还是首次遇到这样的问题,于是使用top查看系统资源,以CPU和内存分别排序查看,情况如下图:

从负载上看load average: 0.51, 0.98, 1.12并无异常,这里说明一下服务器使用的是阿里云ECS,2vCPU4G。且看%CPU比例,用户态和系统态的CPU使用率并不高,可以暂且排除病毒侵入的情况。在使用netstat -tnl查看是否存在异常开启的端口。

[www@izuf64awewxccxye80z ~]$ netstat -tnlActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address ??????????Foreign Address ????????State ?????tcp ???????0 ?????0 0.0.0.0:111 ????????????0.0.0.0:* ??????????????LISTEN ????tcp ???????0 ?????0 0.0.0.0:80 ?????????????0.0.0.0:* ??????????????LISTEN ????tcp ???????0 ?????0 0.0.0.0:8081 ???????????0.0.0.0:* ??????????????LISTEN ????tcp ???????0 ?????0 0.0.0.0:22 ?????????????0.0.0.0:* ??????????????LISTEN ????tcp ???????0 ?????0 0.0.0.0:888 ????????????0.0.0.0:* ??????????????LISTEN ????tcp ???????0 ?????0 127.0.0.1:32000 ????????0.0.0.0:* ??????????????LISTEN ????tcp ???????0 ?????0 0.0.0.0:42914 ??????????0.0.0.0:* ??????????????LISTEN ????tcp ???????0 ?????0 127.0.0.1:9000 ?????????0.0.0.0:* ??????????????LISTEN ????tcp6 ??????0 ?????0 :::46710 ???????????????:::* ???????????????????LISTEN ????

从端口上看并未开启异常端口,于是查看阿里云监控数据,如下:



从以上3张监控图发现CPU使用率在某一时刻急剧上升,磁盘读写量增加,网络流量增加,TCP连接数增加。由于测试环境的域名是不对外使用的,只有公司内部技术人员使用,于是查看是否存在TIME_WAIT状态过多,导致TCP连接过慢。

[www@izuf64awewxccxye80z ~]$ netstat -an |grep TIME_WAIT......tcp ???????0 ?????0 192.168.100.171:36234 ??192.168.100.172:3306 ???TIME_WAIT ?tcp ???????0 ?????0 192.168.100.171:48108 ??192.168.100.170:6379 ???TIME_WAIT ?tcp ???????0 ?????0 192.168.100.171:48016 ??192.168.100.170:6379 ???TIME_WAIT ?tcp ???????0 ?????0 192.168.100.171:47966 ??192.168.100.170:6379 ???TIME_WAIT ?tcp ???????0 ?????0 127.0.0.1:53384 ????????127.0.0.1:8081 ?????????TIME_WAIT ?tcp ???????0 ?????0 192.168.100.171:48082 ??192.168.100.170:6379 ???TIME_WAIT ?tcp ???????0 ?????0 192.168.100.171:47930 ??192.168.100.170:6379 ???TIME_WAIT ?tcp ???????0 ?????0 127.0.0.1:53566 ????????127.0.0.1:8081 ?????????TIME_WAIT ?......

从命令行查看,6379端口的TIME_WAIT数量较多,于是登陆阿里云Redis查看性能数据,发现在某些时段的QPS很高,高于生产环境的QPS,于是初步判断问题出在Redis上。如图:

再次进行统计6379端口的TIME_WAIT数量,发现居然有3万多个......难怪网站打开慢了!!!最终解决:清空redis数据后,再重新加载网站正常。
注意:这里使用的Redis只作为程序的缓存使用!!!网站访问会优先从redis读取数据!

[www@izuf64awewxccxye80z ~]$ netstat -an |grep TIME_WAIT|grep 6379|wc -l31526

至于TIME_WAIT优化可以参考一下链接:
http://blog.51cto.com/leven/382097

粗糙记录网站加载过慢的一次排查经历

原文地址:http://blog.51cto.com/jinlong/2121896

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved