热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

服务器故障如何排查?

我是英俊潇洒,技术过硬的网盾运维攻城狮龟哥。今天咱们来聊聊服务器出故障了如何排查。服务器运行过程中难免会出现非人为因素的故障,遇事不要慌,沉着冷静,找出问题所在,对症下药的来解决。下面给大家分享常见的

我是英俊潇洒,技术过硬的网盾运维攻城狮龟哥。今天咱们来聊聊服务器出故障了如何排查。

服务器运行过程中难免会出现非人为因素的故障,遇事不要慌,沉着冷静,找出问题所在,对症下药的来解决。下面给大家分享常见的排查方法。

一、 咱们得搞清楚问题的前因后果

医生诊断讲究“望闻问切”然后对症下药,服务器故障也一样啊。

首先啊,搞清楚服务器故障的“发病”时间、症状表现是什么?

然后查监控平台,查日志,很多问题都是在日志系统中暴露出来的,。

二、有哪些用户访问?

1. $last

2. $w

在没有其他用户干活的时候,可以用这两个命令查看都有谁在线,谁访问过,捕捉现场嫌疑人。

三、执行过什么命令?

1.$history

根据前面看到的谁登录过,查看一下之前服务器上执行过的命令,更新HISTTIMEFORMAT环境变量来显示这些命令被执行的时间,不过不该看的咱还是不要看哦,侵犯别人隐私知道的太多容易被灭口~~

四、查看正在运行的进程

1.$pstree-a

2.$psaux

这都是查看现有进程的。psaux的结果比较杂乱,pstree-a的结果比较简单明了,可以看到正在运行的进程及相关用户。

五、监听的网络服务

1.$netstat-ntlp

2.$netstat-nulp

3.$netstat-nxlp

找到所有正在运行的服务,检查它们是否应该运行。查看各个监听端口。在netstat显示的服务列表中的PID和psaux进程列表中的是一样的。

如果服务器上有好几个Java或者Erlang什么的进程在同时运行,能够按PID分别找到每个进程就很重要了。

六、CPU和内存

1.$free-m

2.$uptime

3.$top

4.$htop

还有剩余的内存和CPU吗?服务器是否正在内存和硬盘之间进行swap?

是否有某些CPU核负载过多了?

服务器最大的负载来自什么地方?平均负载是多少?

七、硬件

1.$lspci

2.$dmidecode

3.$ethtool

网卡是否设置好?是否正运行在半双工状态?速度是10MBps?有没有TX/RX报错?

找到RAID卡、CPU、空余的内存插槽。根据这些情况可以大致了解硬件问题的来源和性能改进的办法。

八、IO性能

1.$iostat-kx2

2.$vmstat210

3.$mpstat210

4.$dstat--top-io--top-bio

这些命令对于调试后端性能非常有用。

检查磁盘使用量:服务器硬盘是否已满?

是否开启了swap交换模式(si/so)?

确认CPU被谁占用,dstat可以看到谁在进行IO:看看是不是MySQL或者PHP进程占用了所有的系统资源?

九、挂载点和文件系统

1.$mount

2.$cat/etc/fstab

3.$vgs

4.$pvs

5.$lvs

6.$df-h

7.$lsof+D//*bewarenottokillyourbox*/

确认一共挂载了多少文件系统。

有没有某个服务专用的文件系统?(比如MySQL?)

文件系统的挂载选项是什么:noatime?default?有没有文件系统被重新挂载为只读模式了?

磁盘空间是否有剩余?大文件被删除后有没有清空?

十、内核、中断和网络

1.$sysctl-a|grep...

2.$cat/proc/interrupts

3.$cat/proc/net/ip_conntrack/*maytakesometimeonbusyservers*/

4.$netstat

5.$ss-s

你的中断请求是否是均衡地分配给CPU处理,还是会有某个CPU的核因为大量的网络中断请求或者RAID请求而过载了?

SWAP交换的设置是什么?对于工作站来说swappinness设为60就很好,不过对于服务器就太糟了:你最好永远不要让服务器做SWAP交换,不然对磁盘的读写会锁死SWAP进程。

conntrack_max是否设的足够大,能应付你服务器的流量?

在不同状态下(TIME_WAIT,…)TCP连接时间的设置是怎样的?

如果要显示所有存在的连接,netstat会比较慢,你可以先用ss看一下总体情况。

你还可以看一下LinuxTCPtuning了解网络性能调优的一些要点。

十一、系统日志和内核消息

1.$dmesg

2.$less/var/log/messages

3.$less/var/log/secure

4.$less/var/log/auth

查看错误和警告消息,比如看看是不是很多关于连接数过多导致?

看看是否有硬件错误或文件系统错误?

分析是否能将这些错误事件和前面发现的疑点进行时间上的比对。如果你有多台机器,看起来很不方便,可以事先把日志存储在系统笔记的云日志服务器上,支持全文模糊查找,

十二、定时任务

1.$ls/etc/cron*+cat

2.$foruserin$(cat/etc/passwd|cut-f1-d:);docrontab-l-u$user;done

查看是不是用户提交了隐藏的定时任务或者运行某个定时任务过于频繁等?

根据以上找出了问题所在,对应维护相应板块就可以了。此处证明了找一个24*7小时的运营商租用服务器多么重要,毕竟服务器故障解决的越迅速,避免风险的系数就越高。还有什么不清楚的,欢迎各位联系龟哥探讨。


推荐阅读
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • mysql-cluster集群sql节点高可用keepalived的故障处理过程
    本文描述了mysql-cluster集群sql节点高可用keepalived的故障处理过程,包括故障发生时间、故障描述、故障分析等内容。根据keepalived的日志分析,发现bogus VRRP packet received on eth0 !!!等错误信息,进而导致vip地址失效,使得mysql-cluster的api无法访问。针对这个问题,本文提供了相应的解决方案。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • RouterOS 5.16软路由安装图解教程
    本文介绍了如何安装RouterOS 5.16软路由系统,包括系统要求、安装步骤和登录方式。同时提供了详细的图解教程,方便读者进行操作。 ... [详细]
  • 在Oracle11g以前版本中的的DataGuard物理备用数据库,可以以只读的方式打开数据库,但此时MediaRecovery利用日志进行数据同步的过 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了C++中省略号类型和参数个数不确定函数参数的使用方法,并提供了一个范例。通过宏定义的方式,可以方便地处理不定参数的情况。文章中给出了具体的代码实现,并对代码进行了解释和说明。这对于需要处理不定参数的情况的程序员来说,是一个很有用的参考资料。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 本文介绍了sqlserver云存储和本地存储的区别,云存储是将数据存储在网络上,方便查看和调用;本地存储是将数据存储在电脑磁盘上,只能在存储的电脑上查看。同时提供了几种启动sqlserver的方法。此外,还介绍了如何导出数据库的步骤和工具。 ... [详细]
  • 本文介绍了自动化测试专家Elfriede Dustin在2008年的文章中讨论了自动化测试项目失败的原因。同时,引用了IDT在2007年进行的一次软件自动化测试的研究调查结果,调查显示很多公司认为自动化测试很有用,但很少有公司成功实施。调查结果表明,缺乏资源是导致自动化测试失败的主要原因,其中37%的人认为缺乏时间。 ... [详细]
  • 先看一段错误日志:###Errorqueryingdatabase.Cause:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransie ... [详细]
author-avatar
飞扬8989_100
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有