跳至主要內容

评估最大QPS

chanchaw小于 1 分钟java

概述

拿到一台服务器后如何评估它能支持的最大QPS(每秒查询率)?

评估

根据API响应要求

首先要对应用的API有响应时间的要求,比如用户发出一个请求要求后台的该API响应时间为 100ms,那么一个线程一秒钟就可以应对 10 请求,那么应用要设置多少个线程更合理呢?这个问题要产生分支了,从资源的使用上可分为:CPU密集型应用、IO密集型应用。对于前者一般设置的线程数量等于CPU线程数更合理,少了不能充分利用CPU线程,多了会产生线程的上下文切换也不能达到最大化利用CPU,比如CPU是4核8线程,那么设置线程数为8较为合理。对于后者(IO密集型应用)一般设置线程数量为CPU线程数的2倍到4倍。因为在请求IO设备时线程被阻塞,此时CPU可以用于执行其他线程的任务,达到充分利用CPU的目的。