如何解决.Net核心服务响应时间较差,已通过负载测试
我正在对.Net Core 2服务进行一些负载测试,并且得到了一些我想了解的结果。
以下是我的一些跑步记录:
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 举报,一经查实,本站将立刻删除。