在開發環境下遇到訪問服務器一直在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讓參數生效。