思考:网络性能优化:网络 -- 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更加忙碌起来;

原文地址:https://www.cnblogs.com/big1987/p/11053925.html

时间: 2024-08-28 19:03:01

思考:网络性能优化:网络 -- cpu -- 线程数 -- 单个任务耗时 --- qps --- 并发的相关文章

Linux 下网络性能优化方法简析

概述 对于网络的行为,可以简单划分为 3 条路径:1) 发送路径,2) 转发路径,3) 接收路径,而网络性能的优化则可基于这 3 条路径来考虑.由于数据包的转发一般是具备路由功能的设备所关注,在本文中没有叙述,读者如果有兴趣,可以自行学习(在 Linux 内核中,分别使用了基于哈希的路由查找和基于动态 Trie 的路由查找算法).本文集中于发送路径和接收路径上的优化方法分析,其中的 NAPI 本质上是接收路径上的优化,但因为它在 Linux 的内核出现时间较早,而它也是后续出现的各种优化方法的基

Linux网络性能优化方法简析

Linux网络性能优化方法简析 2010-12-20 10:56 赵军 IBMDW 字号:T | T 性能问题永远是永恒的主题之一,而Linux在网络性能方面的优势则显而易见,这篇文章是对于Linux内核中提升网络性能的一些优化方法的简析,以让我们去后台看看魔术师表演用的盒子,同时也看看内核极客们是怎样灵活的,渐进的去解决这些实际的问题. AD:2014WOT全球软件技术峰会北京站 课程视频发布 对于网络的行为,可以简单划分为 3 条路径:1) 发送路径,2) 转发路径,3) 接收路径,而网络性

携程App的网络性能优化实践

本文转载至 http://kb.cnblogs.com/page/519824/ 作者: 陈浩然  来源: InfoQ  发布时间: 2015-04-29 23:42  阅读: 4018 次  推荐: 16   原文链接   [收藏] 摘要:在4月23日~25日举行的QCon全球软件开发大会(北京站)上,携程无线开发总监陈浩然分享了<移动开发网络性能优化实践>,总结了携程在App网络性能优化方面的一些实践经验.在2014年接手携程无线App的框架和基础研发工作之后,陈浩然面对的首要工作就是Ap

转:携程App的网络性能优化实践

http://kb.cnblogs.com/page/519824/ 携程App的网络性能优化实践 受益匪浅的一篇文章,让我知道网络交互并不是简单的传输和接受数据.真正的难点在于后面的性能优化 下面对文章中的几点进行总结和整理,作为个人的笔记 常见的网络性能问题: 1.DNS问题 DNS被劫持或失效 DNS解析慢或者失败 2.TCP连接问题 TCP的连接端口被封 TCP连接超时 3.write/Read问题 设置合理的读写超时时长 客户端所处环境的常用端口被限制 网络切换(即当用户的网络在WIF

Android性能优化之使用线程池

在写程序时有些异步程序只执行一遍就不需要了,为了方便经常会写下面的代码 new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub } }).start(); 这样new出来的匿名对象会存在一些问题 1.由于是匿名的,无法对它进行管理 2.如果需要多次执行这个操作就new多次,可能创建多个,占用系统资源 3.无法执行更多的操作 使用线程池的好处 1.可以重复利用存在的线程

C++编写代码查看CPU个数,单个CPU核数,单个CPU线程数

CPU个数:这里指物理上的CPU个数,即在dos界面中,输入systeminfo时,显示信息中的处理器个数 CPU核数:这里指CPU核心数,即在dos界面中,输入wmic后,在键入CPU get * 时所显示的NumberOfCores CPU线程数:这里指在dos界面中,输入wmic后,在键入CPU get * 时所显示的NumberOfLogicalProcessors 通常情况下,我们的CPU说的是几核,如双核,四核等,指的就是核心,而现在有种技术是超线程技术,此技术即为一个核心,两个线程

【好书摘要】性能优化中CPU、内存、磁盘IO、网络性能的依赖

系统优化是一项复杂.繁琐.长期的工作,优化前需要监测.采集.测试.评估,优化后也需要测试.采集.评估.监测,而且是一个长期和持续的过程,不 是说现在优化了,测试了,以后就可以一劳永逸了,也不是说书本上的优化就适合眼下正在运行的系统,不同的系统.不同的硬件.不同的应用优化的重点也不同. 优化的方法也不同.优化的参数也不同.性能监测是系统优化过程中重要的一环,如果没有监测.不清楚性能瓶颈在哪里,怎么优化呢?所以找到性能 瓶颈是性能监测的目的,也是系统优化的关键.系统由若干子系统构成,通常修改一个子系

AIX网络性能优化简介

在AIX 中,网络性能的优化可从以下几方面进行: 网络内存(network memory)的调整 socket 缓冲区 (socket buffer) 的调整 网络接口(network interface)参数的调整 网络适配器 (network adapter) 上发送/接收队列的调整 名字解析(name resolution) 的查找顺序. 1.网络内存的调整 AIX中参数 thewall 的值限定了系统中最多有多少物理内存可被网络缓冲区使用.但在AIX5L中 thewall 的值是无法修改

Linux性能优化之CPU优化(一)

前言 何为性能优化?个人认为,性能优化是为了提高应用程序或系统能力为目的.那么如何才能实现对应用程序的性能调优呢?这里很设计到很多的内容,包括Linux内核.CPU架构以及Linux内核对资源的分配以及管理,了解进程的创建过程等.这方面由于篇幅较多,所以我的文章就不过多介绍.接下来的几篇文章中,都是讲解如何发现应用程序故障根源为目标讲解,这也是每一个系统工程师应该具备的能力.废话不多说,我直接进入主题. 常用术语 延时:延时是描述操作之后用来等待返回结果的时间.在某些情况下,它可以指的是整个操作