zoukankan      html  css  js  c++  java
  • 思考:网络性能优化:网络 -- cpu -- 线程数 -- 单个任务耗时 --- qps --- 并发


    思考:网络性能优化:网络 -- cpu -- 线程数 -- 单个任务耗时 --- qps --- 并发
    如果没有理清楚上述概念和它们之间的关系,那么优化会毫无章法;
    线程越多,利用上的线程越多,cpu的idle会约低,只到cpu低得不能再低,一般情况下,可以可劲用(idle为10%你遇到过吗?),但是要注意你的下游能否能扛得住你转嫁给他们的并发压力呢;
    单个任务处理越快,qps和并发会越高;
    两个线程的并发一定是一个线程的两倍,10个线程的并发一定是2个线程的5倍;
    qps是一秒处理的任务数,这个换算逻辑是:假如一个任务是100ms,有10个线程,那么并发是10,qps是(1000/ 100) * 10 = 100,
    注意,这里是理想情况下的理论换算,理想的意思是每个任务都是100ms,时间不多不少;
    网络都有一个出口,对于请求方来说,出口就是到你的网络服务里面,如果你不接收,或者你接收不了(就那么几个工作线程都还一直忙着呢),那么
    对于请求方来说,就会超时(超过预期时间),你可以先接收,后处理,但是如果你单个任务处理能力没有提升,工作线程没有增多,就算接收也是没用的;
    所以,对于网络服务所在机器的cpu如果idle很低,有两个原因造成的,一个是单个任务的计算量很大,使用了很多的cpu资源,一个是你接收而且确实同时处理了
    大量的并发任务,这些任务并行执行加起来让cpu的idle很低;针对这两种情况,也给了我们解决问题的两个思路:一个是让单个任务处理更高效,耗时更短;一个是
    增加我们的线程数,让更多的线程跑起来,让cpu更加忙碌起来;

  • 相关阅读:
    [JOISC2017]細長い屋敷
    Gym102471C Dirichlet k-th root
    CF1264F Beautiful Fibonacci Problem
    Luogu P4619 [SDOI2018]旧试题
    AGC001F Wide Swap
    BZOJ4289 [PA2012]Tax
    Luogu P4366 [Code+#4]最短路
    Luogu P1407 [国家集训队]稳定婚姻
    CF1023F Mobile Phone Network
    BZOJ3563 DZY Loves Chinese
  • 原文地址:https://www.cnblogs.com/big1987/p/11053925.html
Copyright © 2011-2022 走看看