共计 815 个字符,预计需要花费 3 分钟才能阅读完成。
过程数
当单过程 cpu 耗费靠近 80% 时,代表达到单过程解决的下限;业务上尽量保障单过程 cpu <75%, 以应答突发状况;
-
多过程的长处和弊病
长处:- 进步业务零碎的解决能力
- 充分利用多核 CPU
弊病:
- 过程越多,占用资源越多,内存(疏忽),redis,mysql 连接数会乘数级别增高
- 过程间通信效率不如过程内通信的效率;
-
如何评估过程数量?
a. 评估单过程的解决能力- 评估时,保障单过程 CPU 占用率 70%,此时的业务解决能力就是咱们的一个标尺,比方单过程能解决 30 个路口;
-
业务上,如果应用多线程,通过适合的调整多线程数量,解决 IO 操作问题,晋升单过程 CPU 使用率;
- 线程数不宜过多,否则都是线程切换开销,如果线程超过 50 个(集体主观),应该重点关注是否影响性能;
- 线程调整过程中,每次应该适量调整,进行察看;
- 业务上,如果应用协程,因为协程数量减少,根本不会影响性能(协程的劣势就在于此),协程数量可随便配置,通过观察 CPU 使用率,失去一个主观的评估;
b. 过程数量的计算
通过单过程的业务解决能力,依据业务大小,可计算出过程数量
线程数(协程同理)
因为单过程只能利用一个 CPU, 因而线程数的调整,旨在解决 IO 密集(网络 IO)问题;
-
如何优化线程数量;
a. 根本条件:* 每秒须要解决的解决的业务数为 a 条,假如业务数是平均产生 * 业务函数解决时长(蕴含 IO) 为 X s * 业务容许的解决延时为 Y s (Y > X)
b. 横向并发优化:
* 将业务函数运行在等价的多线程里;* 思考业务不积压,不思考延时,多线程数 n = a * (1/X) = a * X * 思考业务不积压,延时符合要求,状况简单,临时没有碰到此种状况,且次要是争对业务非平均产生的状况,比方一一分钟一次产生 N 条业务数;
c. 纵向并发优化:
* 因非凡起因,业务函数无奈横向并发优化(保障时序性),可进行纵向优化;* 将业务函数拆分多个前后依赖的小函数,将小函数运行在多线程里;* 最终业务函数的解决时长(蕴含 IO)由 X 缩减为 max(X1, X2,...)
正文完