开发者社区 > 数据库 > 正文

Windows服务器每天2~4次CPU突然100%

Windows2019 服务器,sqlserver2019数据库,netcore3.0后端接口。平均200人同时在线。每天有2~4次突然卡死,CPU达到100%。重启以后恢复正常。

展开
收起
游客c6ikiarzcwsci 2024-07-12 08:24:47 86 0
4 条回答
写回答
取消 提交回答
  • 技术浪潮涌向前,学习脚步永绵绵。

    遇到Windows 2019服务器上运行SQL Server 2019和.NET Core 3.0后端接口,平均200人在线,但每天出现2至4次CPU使用率达到100%并导致系统卡死的问题,可以采取以下步骤来诊断和解决这一问题:

    1. 性能监控与日志分析

    • 使用性能监控工具:首先,使用Windows自带的任务管理器或更详细的资源监视器来观察CPU使用率突然升高的时刻哪些进程或服务占用了大量CPU资源。也可以使用第三方工具如Process ExplorerProcess Hacker来获取更详细的进程信息。

    • SQL Server Profiler/Extended Events:针对SQL Server,使用SQL Server Profiler(如果可用)或Extended Events来跟踪SQL查询,找出可能导致CPU高负荷的查询操作。

    • 应用程序日志:检查Windows事件查看器中的系统和应用程序日志,寻找错误或警告信息,特别是与.NET Core应用、SQL Server或系统相关的。

    2. 数据库优化

    • 索引调整:检查数据库表的索引策略,无效或缺失的索引可能导致全表扫描,从而消耗大量CPU资源。

    • 查询优化:分析高CPU使用时段的SQL查询,看是否可以通过优化查询逻辑、减少JOIN操作、使用更有效的数据类型等方法来减少CPU负载。

    3. .NET Core应用诊断

    • 应用日志:确保.NET Core应用有足够详细的应用日志记录,通过日志分析确定问题发生的具体时间点和相关操作。

    • 性能剖析:使用.NET Core Performance Profiler或Visual Studio的诊断工具来分析应用程序的CPU使用情况,识别热点函数。

    4. 资源限制与配置调整

    • SQL Server配置:检查SQL Server的配置设置,如最大内存使用量,确保它不会过度消耗系统资源,导致其他进程资源不足。

    • .NET Core应用池设置:在IIS中,调整.NET Core应用池的回收设置,限制其内存使用,并确保有合理的请求队列和工作进程数量配置。

    5. 定期维护与更新

    • 系统与软件更新:确认Windows Server、SQL Server以及.NET Core框架都已应用最新的安全和性能更新。

    • 计划性重启:如果问题根源难以迅速定位,可以考虑设置在低峰时段自动重启服务器或服务,作为一种临时缓解措施。

    6. 第三方服务与插件检查

    • 如果系统中使用了任何第三方服务或插件,确保它们也是最新版本,并检查是否有已知的性能问题或冲突。

    7. 高级故障排除

    • Windows性能分析器(WPA):可以用来进行更深入的系统性能分析,收集ETL跟踪文件,分析CPU瓶颈的具体原因。

    • 分布式事务:检查是否有长时间运行或未正确处理的分布式事务,这可能与MSDTC服务有关。

    通过上述步骤,逐步排查和解决CPU突然满载的问题。如果问题依旧,可能需要考虑聘请专业的技术支持或顾问进行深入调查。

    2024-07-13 22:18:54
    赞同 3 展开评论 打赏
  • 使用任务管理器或资源监视器查看哪个进程占用了高CPU。
    检查SQL Server是否有长时间运行的查询,这可能导致CPU峰值。
    分析.NET Core接口日志,看是否在高负载时出现异常。
    确认服务器是否有足够的内存,不足可能引发频繁的磁盘换页导致CPU高。
    安装杀毒软件并进行全盘扫描,排除病毒或恶意软件。
    检查服务器更新设置,避免在业务高峰期自动更新。
    参阅云服务器 ECS Windows系统ECS实例中CPU使用率较高问题的排查及解决方案 解决方案

    2024-07-12 15:58:16
    赞同 1 展开评论 打赏
  • 结合我遇到的情况你这应该是遇到慢SQL了,是某一个或者多个查询语句执行很慢甚至timeout造成的CPU被打满了

    2024-07-12 09:18:13
    赞同 2 展开评论 打赏
  • Windows系统ECS实例中CPU使用率较高,即CPU使用率≥80%。

    问题原因
    CPU使用率较高可能有以下原因。

    ECS实例遭到病毒木马入侵。

    ECS实例中第三方杀毒软件运行。

    ECS实例中应用程序异常、驱动异常、高I/O使用率或高中断处理的应用程序。

    image.png

    参考文档https://help.aliyun.com/zh/ecs/support/what-do-i-do-if-cpu-utilization-is-high-on-a-windows-instance?spm=a2c4g.11186623.0.i4

    2024-07-12 09:14:25
    赞同 2 展开评论 打赏

数据库领域前沿技术分享与交流

相关电子书

更多
RDS SQL Server CPU高使用率性能优化 立即下载
TAKING WINDOWS 10 KERNEL 立即下载
ECS运维指南之Windows系统诊断 立即下载