java服务端性能优化_[读书笔记] 大型网站性能优化实战-服务端性能优化

news/2024/5/18 12:03:19/文章来源:https://blog.csdn.net/weixin_34429137/article/details/114671923

1 QPS (吞吐量)

1.1 RT(ResponseTime,响应时间)

服务器端 RT+网络开销 ≈ 客户端 RT。对于网络来讲,常见的优化方式有 CDN、 AND和专线, 分别适用于不同的场景。

服务器端 RT = Thread CPU Time + Thread Wait Time。

单线程 QPS = 1000ms / RT。

多线程情况下,最佳线程数 = ( RT / CPU Time ) x CPU 核数 × CPU 利用率。多线程 QPS = 最佳线程数 × 单线程 QPS = 1000ms / CPU Time  x CPU 核数 × CPU 利用率。

以上推理宏观上正确,因为多线程下的 CPU Time(比如高并发下的GC次数增加消耗更多的CPUTime、 线程上下文切换等)和单线程下的 CPUTime是不一样的。尤其是在同步模型下的相同业务逻辑中,单线程时的 CPU Time 肯定会比大量多线程 的 CPU Time小,但是对于异步模型来说切换的开销会变小。

CPU Time 不只是业务逻辑所消耗的 CPU 时间,而是一次请求中所有环节上消耗的 CPU 时 间之和。比如在 Web 应用中,一个请求过来的 HTTP 的解析所消耗的 CPU 时间, 是 CPU Time 的一部分,另外,这个请求中请求 RPC 的 encode和 decode所消耗的 CPU 时间也是 CPU Time 的一部分。

CPU Time 是由哪些因素决定的呢?两个关键字: 数据结构+算法。

影响 CPU 利用率的因素有:

I/O 能力:分磁盘I/O和网络I/O(网络I/O又分带宽或网络链路等)。

数据库连接池(并发能力= PoolWaitTime  /RT ( client ) x Poo!Size)。

内存不足,GC 大量占用 CPU,导致给业务逻辑使用的 CPU 利用率下降,而且 GC 时压满足 Amdahl定律锁定义的场景。

共享资源的竞争,比如各种锁策略(读写锁 、 锁分离等),各种阻塞队列,等等 。

所依赖的其他后端服务 QPS 低造成瓶颈 。

线程数或者进程数,乃至编程模型(同步模型、异步模型,某些场景适合同步模型, 某些场景适合异步模型) 。

1.2 相关定律

Amdahl 定律是用来描述可伸缩性的。可伸缩性是指,当增加计算资源的时候,如 CPU、内存、带宽等,QPS 能够相应地进行改进。

Amdahl在自己的论文中指出,可伸缩性是指在一个系统中,基于可并行化和串行化的组件各自所占的比例,当程序获得额外的计算资源(如 CPU 或者内存等)时, 系统理论上能够获得的加速值(QPS 或者其他指标可以翻几倍)。

Gustafson 定律,是 Amdahl 定律的补充 : S(P) = P - α · (P 一 1),其中P是处理器个数,α 是串行时间占总执行时间的比例 。

两个定律有关系吗?有,它们是相辅相成的关系。 前者从串行和并行执行时间的角度来推导,后者从串行和并行的计算量角度来推导, 不管哪个角度,最终的结果是一样的。

6ce076a379a0d844dd87187d005cb61a.png

当计算资源(处理器数量)增加时,在串行比例不变的情况下,CPU利用率下降。

但计算资源(处理器数量)增加时,串行的比例越大,CPU利用率下降得越多。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_763489.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java开源 mooc,GitHub - bo5509/TinyMooc: 轻量级Java平台在线幕课学习网站

萌课(tinymooc)是什么?tinymooc 中文名萌课,是一个轻量级Web网站。它拥有简洁的代码,优雅的设计。萌课网目前打算实现微课程的点播和直播服务,依托于腾讯云强大的云计算服务给用户带去更好的微课学习体验。如果你喜欢,欢迎 Star and Fork, 谢谢!特性轻量级。代码简…

PHP-购物网站开发设计(一)

2015-07-6 开始使用PHP完成简单购物网站的设计,首先要选择合适的软件平台,所以今天先记录平台的选择与搭建: 我选择使用Apache24 PHP 5.6 MySQL 开发环境完成PHP网站开发,软件开发IDE使用PhpStorm8.0.3。 平台搭建过程如下&…

简单网站新闻发布系统

写这篇文章的时候首先要向bben_h 和jdxx表示感谢,是bben_h提出了C#中字符替换这个问题,jdxx很好的解决了这个问题,同时也使我想起以前做的一些程序(简单网站新闻发布系统),现在就把它奉献给大家&#xff0c…

VS2005在开发网站时的一个编译BUG

这两天我在用C#做一个WEB网站,用的是VS2005,碰到一个编译问题,害我查了很长时间,终于找到原因了-_- 放上来,如果有碰到相同问题的兄弟正好看看。现象:编译时,当页面对应的cs文件有错误时&#…

中小型企业网络规划设计方案_中小型企业做品牌网络营销推广时要注意什么问题?【seo专吧】...

许多中小型企业想要网络营销,但是想开展起来就总有困难:不知道怎么宣传、不知道宣传什么、不知道用什么渠道宣传,今天,全网天下的徐国祥就跟大家讲讲。1、前期准备工作要充足万事开头难,所以事前要先分析考虑企业的自我…

