插件窝 干货文章 linux asp服务器资源怎样监控

linux asp服务器资源怎样监控

监控 使用 bash 进程 131    来源:    2025-05-14

Linux ASP服务器资源监控指南

在Linux系统上监控ASP服务器资源(如运行在Apache或Nginx上的ASP.NET Core应用)可以使用多种工具和方法。以下是一个全面的监控方案:

一、系统级监控工具

1. 基础命令行工具

  • top/htop:实时查看CPU、内存使用情况

    top
    htop  # 需要安装,提供更友好的界面
    
  • vmstat:监控系统资源使用情况

    vmstat 1  # 每秒刷新一次
    
  • free:查看内存使用

    free -h
    
  • df/du:磁盘空间监控

    df -h  # 查看磁盘分区使用情况
    du -sh /path  # 查看目录大小
    
  • netstat/ss:网络连接监控

    netstat -tulnp
    ss -tulnp
    

2. 进程级监控

  • ps:查看特定进程资源使用

    ps aux | grep aspnet  # 查看ASP.NET进程
    
  • pidstat:监控特定进程资源

    pidstat -p <PID> 1  # 监控指定进程
    

二、ASP.NET Core专用监控

1. 内置监控端点

在ASP.NET Core应用中启用健康检查:

// Startup.cs
public void ConfigureServices(IServiceCollection services)
{
    services.AddHealthChecks();
}

public void Configure(IApplicationBuilder app)
{
    app.UseEndpoints(endpoints =>
    {
        endpoints.MapHealthChecks("/health");
    });
}

2. 应用性能监控(APM)工具

  • Application Insights:微软官方APM解决方案
  • Prometheus + Grafana:开源监控方案
  • New Relic / Datadog:商业APM工具

三、高级监控方案

1. Prometheus + Grafana

  1. 安装Prometheus
  2. 配置ASP.NET Core应用暴露Prometheus指标: csharp services.AddPrometheusScrapingEndpoint();
  3. 使用Grafana创建仪表板

2. ELK Stack (Elasticsearch, Logstash, Kibana)

用于日志集中管理和分析

3. 自定义监控脚本

#!/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

四、监控指标关注点

  1. CPU使用率:单个核心持续高于70%可能需要优化
  2. 内存使用:关注是否持续增长(可能内存泄漏)
  3. 磁盘I/O:特别是日志和数据库所在分区
  4. 网络流量:异常流量可能指示攻击
  5. 响应时间:应用性能关键指标
  6. 错误率:HTTP 5xx错误数量
  7. 并发连接数:接近最大限制时需要扩容

五、报警设置建议

  1. CPU使用率 > 80%持续5分钟
  2. 内存使用 > 90%
  3. 磁盘空间 < 10%
  4. HTTP 500错误每分钟 > 5次
  5. 平均响应时间 > 1秒

通过以上工具和方法的组合,您可以全面监控Linux上ASP服务器的资源使用情况,及时发现并解决问题。