You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MassTransit空闲时CPU占用达30%,求优化解决办法

MassTransit空闲状态CPU占用过高问题排查

我花费数日排查C# MassTransit配置在空闲状态下CPU占用过高(达30%+)的原因,发现其他用户提出相同问题后得到的回复极少,且大多表示‘你肯定哪里操作有误’。但我严格遵循MassTransit官网示例,甚至创建了最简项目,空闲时仍会出现30%+的CPU占用。在我们的环境中,空闲进程占用如此高的CPU资源影响重大,请问是否有办法将其降至0-10%?

.NET7应用中MassTransit配置示例

.ConfigureServices((host, services) =>
{
    IAgentInformation agentInformation = new AgentInformation(host.Configuration);

    services.AddMassTransit(x =>
    {
        x.SetKebabCaseEndpointNameFormatter();

        var entryAssembly = Assembly.GetEntryAssembly();

        x.AddConsumer<AgentConsumer>();
        x.AddSagaStateMachines(entryAssembly);
        x.AddSagas(entryAssembly);
        x.AddActivities(entryAssembly);

        x.UsingRabbitMq((context, cfg) =>
        {
            cfg.Host(agentInformation.ATLASServer, "/", h =>
            {
                h.Username(agentInformation.RabbitId);
                h.Password(agentInformation.Rabbit);
            });

            cfg.ConfigureEndpoints(context);
        });
        services.AddHostedService<Worker>();
    });
});

消费端实现代码示例

public class AgentConsumer : IConsumer<ServerMessageContract>
{
    readonly ILogger<AgentConsumer> _logger;

    public AgentConsumer(ILogger<AgentConsumer> logger)
    {
        _logger = logger;
    }

    public Task Consume(ConsumeContext<ServerMessageContract> context)
    {
        _logger.LogInformation("Received Message: {Text}", context.Message.Payload == null ? "" : context.Message.Payload.ToString());
        TaskRunner.CommandsFromServer(context.Message);

        return Task.CompletedTask;
    }
}

消息发布代码示例

var endpoint = await _bus.GetSendEndpoint(new Uri($"rabbitmq://{ServerAddress}/{SendQueue}"));
await endpoint.Send(agentMessage, stoppingToken);

配置流程非常简洁....

编辑补充

最终通过排查发现,问题源于我们自研的另一内部库导致CPU飙升。


内容的提问来源于stack exchange,提问作者jforward5

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 19:08:32