通过这 5 个故障排除步骤修复 Linux 服务器问题
利用这些智能故障排除技巧,让您的 Linux 服务器在几分钟内恢复并运行。
如果您的 Linux 服务器没有充分发挥其潜力,则可能存在需要解决的潜在问题。
按照这五个简单但实用的步骤对 Linux 服务器进行故障排除并将停机时间降至最低。
1.检查硬件
让我们开始讨论绝对的基础知识:检查硬件。这意味着您需要前往物理机架并检查是否有任何电缆松动或停电。
或者,键入以下命令:
$ sudo ethtool eth0
如果它返回“是”,则您知道您的端口正在与网络通信。
要检查服务器的 BIOS/UEFI 硬件报告,请使用以下命令:
$ sudo dmidecode --type memory
如果响应看起来不错,那么这也不是问题。如果您怀疑存在内存问题,请运行以下命令:
$ sudo modprobe edac_core
如果运行上述命令后没有结果,请输入以下命令:
$ sudo grep "[0-9]" /sys/devices/system/etc/mc/mc*/csrow*/ch*_ce_count
这会向您显示内存控制器的行列表以及错误计数。当输出与内存通道、部件号和插槽上的 dmidecode 数据相结合时,您可以成功找到损坏的内存条。
2. 破译确切的问题
你的服务器已经宕机了,没有两种方法可以解决。在开始使用您的工具之前,必须先确定具体的问题是什么。例如,如果您的用户遇到服务器应用程序问题,您需要确保问题不在客户端。
其次,作为寻找问题的一部分,您应该尝试缩小问题的根源。这意味着服务器本身或服务器应用程序。例如,服务器程序可能会失控,而服务器的功能就像一台运转良好的机器。
要检查应用程序是否运行顺利,请键入以下内容:
$ sudo ps -ef | grep apache2
$ sudo netstat -plunt | grep apache2
如果服务器没有响应,您可以使用以下命令打开 Apache 服务器:
$ sudo service apache2 start
简而言之,在行动之前先弄清楚确切的问题。这将有助于缩小问题列表并帮助您找到相应的解决方案。
3. 使用顶部功能
Top 是 Linux 最具代表性的调试功能之一,因为它使用系统资源加载平均、交换和进程列表。
但第一次使用它时,可能会显得令人困惑。这是顶部的快速细分。
1号线:
时间
计算机已运行多长时间?
用户数
平均负载(最后1分钟、最后5分钟、最后15分钟的系统负载时间)
2号线:
任务总数
运行任务数
休眠任务数
停止的任务数量
僵尸任务数量
第 3 行:
用户的 CPU 使用率百分比
系统 CPU 使用率百分比
低优先级进程的 CPU 使用率百分比
空闲进程的 CPU 使用率百分比
CPU 使用率(按 I/O 等待的百分比表示)
CPU 使用率(按硬件中断计算)
软件中断的 CPU 使用率百分比
CPU 使用率占窃取时间的百分比
系统总内存
空闲内存
使用内存
缓冲区高速缓存
4号线:
可用交换总量
总免隔夜利息
使用的总交换空间
有效内存
接下来是每个正在运行的应用程序的一行。这包括:
进程号
用户
优先事项
水平不错
进程使用的虚拟内存
进程使用的常驻内存
可共享内存
进程使用的 CPU 百分比
进程使用的内存百分比
时间进程已运行
命令
要找出哪个进程消耗的内存最多,请首先通过键入 M 对进程进行排序。
要检查使用最多 CPU 资源的进程,请按 P。
要过滤特定选项,请按O,这将显示以下命令:
add filter #1 (ignoring case) as: [!]FLD?VAL
此外,您可以过滤特定的进程,例如
COMMAND=apache
这将过滤并仅显示 Apache 进程。
4. 跟踪磁盘空间
尽管有无限的可用存储空间,但服务器可能会耗尽空间,从而导致许多问题。在这种情况下,请使用df命令(磁盘文件系统)来提取可用/已用磁盘空间的完整摘要。
您可以通过以下三种方式使用它:
$ sudo df -h
$ sudo df -i
$ sudo df -hT
另一个有用的命令是%util,它突出显示了设备的紧张程度。任何大于 60% 利用率的值都表示存储性能较差。任何接近 100% 的值都意味着驱动器接近饱和。
5. 检查日志是否存在问题
日志在 /var/log(特定于服务的子目录)中为您提供了大量有用的信息。对于新手来说,Linux 的服务器日志可能是地球上最可怕的地方。
情况不一定如此,主要是因为日志是根据其功能进行划分的。一个捕获系统/程序上发生的情况,而另一个记录系统/应用程序错误消息。考虑到日志存储的信息量,它们通常是巨大的文件。
日志数据文件是神秘的,最好学习如何操作。
如果您不确定,请使用 dmesg,它会显示所有内核消息。 tail 函数默认显示前 10 条消息。
$ dmesg | tail
将 tail 命令与 -f 关键字相结合将继续关注 syslog 文件并打印出 syslog 中的下一个事件。
$ dmesg | tail -f /var/log/syslog
该命令将继续扫描日志并显示可能的问题。
有效排除 Linux 服务器故障
最初,对 Linux 服务器进行故障排除似乎是一项艰巨的任务,但有一些实例需要让事情顺利进行。如果这五个步骤没有帮助您识别和跟踪问题,那么让其他人参与进来可能是值得的。
但是,大多数时候,上述故障排除步骤之一应该有助于解决当前的问题。