Skip to content

服务器资源诊断

在这篇文章中

服务器整体负载分析

为了监控服务器状态,可以使用以下内置工具:

  • Windows:“任务管理器”。
  • Linuxtop 实用程序显示 1、5 和 15 分钟的平均负载(Load Average)。理想指标是数值不超过处理器核心数。例如,四核服务器上的 LA 4 表示核心利用率达到 100%,需要立即降低负载。

此外:

  • atop 用红色高亮显示高指标。
  • nmon 提供处理器、磁盘、网络和内存负载的图表。要激活图表,请使用特定按键,程序启动时会显示按键列表。

详细资源分析

磁盘空间

磁盘空间不足可能导致错误,例如“无法连接到数据库:无法连接到 MySQL”,即使服务器可访问。检查方法如下:

  • 命令 df -h 显示已占用和空闲分区。
  • du -hs /* 有助于识别大目录,例如旧归档文件。
  • 清理临时文件(日志、缓存、PHP 会话)——一种有效的释放空间方法。

内存 (RAM)

内存使用的动态特性需要定期监控。命令 free -m 显示:

  • 已用和空闲内存。
  • 用户可访问的内存量(freecached 之和)。

要分析消耗内存的进程,请使用:

ps axo rss,comm,pid | awk '
{
    # Group by process name (comm)
    proc_list[$2]++;
    # Sum RSS for each process
    total_memory[$2] += $1;
}
END {
    # Output results
    for (proc in total_memory) {
        printf("%.0fMB\t%s\n", total_memory[proc]/1024, proc);
    }
}' | sort -nr | head -n 10

网络通道

用于流量监控:

  • iftop 使用标志 -m 100M 显示通道宽度。如果吞吐量超过 50b(实用程序中的白色条纹),则需要增加带宽。

备注

您可能需要从网站或操作系统存储库安装这些和其他实用程序。

  • jnettopiptraf —— 用于网络流量分析的其他工具。

通过浏览器监控

要通过浏览器进行监控,可以在服务器上安装专用工具:

  • MuninNetData —— 提供处理器、内存、磁盘和流量负载的图表。

一些托管控制面板,例如 ispmanager,允许通过界面进行资源分析:跟踪进程、磁盘空间使用情况等。

Apache 和 MySQL 的负载分析

如果高服务器负载是由 Apache 引起的,它会在端口 80 和 443 上接收大量请求。为了降低负载,建议在服务器上使用 Nginx,启用数据压缩,并为静态资源配置缓存。

此类请求的可能原因各不相同:合法的网站流量、搜索引擎机器人的活动,或者更严重的是 DDOS 攻击。如果是由搜索引擎机器人引起的,您可以通过调整 Yandex.Webmaster 和 Google Webmasters Tool 设置中访问服务器的间隔来降低其请求强度。如果是攻击,常规设置将无济于事——需要实施额外的保护措施,例如专用工具或云解决方案。

高负载也可能由 MySQL 工作引起。在这种情况下,建议使用 Mysqltuner 实用程序优化服务参数。此外,请注意发送到数据库的 SQL 查询并检查其效率。为此,您可以使用命令 show full processlist,该命令显示当前 MySQL 操作列表。

监控 top 实用程序中的 WA 指标也很重要。如果此参数的值超过 20,可能表明数据无法快速写入磁盘,从而导致故障。在这种情况下,建议升级硬件,例如安装 SSD 或 NVMe 磁盘,以提供更高的性能。

question_mark
Is there anything I can help you with?
question_mark
AI Assistant ×