尚学堂百战程序员之网站性可以

  • 时间:2018-06-19 22:10 作者:北京尚学堂Java学院 来源:北京尚学堂Java学院 阅读:200
  • 扫一扫,手机访问
摘要:一、不同角度的网站性可以普通使用户认为的网站性可以网站性可以对于普通使用户来说,最直接的表现就是响应时间。使用户在浏览器上直观感受到的网站响应速度,即从用户端发送请求,到服务器返回响应内容的时间。做为网站开发人员来说,网站性可以通常会和普通的使用户了解的不一样。普通使用户感受到的网站性可以,并不只是

一、不同角度的网站性可以

普通使用户认为的网站性可以

网站性可以对于普通使用户来说,最直接的表现就是响应时间。使用户在浏览器上直观感受到的网站响应速度,即从用户端发送请求,到服务器返回响应内容的时间。

做为网站开发人员来说,网站性可以通常会和普通的使用户了解的不一样。

普通使用户感受到的网站性可以,并不只是由网站服务器决定的。它还包括用户端计算机和服务器通信的时间,网站服务器解决响应的时间,用户端浏览器构造请求解析响应数据的时间。甚至,不同的计算机性可以、不同浏览器解析HTML的速度、不同网络经营商提供的网络带宽房屋的差异,这些都会导致使用户感受到响应时间,可可以大于网站服务器解决请求的时间。

开发人员认为的网站性可以

开发人员关注的主要是服务器应使用程序本身,以及相关配套系统的性可以。包括并发解决可以力、系统稳固性、响应推迟等技术指标。

对性可以优化的主要手段,包括用缓存加速数据读取,用集群提高数据吞吐可以力,用异步消息加快请求响应,用代码改善程序性可以。

运维人员认为的网站性可以

运维人员关注的主要是服务器基础设备和资源利使用率。如服务器硬件的配置、网络经营商的带宽、数据中心的网络架构等。主要优化手段有用高性价比的服务器、建设优化骨干网络、利使用虚拟化技术优化资源利使用等。

尚学堂百战程序员之网站性可以

二、性可以的指标

从开发人员的角度,网站性可以的指标主要有并发量和响应时间。

并发量

并发数是指系统可以够解决请求的数量,对于网站服务器而言,并发数也就是网站并发使用户数,指同时提交请求的使用户数目。

与并发数相对应的还有网站在线使用户数(登录使用户数)和网站使用户数(一般指注册使用户数)。他们的关系一般是:网站使用户数>网站使用户在线数>网站使用户并发数

响应时间

响应时间是最重要的性可以指标,直接反映了系统的快慢。

三、性可以的优化

对于开发人员来说,网站性可以优化一般包括Web前台性可以优化、应使用服务器性可以优化、存储服务器性可以优化三类。

Web前台性可以优化

1、减少http请求 http协议是无状态的应使用层协议,意味着每次http请求都需要建立通信链路、进行数据传输,而在服务器端,每个http请求都需要启动独立的线程去解决。减少http请求的数目可有效提高访问性可以。

减少http的主要手段是合并CSS、合并javascript、合并图片。

2、用浏览器缓存 对一个网站而言,CSS、javascript、logo、图标,这些静态资源文件升级的频率都比较低,而这些文件又几乎是每次http请求都需要的。假如将这些文件缓存在浏览器中,能极好的改善性可以。通过设置http头中的cache-control和expires的属性,可设定浏览器缓存,缓存时间能自己设置。

3、启使用压缩 在服务器端对文件进行压缩,在浏览器端对文件解压缩,可有效减少通信传输的数据量。假如能的话,尽可可以的将外部的脚本、样式进行合并,多个合为一个。文本文件的压缩效率可达到80%以上,因而HTML、CSS、javascript文件启使用GZip压缩可达到较好的效果。但是压缩对服务器和浏览器产生肯定的压力,在网络带宽良好,而服务器资源不足的情况下要综合考虑。

4、CSS放在页面最上部,javascript放在页面最下面 浏览器会在下载完成一律CSS之后才对整个页面进行渲染,因而最好的做法是将CSS放在页面最上面,让浏览器尽快下载CSS。 Javascript则相反,浏览器在加载javascript后立即执行,有可可以会阻塞整个页面,造成页面显示缓慢,因而javascript最好放在页面最下面。

尚学堂百战程序员之网站性可以

应使用服务器优化

应使用服务器也就是解决网站业务的服务器,网站的业务代码都部署在这里,主要优化方案有缓存、异步、集群等。

1、正当用缓存

当网站遇到性可以瓶颈时,第一个处理方案一般是缓存。在整个网站应使用中,缓存几乎无处不在,无论是用户端,还是应使用服务器,或者是数据库服务器。在用户端和服务器的交互中,无论是数据、文件都能缓存,正当用缓存对网站性可以优化非常重要。

缓存一般使用来存放那些读写次数比较高,变化较少的数据,比方网站首页的信息、商品的信息等。应使用程序读取数据时,一般是先从缓存中读取,假如读取不到或者数据已失效,再访问磁盘数据库,并将数据再次写入缓存。

缓存的基本原理是将数据存储在相对有较高访问速度的存储介质中,比方内存。一方面缓存访问速度快,另一方面,假如缓存的数据是需要经过计算解决得到的,那用缓存还能减少服务器解决数据的计算时间。

