精华内容
下载资源
问答
  • web 端渲染优化指

    千次阅读 2017-05-16 10:48:28
    web端近年来发展十分迅速,网页在 native app 中的占比也不断增加,但H5应用的渲染方式,刷新方式与 native 应用有很大的区别...带来的问题是用户会感觉刷新慢,易卡顿,体验差,本篇博文主要针对渲染速度问题进行优化~

    web 端渲染优化指北

    前言

    web端近年来发展十分迅速,网页在 native app 中的占比也不断增加,但H5应用的渲染方式,刷新方式与 native 应用有很大的区别。带来的问题是用户会感觉刷新慢,易卡顿,体验差,本篇博文主要针对渲染速度问题进行优化~

    渲染原理

    渲染原理图

    从上图可知web界面的渲染原理,这样我们就可以针对此进行优化了,先强调一下html的加载原理,我们常说的”加载是并行的,执行是串行的“的结果。html开始加载的时候,浏览器会将页面外联的css文件和js文件并行加载,如果一个文件还没回来,它后面的代码是不会执行的。

    优化渲染速度

    大概从如下几个方面进行优化:

    1. 采用SPA开发模式
    2. 采用 Virtual DOM 进行界面更新优化
    3. 服务端渲染
    4. 首屏渲染速度优化
    5. 代码自动化优化审查
    6. 懒加载
    7. 预加载
    8. 资源压缩
    9. 开发规范

    SPA开发模式

    由于传统多页模式开发,界面切换造成了频繁的网络请求,导致界面渲染效率十分低下,来自Alexander Aghassipour和Shajith Chacko发表的这篇文章讲述了单页应用程序是如何创建而来的。
    单页面应用是指用户通过浏览器加载独立的HTML页面并且无需离开此导航页面,这也是其独特的优势所在。对用户操作来说,一旦加载和执行单个页面应用程序通常会有更多的响应,这就需要返回到后端Web服务器,而单页面应用为用户提供了更接近一个本地移动或桌面应用程序的体验。

    单页Web应用程序的优点:

    首先,最大的好处是用户体验,对于内容的改动不需要加载整个页面。这样做好处颇多,因为数据层和UI的分离,可以重新编写一个原生的移动设备应用程序而不用(对原有数据服务部分)大动干戈。
    单页面Web应用层程序最根本的优点是高效。它对服务器压力很小,消耗更少的带宽,能够与面向服务的架构更好地结合。

    单页Web应用程序的缺点:

    虽然还有一些历史遗留问题(大部分是针对HTML5的改进)以及SEO。如果你看中SEO,那就不应该在页面上使用JavaScript,你应该使用网站而不是Web应用。目前该技术还存在一些争议,但这并不是重点,因为这种类型的体系架构为SAAS Web Apps提供了一个极大的可用性。

    单页Web应用程序的结构很简单:首先传递HTML文档框架;然后使用JavaScript修改页面;紧接着再从服务器传递更多数据然后再修改页面,如此循环。从性能的角度看,在现代浏览器中单页面Web App已经能够和普通应用程序相媲美,而且几乎所有的操作系统都支持现代的浏览器。使用HTML+CSS+Javascript编写应用程序,能使更多的人们都加入到程序开发的行列。

    在单页开发框架中,我建议使用vue 2,下图是一些关于界面渲染相关的数据对比:

    Type Vue 2(单位/s) React 15(单位/s) Angular 2(单位/s)
    create rows Duration for creating 1000 rows after the page loaded. 171.36 227.44 198.06
    replace all rows Duration for updating all 1000 rows of the table (with 5 warmup iterations) 68.76 211.71 178.45
    remove row Duration to remove a row. (with 5 warmup iterations). 64.11 49.42 19.14
    partial update Time to update the text of every 10th row (with 5 warmup iterations) 22.17 14.77 11.42
    ready memory Memory usage after page load 3.43 4.64 15.45

    Virtual DOM

    首先强调一下,Virtual DOM 并没有提升首屏渲染速度,而且它还延长了首屏渲染速度,但是 Virtual DOM 提升的是视图局部更新的速度,能够依靠映射关系快速查找到真正的 dom 节点。

    在Virtual DOM方案中,更新浏览器的DOM分三个步骤:

    1. 只要数据发生改变,就会重新生成一个完整的Virtual DOM
    2. 重新计算比较出新的和之前的Virtual DOM的差异
    3. 更新真实DOM中真正发生改变的部分,就像是给DOM打了个补丁

    服务端渲染

    稍后补全~

    首屏渲染速度优化

    做移动web页面,受移动网络网速和终端性能影响,我们经常要关注首屏内容展示时间(以下简称首屏时间)这个指标,它衡量着我们的页面是否能在用户耐心消磨完之前展示出来,很大程度影响着用户的使用满意度。

    方案:

    1. 三秒种渲染完成首屏指标
    2. 首屏加载3秒完成或使用Loading
    3. 基于联通3G网络平均338KB/s(2.71Mb/s),所以首屏资源不应超过1014KB
    4. 所有影响首屏加载和渲染的代码应在处理逻辑中后置

    按需加载

    将不影响首屏的资源和当前屏幕资源不用的资源放到用户需要时才加载,可以大大提升重要资源的显示速度和降低总体流量
    PS:按需加载会导致大量重绘,影响渲染性能

    1. LazyLoad
    2. 滚屏加载
    3. 通过Media Query加载

    预加载

    大型重资源页面(如游戏)可使用增加Loading的方法,资源加载完成后再显示页面。但Loading时间过长,会造成用户流失
    对用户行为分析,可以在当前页加载下一页资源,提升速度

    1. 可感知Loading(如进入空间游戏的Loading)
    2. 不可感知的Loading(如提前加载下一页)

    资源压缩

    减少资源大小可以加快网页显示速度,所以要对HTML、CSS、JavaScript等进行代码压缩,并在服务器端设置GZip

    1. 压缩(例如,多余的空格、换行符和缩进)
    2. 启用GZip
    3. 控制图片质量(使用 tinypng 进行压缩)

    开发建议

    html注意事项

    加载是并行的:

    1. 别再把 JsEndTime – JsStartTime 的结果成为js文件的加载执行时间(除非你没有外联css文件),不然会被内行人取笑滴;
    2. css文件的阻塞会影响后面js代码的执行,自然也包括html代码的执行,即是说此时你的页面就是空白的。所以css文件尽量内联,你可以让构建工具帮你忙;

    执行是串行的:

    1. 无关紧要”的js不要放在负责渲染的js前面,这里的“无关紧要”是指和首屏渲染无关,如数据上报组件。我们可以选择将要上报的数据临时存起来,先继续执行渲染的js,等负责渲染的js执行完再加载上报组件再上报。甚至连zepto之类的库我们也可以放后面,把渲染相关的代码抽离出来并用原生js书写,放到最前面
    2. 可以看到,动态加载的js的执行是不会受到html后面外联的js的阻塞的影响,即是说,它的执行和后面js的执行顺序是不确定的。因此我们要小心处理好文件的依赖关系。当然还可以采用最不容易出错的方法:负责动态加载js的文件是html里面外联的最后一个文件

    html使用Viewport

    Viewport可以加速页面的渲染,请使用以下代码

    <meta name="viewport" content="width=device-width, initial-scale=1">

    减少Dom节点

    Dom节点太多影响页面的渲染,应尽量减少Dom节点

    减少HTTP请求

    因为手机浏览器同时响应请求为4个请求(Android支持4个,iOS 5后可支持6个),所以要尽量减少页面的请求数,首次加载同时请求数不能超过4个

    1. 合并CSS、JavaScript
    2. 合并小图片,使用雪碧图

    无阻塞

    写在HTML头部的JavaScript(无异步),和写在HTML标签中的Style会阻塞页面的渲染,因此CSS放在页面头部并使用Link方式引入,避免在HTML标签中写Style,JavaScript放在页面尾部或使用异步方式加载

    减少Cookie

    Cookie会影响加载速度,所以静态资源域名不使用Cookie

    避免重定向

    重定向会影响加载速度,所以在服务器正确设置避免重定向

    异步加载第三方资源

    第三方资源不可控会影响页面的加载和显示,因此要异步加载第三方资源

    脚本执行优化

    1. CSS写在头部,JavaScript写在尾部或异步
    2. 避免图片和iFrame等的空Src(空Src会重新加载当前页面,影响速度和效率)
    3. 尽量避免重设图片大小(重设图片大小是指在页面、CSS、JavaScript等中多次重置图片大小,多次重设图片大小会引发图片的多次重绘,影响性能)
    4. 图片尽量避免使用DataURL(DataURL图片没有使用图片的压缩算法文件会变大,并且要解码后再渲染,加载慢耗时长)
    展开全文
  • zookeeper服务优化

    千次阅读 2015-12-02 22:00:05
    5. zoo.cfg文件中forceSync=no,这个对写请求的性能提升很有帮助,是每次写请求的数据都要从pagecache中固化到磁盘上,才算是写成功返回。当写请求数量到达一定程度的时候,后续写请求会等待前面写请求的forceSync...

    1.快照文件和事务日志文件分别挂在不同磁盘。zoo.cfg文件中,dataDir是存放快照数据的,dataLogDir是存放事务日志的。zookeeper更新操作过程:先写事务日志,再写内存,周期性落到磁盘(刷新内存到快照文件)。事务日志的对写请求的性能影响很大,保证dataLogDir所在磁盘性能良好、没有竞争者。

    2. 默认jvm没有配置Xmx、Xms等信息,可以在conf目录下创建java.env文件(内存堆空间一定要小于机器内存,避免使用swap)
    export JVMFLAGS="-Xms2048m -Xmx2048m $JVMFLAGS"

    3. 按天出zookeeper日志,避免zookeeper.out文件过大。

    zkEnv.sh文件日志输出方式从CONSOLE改为ROLLINGFILE;

    if [ "x${ZOO_LOG4J_PROP}" = "x" ]
    then
    #   ZOO_LOG4J_PROP="INFO,CONSOLE"
        ZOO_LOG4J_PROP="INFO,ROLLINGFILE"
    fi
    

    conf/log4j.properties设置为按天生成文件DailyRollingFileAppender

    #zookeeper.root.logger=INFO, CONSOLE
    zookeeper.root.logger=INFO, ROLLINGFIL
    
    log4j.appender.ROLLINGFILE=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.ROLLINGFILE.Threshold=${zookeeper.log.threshold}
    log4j.appender.ROLLINGFILE.File=${zookeeper.log.dir}/${zookeeper.log.file}
    log4j.appender.ROLLINGFILE.DatePattern='.'yyyy-MM-dd
    
    # Max log file size of 10MB
    #log4j.appender.ROLLINGFILE.MaxFileSize=10MB

    4. zoo.cfg文件中skipACL=yes,忽略ACL验证,可以减少权限验证的相关操作,提升一点性能。

    5. zoo.cfg文件中forceSync=no,这个对写请求的性能提升很有帮助,是指每次写请求的数据都要从pagecache中固化到磁盘上,才算是写成功返回。当写请求数量到达一定程度的时候,后续写请求会等待前面写请求的forceSync操作,造成一定延时。如果追求低延时的写请求,配置forceSync=no,数据写到pagecache后就返回。但是机器断电的时候,pagecache中的数据有可能丢失。
    默认为forceSync=yes,为yes可以设置fsync.warningthresholdms=50 如果数据固化到磁盘的操作fsync超过50ms的时候,将会在zookeeper.out中输出一条warn日志(forceSync=yes有效)。

    6. globalOutstandingLimit=100000 客户端连接过多,限制客户端请求,避免OOM

    7. zoo.cfg文件中preAllocSize=64M 日志文件预分配大小; snapCount=100,000 多少次写事务,生成一个快照如果快照生成频繁可适当调大该参数。
    一般zk的应用提倡读大于写,性能较好(10:1),存储元数据用来协调分布式数据最终一致。写过于频繁使用缓存更好

    8. 日志文件自动清除(如果追求性能,可手动清除)
    autopurge.snapRetainCount=3 # The number of snapshots to retain in dataDir
    autopurge.purgeInterval=24 # Purge task interval in hours Set to "0" to disable auto purge feature

    展开全文
  • 应用服务器性能优化总结

    万次阅读 2016-04-10 21:59:29
    应用服务器就是处理网站业务的服务器,网站的业务代码都部署在这里,是网站开发最复杂,变化最多的地方,优化手段主要有缓存、集群、异步等。一、分布式缓存在整个网站应用中,缓存几乎无处不在,既存在于浏览器也...

    别人推荐看的《大型网站技术架构》买回来有一年多了,一直没看,看着落满灰尘的书,真的是于心不忍。趁着这个周末没事,赶快来研究一下,顺便做个笔记。

    应用服务器就是处理网站业务的服务器,网站的业务代码都部署在这里,是网站开发最复杂,变化最多的地方,优化手段主要有缓存、集群、异步等。

    一、分布式缓存

    在整个网站应用中,缓存几乎无处不在,既存在于浏览器也存在于应用服务器和数据库服务器;既可以对数据缓存,也可以对文件缓存,还可以对页面片段缓存。合理使用缓存,对网站性能优化意义重大。
    网站性能优化第一定律:优先考虑使用缓存。

    1、缓存的基本原理

    缓存是指将数据存储在相对较高访问速度的存储介质中。

    (1)访问速度快,减少数据访问时间;
    (2)如果缓存的数据进过计算处理得到的,那么被缓存的数据无需重复计算即可直接使用,因此缓存还起到减少计算时间的作用。

    缓存的本质是一个内存Hash表,以一对Key、Value的形式存储在内存Hash表中,读写时间复杂度为O(1)。

    缓存主要用来存放那些读写比很高、很少变化的数据,如商品的类目信息,热门词的搜索列表信息,热门商品信息等。应用程序读取数据时,先到缓存中读取,如果读取不到或数据已失效,再访问数据库,并将数据写入缓存。

    这里写图片描述

    网站数据访问通常遵循二八定律,即80%的访问落在20%的数据上,因此利用Hash表和内存的高速访问特性,将这20%的数据缓存起来,可很好地改善系统性能,提高数据存取速度,降低存储访问压力。

    2、合理使用缓存

    不合理使用缓存非但不能提高系统的性能,还会成为系统的累赘,甚至风险。

    频繁修改的数据

    如果缓存中保存的是频繁修改的数据,就会出现数据写入缓存后,应用还来不及读取缓存,数据就已经失效,徒增系统负担。一般来说,数据的读写比在2:1(写入一次缓存,在数据更新前至少读取两次)以上,缓存才有意义。

    没有热点的访问

    如果应用系统访问数据没有热点,不遵循二八定律,那么缓存就没有意义。

    数据不一致与脏读

    一般会对缓存的数据设置失效时间,一旦超过失效时间,就要从数据库中重新加载。因此要容忍一定时间的数据不一致,如卖家已经编辑了商品属性,但是需要过一段时间才能被买家看到。还有一种策略是数据更新立即更新缓存,不过这也会带来更多系统开销和事务一致性问题。

    缓存可用性

    缓存会承担大部分数据库访问压力,数据库已经习惯了有缓存的日子,所以当缓存服务崩溃时,数据库会因为完全不能承受如此大压力而宕机,导致网站不可用。这种情况被称作缓存雪崩,发生这种故障,甚至不能简单地重启缓存服务器和数据库服务器来恢复。
    实践中,有的网站通过缓存热备份等手段提高缓存可用性:当某台缓存服务器宕机时,将缓存访问切换到热备服务器上。但这种设计有违缓存的初衷,缓存根本就不应该当做一个可靠的数据源来使用。
    通过分布式缓存服务器集群,将缓存数据分布到集群多台服务器上可在一定程度上改善缓存的可用性。当一台缓存服务器宕机时,只有部分缓存数据丢失,重新从数据库加载这部分数据不会产生很大的影响。

    缓存预热(warm up)

    缓存中存放的是热点数据,热点数据又是缓存系统利用LRU(最近最久未用算法)对不断访问的数据筛选淘汰出来,这个过程需要花费较长的时间。新系统的缓存系统如果没有任何数据,在重建缓存数据的过程中,系统的性能和数据库负载都不太好,那么最好在缓存系统启动时就把热点数据加载好,这个缓存预加载手段叫缓存预热。对于一些元数据如城市地名列表、类目信息,可以在启动时加载数据库中全部数据到缓存进行预热。

    缓存穿透

    如果因为不恰当的业务、或者恶意攻击持续高并发地请求某个不存在的数据,由于缓存没有保存该数据,所有的请求都会落到数据库上,会对数据库造成压力,甚至崩溃。一个简单的对策是将不存在的数据也缓存起来(其value为null)。

    3、分布式缓存架构

    分布式缓存指缓存部署在多个服务器组成的集群中,以集群方式提供缓存服务,其架构方式有两种,一种是以JBoss Cache为代表的需要更新同步的分布式缓存,一种是以Memcached为代表的不互相通信的分布式缓存。

    JBoss Cache在集群中所有服务器中保存相同的缓存数据,当某台服务器有缓存数据更新,就会通知其他机器更新或清除缓存数据。 它通常将应用程序和缓存部署在同一台服务器上,但受限于单一服务器的内存空间;当集群规模较大的时候,缓存更新需要同步到所有机器,代价惊人。因此这种方案多见于企业应用系统中。

    这里写图片描述

    Memcached采用一种集中式的缓存集群管理(互不通信的分布式架构方式)。缓存与应用分离部署,缓存系统部署在一组专门的服务器上,应用程序通过一致性Hash等路由算法选择缓存服务器远程访问数据,缓存服务器之间不通信,集群规模可以很容易地实现扩容,具有良好的伸缩性。详细请看LZ其他文章。

    Memcached有以下几个特性:

    (1)简单的通信协议。Memcached使用TCP协议(UDP也支持)通信;
    (2)丰富的客户端程序。
    (3)高性能的网络通信。Memcached服务端通信模块基于Libevent,一个支持事件触发的网络通信程序库,具有稳定的长连接。
    (4)高效的内存管理。
    (5)互不通信的服务器集群架构。

    二、异步操作

    使用消息队列将调用异步化(生产者–消费者模式),可改善网站的扩展性,还可以改善系统的性能。

    在不使用消息队列的情况下,用户的请求数据直接写入数据库,在高并发的情况下,会对数据库造成巨大压力,使得响应延迟加剧。在使用消息队列后,用户请求的数据发送给消息队列后立即返回,再由消息队列的消费者进程(通常情况下,该进程独立部署在专门的服务器集群上)从消息队列中获取数据,异步写入数据库。由于消息队列服务器处理速度远快于服务器(消息队列服务器也比数据库具有更好的伸缩性)。

    消息队列具有很好的削峰作用–通过异步处理,将短时间高并发产生的事务消息存储在消息队列中,从而削平高峰期的并发事务。

    需要注意的是,由于数据写入消息队列后立即返回给用户,数据在后续的业务校验、写数据库等操作可能失败,因此在使用消息队列进行业务异步处理后,需要适当修改业务流程进行配合,如订单提交后,订单数据写入消息队列,不能立即返回用户订单提交成功,需要在消息队列的订单消费者进程真正处理完后,甚至商品出库后,再通过电子邮件或SMS消息通知用户订单成功,以免交易纠纷。有关消息队列的详细信息请参看LZ的其他博客。

    任何可以晚点做的事情都应该晚点再做。

    三、使用集群

    在网站高并发访问的场景下,使用负载均衡技术为一个应用构建一个由多台服务器组成的服务器集群,将并发访问请求分发到多台服务器上处理,避免单一服务器因负载压力过大而响应缓慢,使用户请求具有更好的响应延迟特性。

    这里写图片描述

    四、代码优化

    多线程

    从资源利用的角度看,使用多线程的原因主要有两个:IO阻塞与多CPU。当前线程进行IO处理的时候,会被阻塞释放CPU以等待IO操作完成,由于IO操作(不管是磁盘IO还是网络IO)通常都需要较长的时间,这时CPU可以调度其他的线程进行处理。 理想的系统Load是既没有进程(线程)等待也没有CPU空闲,利用多线程IO阻塞与执行交替进行,可最大限度利用CPU资源。 使用多线程的另一个原因是服务器有多个CPU。

    简化启动线程估算公式:
    启动线程数 = [任务执行时间 / (任务执行时间 - IO等待时间)]*CPU内核数

    多线程编程一个需要注意的问题是线程安全问题,即多线程并发对某个资源进行修改,导致数据混乱。所有的资源—对象、内存、文件、数据库,乃至另一个线程都可能被多线程并发访问。

    编程上,解决线程安全的主要手段有:

    (1)将对象设计为无状态对象。所谓无状态对象是指对象本身不存储状态信息(对象无成员变量,或者成员变量也是无状态对象),不过从面向对象设计的角度看,无状态对象是一种不良设计。
    (2)使用局部对象。即在方法内部创建对象,这些对象会被每个进入该方法的线程创建,除非程序有意识地将这些对象传递给其他线程,否则不会出现对象被多线程并发访问的情形。
    (3)并发访问资源时使用锁。即多线程访问资源的时候,通过锁的方式使多线程并发操作转化为顺序操作,从而避免资源被并发修改。

    资源复用

    系统运行时,要尽量减少那些开销很大的系统资源的创建和销毁,比如数据库连接、网络通信连接、线程、复杂对象等。从编程角度,资源复用主要有两种模式:单例(Singleton)和对象池(Object Pool)。

    单例虽然是GoF经典设计模式中较多被诟病的一个模式,但由于目前Web开发中主要使用贫血模式,从Service到Dao都是些无状态对象,无需重复创建,使用单例模式也就自然而然了。

    对象池模式通过复用对象实例,减少对象创建和资源消耗。对于数据库连接对象,每次创建连接,数据库服务端都需要创建专门的资源以应对,因此频繁创建关闭数据库连接,对数据库服务器是灾难性的,同时频繁创建关闭连接也需要花费较长的时间。因此实践中,应用程序的数据库连接基本都使用连接池(Connection Pool)的方式,数据库连接对象创建好以后,将连接对象放入对象池容器中,应用程序要连接的时候,就从对象池中获取一个空闲的连接使用,使用完毕再将该对象归还到对象池中即可,不需要创建新的连接。

    数据结构

    早期关于程序的一个定义是,程序就是数据结构+算法,数据结构对于编程的重要性不言而喻。在不同场景中合理使用数据结构,灵活组合各种数据结构改善数据读写和计算特性可极大优化程序的性能。

    垃圾回收

    理解垃圾回收机制有助于程序优化和参数调优,以及编写内存安全的代码。

    展开全文
  • Linux服务器内核参数优化

    万次阅读 2018-06-17 00:56:59
    所谓Linux服务器内核参数优化(适合Apache、Nginx、Squid等多种web应用,特殊的业务有可能需要做略微调整),主要是在Linux系统中针对业务服务应用而进行的系统内核参数调整,优化并无一定的标准。下面是生产环境...

          所谓Linux服务器内核参数优化(适合Apache、Nginx、Squid等多种web应用,特殊的业务有可能需要做略微调整),主要是指在Linux系统中针对业务服务应用而进行的系统内核参数调整,优化并无一定的标准。下面是生产环境下Linux常见的内核优化为例子进行说明,供大家参考。

          优化的方法是执行vim /etc/sysctl.conf命令到文件结尾,然后拷贝如下内容并保存。


    net.ipv4.tcp_fin_timeout = 2

    net.ipv4.tcp_tw_reuse = 1

    net.ivp4.tcp_tw_recycle = 1

    net.ivp4.tcp_syncookies = 1

    net.ivp4.tcp_keepalive_time = 600

    net.ivp4.ip_local_port_range = 4000      65000

    net.ivp4.tcp_max_syn_backlog = 16384

    net.ipv4.tcp_max_tw_buckets = 36000

    net.ivp4.route.gc_timeout = 100

    net.ivp4.tcp_syn_retries = 1

    net.ivp4.tcp_synack_retries = 1

    net.core.somaxconn = 16384

    net.core.netdev_max_backlog = 16384

    net.ivp4.tcp_max_orphans = 16384

    #以下参数是对iptables防火墙的优化,防火墙不开会提示,可以忽略不理

    net.nf_conntrack_max = 25000000

    net.netfilter.nf_conntrack_tcp_timeout_established = 180

    net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120

    net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60

    net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120

    将上面的内核参数加入/etc/sysctl.conf文件中,然后执行如下命令使之生效:



          如果是在Centos6环境中,必须开启iptables服务才不会出现上面显示的报错,其实报错也可以暂时不理,这时针对防火墙的优化,而此时防火墙并没有开启,将来开启就没问题了。

          sysctl.conf内核文件中的参数含义见表1 。

    表1:





    展开全文
  • Oracle服务器性能优化

    千次阅读 2007-07-02 12:53:00
    几个简单的步骤大幅提高Oracle性能--我优化数据库的三板斧 数据库优化的讨论可以说是一个永恒的主题。资深的Oracle优化人员通常会要求提出性能问题的人对数据库做一个statspack,贴出数据库配置等等。还有的人认为...
  • 服务器性能优化的正确姿势

    千次阅读 2017-08-25 09:03:08
    导言:运维工作中除了要维持平台的稳定运行以外,还得对服务器的性能进行优化,让...什么是性能? 性能最通俗的衡量指标就是“时间”,CPU的使用率的是 CPU用于计算的时间占比,磁盘使用率的是磁盘操作的时间占
  • 一、SQL语句优化 1-1.MySQL慢日志 1).慢日志开启方式和存储格式  如何发现有问题的SQL? 使用Mysql慢日志对有效率问题的SQL进行监控 前期准备 mysql> show variables like '%log_queri%'; +----------------------...
  • TDK是什么意思,TDK怎么写?SEO中的TDK分别代表标题,关键词,描述,那么对于TDK如何写能提高网站关键词排名呢?一个好的TDK充分证明该...下面yetaoaiueo跟大家说说SEO中的TDK是什么意思,怎么写利于SEO优化?   ...
  • Linux NFS服务器性能优化

    千次阅读 2012-11-15 16:35:02
    NFS由Sun公司开发,目前已经成为文件服务的一种标准(RFC1904,RFC1813)。其最大的功能就是可以通过网络,让不同操作系统的计算机可以共享数据,所以也可以将它看做是一个文件服务器。NFS文件服务器是Linux最常见...
  • 优化WebLogic 服务器性能参数

    千次阅读 2007-01-05 23:31:00
    优化WebLogic 服务器性能参数WebLogic 配置文件(config.xml)包含了大量很直观的与性能有关的参数,能通过配置环境与应用程序得到很好的优化。基于系统的需要调整这些参数不仅能改善单个点的性能,而且能提高整个...
  • 高并发环境下服务器该如何优化

    千次阅读 2018-07-18 22:58:49
    什么是服务器并发处理能力 一台服务器在单位时间里能处理的请求越多,服务器的能力越高,也就是服务器并发处理能力越强。   有什么方法衡量服务器并发处理能力 1. 吞吐率 吞吐率,单位时间里服务器处理的最大...
  • 史上最强Tomcat8性能优化

    万次阅读 多人点赞 2019-10-25 15:33:32
    文章目录授人以鱼不如授人以渔目的服务器资源Tomcat配置优化Linux环境安装运行Tomcat8AJP连接执行器(线程池)3种运行模式部署测试用的web项目查看服务器信息部署web应用使用Apache JMeter进行性能测试下载安装修改...
  • 关于如何优化Ubuntu系统性能,也是广大Ubuntu玩家最为关心的一个话题,在Ubuntu中文论坛上也总结了一些经验,多半是禁用一些服务来起到优化系统的目的,彻底性不高。本文将详细从原理角度阐述Ubuntu系统优化的关键性...
  • 这里的网关服务器(简称gated吧)是逻辑服务器前面的那排服务器,一般有几个主要功能:  (1)接入  (2)加解密  (3)解缩压 gated一个特点是不处理逻辑,每个连接之间不存在交互关系,这点非常关键,是我...
  • 修改TOMCAT服务器配置,优化性能

    万次阅读 2014-07-30 15:57:09
    1、加大tomcat可以使用的内存JAVA_OPTS='-Xms【初始化内存大小】-Xmx【可以使用的最大内存】'JAVA_OPTS="-Xms1500m -Xmx1500m -Xss1024K -XX:PermSize=128m -XX:MaxPermSize=256m -...Xmx1024m'参数说明:-Xms 是
  • 本文分析了服务网格数据面的性能瓶颈,并引出基于用户态协议栈的加速方案。详细介绍了VPP+VCL的用户态协议栈开源社区方案,其针对服务网格sidecar加速的优势和不足,以及网易数帆做了哪些增强,从而实现对服务网格...
  • 链路层的双链路--大型服务器的优化体系 一直在潜水,不过朋友可在相关QQ群找我,哈也可以加我工作QQ; 之前有朋友问过,链路层的东西,其实很抽象,刚好看到相关的内容,在此分享一下;   可以...
  • Linux服务器性能评估与优化(一)--CPU

    万次阅读 多人点赞 2015-01-18 11:22:15
    之前文章《Linux服务器性能评估与优化(一)》太长,阅读不方便,因此拆分成系列博文: 《Linux服务器性能评估与优化(一)--CPU》 《Linux服务器性能评估与优化(二)--内存》 《Linux服务器性能评估与优化(三)--磁盘i...
  • Web前端网站业务逻辑之前的部分,包括: 1.浏览器加载 2.网站视图模型 3.图片服务 4.CDN服务等 主要优化手段有优化浏览器访问,使用反向代理,CDN等。 1.浏览器访问优化 (1)减少http请求 HTTP协议是无状态的应用层...
  • 网络优化需要学习什么

    千次阅读 2018-08-29 20:22:56
    1,seo,搜索引擎优化,这是网站优化最核心的东西,另外昆明华信智原再告诉你还有其他需要掌握的辅助技能.2,PS,掌握一定的PS你可以很方便的操作你得网站上的图片3,HTML + CSS,这也是基础的东西,需要基本掌握并...
  • 关于服务性能优化思考

    千次阅读 2017-03-06 23:58:35
    一、服务指标 1.应用性能指标  QPS/QPM  Response Meantime  TP 90/95/99 2.机器性能指标 1)内存和线程指标 JVM本身提供了一组管理的API,通过该API,我们可以获取得到JVM内部主要运行信息,包括内存各代...
  • 基于CBO的SQL优化和Oracle实例优化

    千次阅读 2017-12-08 22:21:33
    SQL优化是数据优化的重要方面,本文将分析Oracle自身的CBO优化,即基于成本的优化方法。Oracle为了自动的优化sql语句需要各种统计数据作为优化基础。外面会通过sql的追踪来分析sql的执行过程,消耗的资源信息。对于...
  • 网站的高性能架构--应用服务器优化

    万次阅读 2020-09-07 22:47:08
    缓存将数据存储在相对较高访问速度的存储介质中,并且无需重复计算即可直接使用。时间复杂度为O(1)。 2.异步操作:为了改善网站的扩展性,可以使用消息队列将调用异步化 3.使用集群 在网站高并发访问的情况下...
  • apache网站服务基础 以及httpd服务器的安装和基本配置一、apache简介1、apache的起源2、apache的特点1、开放源代码2、跨平台应用3、支持各种Web 编程语言4、模块化设计5、运行非常稳定6、良好的安全性二、编译安装...
  • Nginx作为web服务器,对于静态文件的优化有很多的长处在此我就将静态文件优化分为3步,实现高性能的读取 注:通常所的静态文件为:js,css,jpg,jpeg,png,gif,swf等 将Nginx作为前端反向代理,缓存静态...
  • 解析如何改善和优化 Web 服务器性能

    千次阅读 2015-07-07 23:46:54
    Web服务器概述  ... Web服务器是驻留在因特网上某种类型计算机的程序。它是在网络中信息提供者基干HTTP的为实现信息发布、资料查询、数据处理等诸多应用搭建基本平台的服务器,其主要功能是提供网上信息
  • 大数据驱动5G网络与服务优化

    千次阅读 2019-01-23 14:03:29
    针对5G网络的新特点,系统阐述了大数据在5G网络中的大规模天线与分布式天线、无线接入网资源管理、异构接入组网、云网、移动边缘计算、终端与云端的智能、SDN与NFV、网络切片、跨层联合优化、源选路优化等方面可能的...
  • linux服务器修改mtu值优化cpu

    千次阅读 2018-07-17 19:33:54
    1、什么是jumbo frames Jumbo frames 是比标准Ethernet Frames长的frame,即比1518/1522 bit大的frames,Jumbo frame的大小是每个设备厂商规定的,不属于IEEE标准;Jumbo frame 在full-duplex 的Ethernet网络上...
  • Java Web 服务性能优化实践

    千次阅读 2012-12-25 11:26:25
    来源:IBM developerworks简介: 本文介绍如何提升 Java Web 服务性能,主要介绍了三种方法:一是采用 Web 服务的异步调用,二是引入 Web 服务批处理模式,三是压缩 SOAP 消息。重点介绍在编程过程中如何使用异步 ...
  • C++服务编译耗时优化原理及实践

    万次阅读 多人点赞 2020-12-10 19:59:00
    出于性能的考虑,底层的基础服务通过C++语言实现,其中我们负责的深度查询理解服务(Deep Query Understanding,下文简称DQU)也面临着编译耗时较长这个问题,整个服务代码在优化前编译时间需要二十分钟左右(32核...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 292,854
精华内容 117,141
关键字:

优化服务指的是什么