服务器最佳线程数

lee1473336489 2014-08-17 10:44:59
一般都如何设置最佳线程数?网上有很多方案都不好实施,比如:

最佳线程数= (IO时间+cpu时间)/cpu时间 *cpu核数

这里的io时间和cpu时间 不知道是多少啊、、

还有的说用单线程 观察cpu,再乘以一个百分比.. 都说的很抽象


有没有好的方案的? 或者一些好的书籍。。谢谢大家了
...全文
836 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lee1473336489 2014-08-18
  • 打赏
  • 举报
回复
引用 4 楼 ldh911 的回复:
在性能优化这件事情上:实践是唯一标准。 公式都只能是大致参考,比如你给的公式中,IO时间其实包含了后端系统调用开销(数据库、后端WS服务等)。 所以大致手段都是:设定好并发用户量,然后做不同线程容量下的性能测试,然后寻找拐点。 事前根据公式或经验数据来预估线程数,有助于减少测试次数,更快速的找到拐点。
这种可行.. 谢谢
MiceRice 2014-08-18
  • 打赏
  • 举报
回复
在性能优化这件事情上:实践是唯一标准。 公式都只能是大致参考,比如你给的公式中,IO时间其实包含了后端系统调用开销(数据库、后端WS服务等)。 所以大致手段都是:设定好并发用户量,然后做不同线程容量下的性能测试,然后寻找拐点。 事前根据公式或经验数据来预估线程数,有助于减少测试次数,更快速的找到拐点。
业余草 2014-08-18
  • 打赏
  • 举报
回复
由少到多的进行测试,多方面,全方位的进行测试。
pricks 2014-08-18
  • 打赏
  • 举报
回复
楼上说的都有道理,没有啥现成的公式可以参考,只能在实践中摸索
skgary 2014-08-17
  • 打赏
  • 举报
回复
你如果用linux的话,可以用top命令观察一下 (IO时间+cpu时间)这两个东西。。。 但万事没有绝对的,这些还是要通过具体的性能测试来进行调优的,因为调优中间,如何找出系统的瓶颈远比你调整线程数更重要。 另外,不论算出来是多少,基本上,配个100-200就足够了,再多的话,去调整程序减少IO吧。
skgary 2014-08-17
  • 打赏
  • 举报
回复
如果你没有明显的IO/数据库操作,那么线程数应该基本上等于 CPU数*内核*线程数 如果你有明显的IO/数据库操作,而且是大头的话,线程数可以等于数据库连接池数目+CPU数*内核*线程数 这些没有一定的,还是要根据你的性能测试的情况来配置的。

25,980

社区成员

发帖
与我相关
我的任务
社区描述
高性能WEB开发
社区管理员
  • 高性能WEB开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