在开发环境下遇到访问服务器一直在loading得不到响应时应该如何排查
首先在确定代码都没问题的前提下,
在浏览器访问服务器的时候F12查看network状态一直在pending
一般这种时候就可能有排查系统四个地方是否有问题
1.网络,2.内存,3 cpu, 4 磁盘
一般windows查看这个四个可以直接在任务管理器里面查看了
linux系统的话就要使用命令查看了
首先查看cpu使用情况
直接 top 然后回车
然后同时按下 shift + m键可以从小到大排序
可以看到红色区域 分别是全部、已用、可用
如果可用为0的话肯定是系统问题
然后再查看是什么进程占用了cpu资源 白线下面最后一列有列出每个进程分别占用的大小
然后 netstat -anop 查看网络连接状态
也可以用
netstat -an | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
查看当前监听的、连接的、等待的个数
如果出现上千上万的连接信息肯定是某个程序在不停的调用当前系统
listen表示监听 time_wait 表示等待,establesheb可用
出现大量的time_wait 可能是程序没有清除干净
然后
使用命令:vi /etc/sysctl.conf
编辑文件,加入以下内容:
net.ipv4.tcp_syncookies = 1 (某些情况下该参数已启用)
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
然后执行/sbin/sysctl -p让参数生效。