- 主题:pajamax,高性能grpc服务端框架
感觉很牛啊,厉害
【 在 hellowub 的大作中提到: 】
: 我最近在写一个服务程序,先是用的tonic grpc框架。但压测下来发现性能没有想象的好。
: 抓火焰图分析了下,除了网络io系统调用外,剩下大部分是在 tokio运行时 和 http2协议解析上的消耗。
: 于是我自己写了个grpc框架,pajamax,采用线程模型的同步方式,另外自己实现了适合grpc的http2协议子集。性能比tonic最高快10倍。
: ...................
--
FROM 123.127.159.*
阻塞等待gpu去算。此处阻塞是否有必要性,常规做法感觉应是非阻塞才好吧?
【 在 ensonmj 的大作中提到: 】
: 我现在就是单独起一个tokio,接受外部请求,预处理。然后通过channel提交给这个loop线程。loop 线程每次try recv外部请求,有就加进来,没有继续计算。计算过程就是就是组建一个大的batch,然后交给外部gpu去算。然后阻塞等待gpu返回结果。 gpu worker那边可以起一个同步的grpc server,因为gpu的请求永远是1,追求的不是高并发,而是低延迟。
: 概括地讲,就是一个llm 请求调度器 。
--
FROM 123.127.159.*
那确实啊,就用同步就好了。运行时调度有不同策略,还有触发机制横插一杠子,我尝试过,时序要求严的场景不如同步。
【 在 ensonmj 的大作中提到: 】
: 重点是我不想把这个loop线程交给tokio调度,也不想在这个线程中使用await。非阻塞也许可是考虑,但问题会更复杂一些,因为llm中下一次迭代是依赖上一次结果的。
--
FROM 123.127.159.*