环球企业家《信息网站的未来》

环球企业家原文标题:我知道明年夏天你做了什么原文作者:倪妮原文地址:《信息网站的未来》是网易科技刊登时的标题。注:以下仅截取提及玩聚网的部分文字。作者:倪妮 出处:《环球企业家》2009年2月20号刊 第3…

细谈eclipse拓展网站项目集锦----my note

2019独角兽企业重金招聘Python工程师标准>>> 使用eclipse有一些时间啦,也试着开发一些网站project,不是很熟,也用zend studio,后放弃啦。 我的一些经验 1, 使用eclipse开发jsp网站项目,入门篇 …

vue打包成app方法_如何给手机网站封壳快速打包封装成APP?

如果你一个手机站,想给网站加个壳,封装成一个APP。打开显示的还是网站,就是多了启动页面,可以的话能在加上加载页面,标签导航栏,可以实现吗?我的回答是肯定的,现在APP的开发成本很高…

gorm preload 搜索_上海网站SEO优化外包服务公司,百度搜索优化外包服务

原标题:上海网站SEO优化外包服务公司,百度搜索优化外包服务SEO,是利用搜索引擎的规则提高网站在有关搜索引擎内的自然排名。目的是让其在行业内占据领先地位,获得品牌收益。seo搜索优化具体长期稳定流量,推广费用极低的…

网站是不是php是什么意思,php网站是什么意思?

首先你要先了解PHP是什么意思:通俗讲PHP是一个脚本语言。PHP,是英文超级文本预处理语言(PHP:Hypertext Preprocessor)的缩写。它是一种在服务器端执行的,被广泛应用的开放源代码的多用途脚本语言,它可嵌入到 HTML中。语言的风格有…

织梦手机端html不适配,织梦DedeCMS手机wap网站图片不自适应解决办法

在安装调试跟版网手机版网站的时候,发现一个问题,图片无法很好的适应屏幕,宽度可以与屏幕同宽,而高度却没有按比例调整,导致图片看起来像被挤扁了一样,为什么会这样呢?一般为了要达到图片自适应…

SEOer未来之路到底在哪里?

从开始学习SEO,一直走到今天,已经有将近6年的时间,期间走走停停由于一些原因离开过一段时间这个圈子,和所有的站长朋友一样经历着彷徨、迷茫以及对未来职业的不确定,但是依旧坚持了下来,突发奇想就把自己对…

php域名授权代码案例,php域名授权源码,网站授权系统完整源码下载

【php源码】php域名授权源码,网站授权系统完整源码下载- 亲自测试 可运营 无后门运行环境(此环境为通用环境,需要自己自行改变)系统环境:CentOS Linux 7.6运行环境:宝塔 Linux v7.0网站环境:Nginx 1.15 MySQL 5.6 PHP-7.1 /-5.6PHP插件:ionCube -fileinfo -redis – Swoole -…

dede建站mysql_建站推荐十个免费的CMS内容管理系统(Php+mysql)

个人想建站?就在下面10个选吧。选好一个,安心做内容就行了。这是sun的体会。选择哪个CMS并不重要,除了对搜索引擎的亲好外,个人的使用操作习惯和对所选CMS系统的熟悉程度有很大关系。这里为需要建站但又徘徊的朋友介绍10个免费PHP…

推荐23个精美的的国外单页网站设计作品

如果一个网站的内容不是很多而且将来内容也不怎么增加的话,那么制作成单页(Single Page Websites)的形式是很好的选择。这种只有一个页面的网站形式,曾经非常流行,现在依然有很多人喜欢。如果你也想做一个这样的网站&a…

CN域名成“一站式”建站市场首选域名

2019独角兽企业重金招聘Python工程师标准>>> "注册CN域名的同时,就拥有了自己的网站",CN域名这种新型的注册服务在业界引起了广泛的关注。有分析人士表示,"268元建站"活动不仅让建站用户享受到了方便和实惠&a…

利用C语言制作网站

本文章有什么不懂,可以点击浏览一下。。。本文同时发表于CSDN进入终端后,我们先尝试ls命令 ls ls命令,是显示目录内的文件,类似CMD中的dir。和powershell中的ls类似。 如果没有nginx-1.6.0.sh这份文件,我们可以运行一下…

python建站与java建站有何不同_外贸自建站Wordpress 如何设置前后台不同语言

Wordpress支持非常多的语言,我们外贸用的一般设置前台为目标客户的语言,后台设置为中文,当然,如果你是大神,可以忽略。设置前台后台不同的语言的前提是:你的网站安装了2个及以上的语言Wordpressp安装后&…

《众妙之门——自由网站设计师成功之道》一1.1 迈向成功的几个必要习惯

本节书摘来异步社区《众妙之门——自由网站设计师成功之道》一书中的第1章,第1.1节,作者: 【德】Smashing Magazine 译者: 王兴 责编: 赵轩, 更多章节内容可以访问云栖社区“异步社区”公众号查看。 1.1 迈向成功的几个…

个人网站如何使用支付宝收款实现

想给个人网站增加一个支付,找到https://neue.v2ex.com/t/350564,按照里面大家讨论的,还真的可以了。1.开通功能https://neue.v2ex.com/t/326701 有个商家二维码图中二维码是服务商的员工码,作为推广的服务商肯定是会有返利但是不…