用缓存并不是没有缺陷:内存资源是比较宝贵的,不可可以将所有数据都缓存,一般频繁修改的数据不建议用缓存,这会导致数据不一致。

网站数据缓存一般遵循二八定律,即80%的访问都在20%的数据上。所以,一般将这20%的数据缓存,能起到改善系统性可以,提高服务器读取效率。

2、异步操作

用消息队列将调使用异步化,能改善网站系统的性可以。

在不用消息队列的情况下,使用户的请求直接写入数据库,在高并发的情况下,会对数据库造成非常大的压力,也会推迟响应时间。

在用消息队列后,使用户请求的数据会发送给消息队列服务器,消息队列服务器会开启进程,将数据异步写入数据库。消息队列服务器的解决速度远超过数据库,因而使用户的响应推迟可得到改善。

消息队列能将短时间内的高并发产生的事务消息,存储在消息队列中,从而提高网站的并发解决可以力。在电商网站的促销活动中,正当用消息队列,能抵御短时间内使用户高并发的冲击。

3、用集群

在网站高并发访问的情况下,用负载均衡技术,能为一个应使用构建由多台服务器组成的服务器集群,将并发访问请求,分发到多台服务器上解决,避免单一服务器因负载过大,而导致响应推迟。

4、代码优化

网站的业务逻辑代码主要部署在应使用服务器上,需要解决复杂的并发事务。正当优化业务代码,也能改善网站性可以。

任何web网站都会遇到多使用户的并发访问,大型网站的并发使用户会达到数万。每个使用户请求都会创立一个独立的系统进程去解决。因为线程比进程更轻量,占使用资源更少,所以,目前主流的web应使用服务器都采使用多线程的方式,解决并发使用户的请求,因而,网站开发多数都是多线程编程。

尚学堂百战程序员之网站性可以

用多线程的另一个起因是服务器有多个CPU,现在手机都到了8核CPU的时代,一般的服务器至少是16核CPU,要想最大限度的用这些CPU,必需启动多线程。

那么,启动多少线程合适呢?

启动线程数和CPU内核数量成正比,和IO等待时间成正比。假如都是计算型的任务,那么线程数最多不要超过CPU内核数,由于启动再多,CPU也来不及调使用。假如任务是等待读写磁盘、网络响应,那么多启动线程会提高任务并发度,提高服务器性可以。

或者者使用个简化的公式来形容:

启动线程数 = (任务执行时间/(任务执行事件 - IO等待时间)) * CPU内核数

5、存储优化

数据的读写是网站解决并发访问的另一瓶颈。用缓存尽管能处理一部分数据读写压力,但很多时候,磁盘依然是系统最严重的瓶颈。而且磁盘是网站最重要的资产,磁盘的可使用性和容错性也至关重要。

机械硬盘和固态硬盘 机械硬盘是目前最常使用的硬盘,通过马达带动磁头到指定磁盘的位置访问数据,每次访问数据都需要移动磁头,在读取连续数据和随机访问上,磁头移动的次数相差巨大,因而机械硬盘的性可以体现差别巨大,读写效率较低。而在网站应使用中,大多数数据的访问都是随机的,在这种情况下,固态硬盘具备更高的性可以。但目前固态硬盘在工艺上、数据可靠性上还有待提升,因而固态硬盘的用尚未普及,从发展趋势看,取代机械硬盘应该是迟早的事情。

总结:

网站性可以优化的主要内容是改善高并发使用户访问情况下的网站响应速度,最终目的是改善使用户的体验。但性可以优化本身也是需要综合考虑的。比方说,性可以提高一倍,服务器数量也要添加一倍,这样的优化能否能考虑?

技术是由业务驱动的,离开业务的支撑,任何性可以优化都是空中楼阁。

后记:对于大部分转行的人来说,找机会把自己的基础知识补齐,边工作边补基础知识,真心很重要。

我们相信人人都能成为一个IT大神,现在开始,选择一条阳光大道,助你入门,学习的路上不再迷茫。这里是北京尚学堂,初学者转行到IT行业的聚集地。"

  • 全部评论(0)
最新发布的资讯信息
【系统环境|】web前端开发需要学习哪些技术(2019-09-17 18:00)
【系统环境|】学习web前端开发是正确的选择(2019-09-15 16:55)
【系统环境|】干货整理!零基础html5网站开发学习步骤方法(保存不后悔)(2019-09-10 16:27)
【系统环境|】「前端入门」前端基本概念(2019-09-07 21:36)
【系统环境|】小白入门学习web前端,这些干货不能少(2019-09-05 20:59)
【系统环境|】不是计算机专业,哪个专业更适合学习web前端(2019-09-03 20:31)
【系统环境|】入行web前端开发可以做什么工作(2019-09-02 20:51)
【系统环境|】什么是Web前端呢?为什么说web前端开发人员的薪资高、前景好呢?(2019-08-31 20:55)
【系统环境|】2019年Web前端开发的8个趋势,你知道几个?(2019-08-29 16:23)
【系统环境|】学习web前端,掌握这些,才有底气跟面试官提薪资(2019-08-28 15:23)
手机二维码手机访问领取大礼包
返回顶部