在Linux系统上监控ASP服务器资源(如运行在Apache或Nginx上的ASP.NET Core应用)可以使用多种工具和方法。以下是一个全面的监控方案:
top/htop:实时查看CPU、内存使用情况
top
htop # 需要安装,提供更友好的界面
vmstat:监控系统资源使用情况
vmstat 1 # 每秒刷新一次
free:查看内存使用
free -h
df/du:磁盘空间监控
df -h # 查看磁盘分区使用情况
du -sh /path # 查看目录大小
netstat/ss:网络连接监控
netstat -tulnp
ss -tulnp
ps:查看特定进程资源使用
ps aux | grep aspnet # 查看ASP.NET进程
pidstat:监控特定进程资源
pidstat -p <PID> 1 # 监控指定进程
在ASP.NET Core应用中启用健康检查:
// Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddHealthChecks();
}
public void Configure(IApplicationBuilder app)
{
app.UseEndpoints(endpoints =>
{
endpoints.MapHealthChecks("/health");
});
}
csharp
services.AddPrometheusScrapingEndpoint();
用于日志集中管理和分析
#!/bin/bash
# 监控ASP.NET进程资源使用
while true; do
pid=$(pgrep -f "dotnet yourapp.dll")
if [ -n "$pid" ]; then
cpu=$(ps -p $pid -o %cpu | tail -n 1)
mem=$(ps -p $pid -o %mem | tail -n 1)
echo "$(date): CPU $cpu%, MEM $mem%"
fi
sleep 5
done
通过以上工具和方法的组合,您可以全面监控Linux上ASP服务器的资源使用情况,及时发现并解决问题。