服务器资源诊断¶
在这篇文章中
服务器整体负载分析¶
为了监控服务器状态,可以使用以下内置工具:
- Windows:“任务管理器”。
- Linux:
top实用程序显示 1、5 和 15 分钟的平均负载(Load Average)。理想指标是数值不超过处理器核心数。例如,四核服务器上的 LA 4 表示核心利用率达到 100%,需要立即降低负载。
此外:
详细资源分析¶
磁盘空间¶
磁盘空间不足可能导致错误,例如“无法连接到数据库:无法连接到 MySQL”,即使服务器可访问。检查方法如下:
- 命令
df -h显示已占用和空闲分区。 du -hs /*有助于识别大目录,例如旧归档文件。- 清理临时文件(日志、缓存、PHP 会话)——一种有效的释放空间方法。
内存 (RAM)¶
内存使用的动态特性需要定期监控。命令 free -m 显示:
- 已用和空闲内存。
- 用户可访问的内存量(
free和cached之和)。
要分析消耗内存的进程,请使用:
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(实用程序中的白色条纹),则需要增加带宽。
备注
您可能需要从网站或操作系统存储库安装这些和其他实用程序。
通过浏览器监控¶
要通过浏览器进行监控,可以在服务器上安装专用工具:
一些托管控制面板,例如 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 磁盘,以提供更高的性能。