如何解决在同一进程中使用多个grpc Server实例时,CPU使用率是否奇怪?
我已经通过以下代码创建了两个grpc grpc服务器实例:
builder1.AddListeningPort("0.0.0.0:50050",grpc::InsecureServerCredentials());
...
builder1.BuildAndStart();
builder2.AddListeningPort("0.0.0.0:50051",grpc::InsecureServerCredentials());
...
builder2.BuildAndStart();
每个实例都在异步服务器模式下运行,而asyncNext()操作以不同的方式调用 线程,其中50050的grpc服务器留给管理员,这意味着该服务器或线程上的流量将很低。
当我执行压力测试时,当运行50051的线程达到100%时,运行50050的线程达到30%,这确实很奇怪(管理线程的CPU使用率似乎与主线程呈线性关系,因为生产环境流量显示主线程达到20%,管理线程具有8%的CPU使用率),并且日志在管理线程中显示没有事件发生 由AsyncNext()函数产生。
这是管理线程的最佳表现
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。