最佳线程数和QPS以及RT
来源:互联网 发布:农村淘宝新版下载安装 编辑:程序博客网 时间:2024/06/05 18:35
最近在关注性能的事情,所以对于多线程程序中,如何设置最佳的线程数,找了一些文章。虽然有公式可以套用,
但是,其实最佳的话只是相对的,了解了过程之后,处理线程数的设置就会游刃有余了。
名字解释:
1、QPS:系统每秒处理的请求数(query per second)
2、RT:系统的响应时间,一个请求的响应时间,也可以是一段时间的平均值
3、最佳线程数量:刚好消耗完服务器瓶颈资源的临界线程数
QPS和RT的关系:
对于单线程:QPS=1000/RT
对于多线程:QPS=1000*线程数量/RT
性能的两个点:
吞吐量和延迟,其实通俗的解释就是QPS和RT(我的理解),虽然有上面的公式,但是两者的关系并不是完全线性的。
至于为啥?原因很多,系统表现远远比我们想想的要复杂。
最佳线程数有公式吗?
答案是肯定的。
服务器端最佳线程数量=((线程等待时间+线程cpu时间)/线程cpu时间) * cpu数量 (CPU瓶颈类型)
在达到最佳线程数的时候,线程数增加,则QPS不变,而响应时间变长,线程数量继续增加,则QPS下降(上下文切换耗时)。
最佳线程数是动态的,在不同的状态下会进行变化。
瓶颈资源可以是CPU、内存、数据库连接池、锁资源、IO等。
超过最佳线程数,会导致资源竞争加剧,同时响应时间也会增加。
如何获取最佳线程数呢?
有了公式,其实并没有实质性的解决问题。
1、逐步压测,不断的调整线程数来观察系统的负载,这个最土,但是最实用
2、如果确切的知道瓶颈资源的使用情况,则可以直接使用公式;
3、单用户压测,查看CPU的使用情况,然后基于公式得出一个值,上下微调;
http://www.ibm.com/developerworks/library/j-jtp0730/index.html
http://www.thejoyofcode.com/tuning_the_threadpool.aspx
http://www.infoq.com/articles/Java-Thread-Pool-Performance-Tuning
- 最佳线程数和QPS以及RT
- 最佳线程数和QPS以及RT
- cpu 最佳线程数和QPS以及RT
- sar 查看看qps 和rt
- 吞吐量(Throughput)、QPS、并发数、响应时间(RT)
- QPS RT Throughput
- MySQL实时统计脚本--计算QPS,TPS和线程连接数等
- MySQL实时统计脚本--计算QPS,TPS和线程连接数等
- 吞吐量(Throughput)、QPS、并发数、响应时间(RT)对系统性能的影响
- QPS(req/sec 每秒请求数)、PV 、RT (响应时间) 之间的关系
- 吞吐量(Throughput)、QPS、并发数、响应时间(RT)对系统性能的影响
- 吞吐量(Throughput)、QPS、并发数、响应时间(RT)对系统性能的影响
- 吞吐量(Throughput)、QPS、并发数、响应时间(RT)对系统性能的影响
- 吞吐量(Throughput)、QPS、并发数、响应时间(RT)对系统性能的影响
- QPS(req/sec 每秒请求数)、PV 、RT (响应时间) 之间的关系
- 吞吐量(Throughput)、QPS、并发数、响应时间(RT)对系统性能的影响
- 吞吐量(Throughput)、QPS、并发数、响应时间(RT)对系统性能的影响
- 最佳线程数总结
- 关于Android在网络上下载文件以及向SD卡中写入文件
- Ubuntu Sun JDK 切换回 OpenJDKe
- !!!Formal Parameter & Actual Parameter & Pointer (形参, 实参, 指针)
- windows vc6/vs2005/vs2008 release 调试
- Android中Message机制的灵活应用
- 最佳线程数和QPS以及RT
- jsp实现分页显示的功能
- 请求,调用数据库, 前后台交互
- 一步一步学数据结构之n--n(图--邻接矩阵法实现)
- 设计模式-命令模式
- Python基础教程(第2版)练习代码
- 四大原则
- JSON数据格式
- hdu 4669——Mutiples on a circle