如果以后出现报警各网站无法ping通,或者服务器负载过高,可通过以下几条途径查找原因:
1,查看访问日志,查看是否有访问异常,如有,过滤IP,进行IP封装
cat access.log | awk ‘{print $1}’ | sort | uniq –c | sort –n >/tmp/ip.txt netstat -ntu | awk ‘{print $5}‘ | cut -d: -f1 | sort | uniq -c | sort –n
2,查看网卡是否有严重丢包现象,ifconfig查看dropped 或error是否不断增加,判断是否网卡出现问题。
netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}‘
查看各阶段连接状况
SYN_SENT(请求连接) ESTABLISHED(通信中)状态的是否连接明显太多
netstat -n | grep "ESTABLISHED"|awk ‘{print $5}‘|sort |uniq -c|sort -nr
如发现处于本状态最多的ip是本机,从而排除是dos攻击的可能
Ifconfig
查看dropped 或error是否不断增加,判断是否网卡出现问题。
3,如果日志总是涉及某个项目,查看最近是否有新上线活动或者更新,确定是否程序代码出现问题
4,将有问题的项目分别绑定各相关前端机,查看是否访问正常,排除故障服务器
5,查看占用负载较高的一些进程是被哪些程序或应用占用
top
查看系统负载和占用资源较高的进程
Lsof –p pid号
查看pid被哪些进程使用
6,查看PHP等主要应用程序端口使用情况,是否被占用
Lsof –i:端口
7,查看PHP的慢日志,是否有程序文件超时,频繁报错
Php-fpm.conf 打开php配置文件 Request_slow_log_timeout 10s
设置执行超时时间
8,如果上述查找发现问题有关mysql,查看mysql最大连接数是否过低
show variables like ‘max_connections‘; set GLOBAL max_connections=300