.Net核心服务响应时间较差,已通过负载测试

问题描述

我正在对.Net Core 2服务进行一些负载测试,并且得到了一些我想了解的结果。

以下是我的一些跑步记录:

Call Times Under Load


X轴=来电
Y轴=秒,用于HttpClient.PostAsync调用返回

基本上,它可以处理我所承受的几乎所有负载,最多约55,000个呼叫(键中的DOP代表客户端的并行度)。

但是大约有55K通话,该服务开始花费很长时间。 (它们的Y轴以秒为单位,而不是毫秒)。

服务非常简单。它要做的就是获取有效负载,对其进行序列化,然后将其放入RabbitMQ队列:

using (var channel = _connection.CreateModel())
{
    channel.QueueDeclare(queue: _QueueName,durable: true,exclusive: false,autoDelete: false,arguments: _QueueArguments);

    IBasicProperties props = channel.CreateBasicProperties();
    props.ContentType = "text/plain";
    props.DeliveryMode = 2;
    var jsonoptions = new Options(dateFormat: DateTimeFormat.ISO8601);
    string message = Jil.JSON.Serialize<LogEvent>(logEvent,jsonoptions);
    var body = Encoding.UTF8.GetBytes(message);
    channel.Basicpublish(exchange: "",routingKey: _QueueName,basicProperties: props,body: body);
}

如果我让服务中断,那么它可以再次以非常快的速度启动(导致我认为这不是内存泄漏)。

我的服务托管在IIS中(以防万一)。

关于55K通话标记可能出什么问题的任何想法吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)