企业网络服务器优化配置?
随着网站业务的发展和用户的增加一台服务器已经不能满足需求。大量用户的访问导致访问速度越来越慢,数据越来越多也会导致存储空间不足。有必要将应用程序与数据分开。将应用和数据分离后,整个网站使用三个服务器,即应用服务器、文件服务器和数据库服务器。
这三种服务器对硬件资源的要求越来越高,它们需要更强大的CPU、更快的磁盘和更大的内存来支持这些服务器。
数据和日志文件分开存放在不同磁盘上
数据文件和日志文件的操作会产生大量的I/O 在可能的条件下 日志文件应该存放在一个与数据和索引所在的数据文件不同的硬盘上以分散I/O 同时还有利于数据库的灾难恢复
tempdb数据库单独存放在不同磁盘上
tempdb数据库是其他所有数据库都有可能使用的临时数据库 当使用select into 在没建立索引的列上执行Orderby时就会在tempdb数据库中产生临时表来存储中间数据 由于建立和填充临时表会严重降低系统性能 所以在尽可能的情况下应该为要排序的列建立索引 同时 tempdb数据库是为所有的用户和应用程序共享 所以如果一个用户占据了tempdb数据库的所有空间 则其他数据库将不能再使用 在可能的情况下 tempdb数据库应该单独放置在一个速度更快的硬盘或者RAID阵列上 分离tempdb数据库的I/O操作以加快性能 tempdb数据库应该有适当的容量 以满足用户的需要 应该允许tempdb数据库的空间自动增长 如果设置为不允许自动增长 当查询操作建立了超过tempdb数据库容量的临时表时 操作将无法完成
适当设置tempdb数据库的增长幅度 过小的增长幅度会产生更多的外部碎片 会占用更多的资源
避免热点数据的发生
在SQLServer 之前 对于没有聚集索引的表(堆集表) 新插入的数据行总是放置在磁盘中表的物理结尾处 如果并发的用户很多 同时在对表执行插入或者更新数据的操作 这将使得十分繁忙的表的末尾有可能产生数据热点 并发的I/O操作集中对少数页面进行操作 将导致数据库性能的下降
在SQLServer中 新的数据行的物理存储空间的分配是通过PFS页面来进行的 PFS页面的管理算法将插入操作进行分散来尽量避免产生数据热点
在设计应用系统和数据库时 要避免在自然增长的列上建立主键 这样有可能导致热点数据的发生
数据类型要少
在设计表时 尽可能少用数据类型 这样一个数据页面上可以保存最多的信息 数据页面就少 检索数据页面的I/O操作就少 所以效率会高
监控和整理空间碎片
文件空间的自动增长提高了自动管理性 但可能导致空间碎片 物理空间与数据的逻辑空间不再连续 定期的监控和空间碎片整理有利于提高I/O性能
使用主数据文件和次要数据文件
每个数据库的一个主数据文件属于主文件组 对于 GB左右规模的数据库 一个数据文件就够了 如果有次要数据文件 主数据文件中有管理次要数据文件的指针
采用多个数据文件时 主数据文件用于存储系统对象和表 次要数据文件用于存储用户数据和索引 在可能的情况下 主数据文件和次要数据文件可以单独存放在不同的磁盘上以分散I/O
如果采用多个数据文件 推荐主数据文件存储系统数据 次要数据文件存放用户数据和索引 这样会有助于提高I/O性能
利用文件组改善性能
在大型数据库系统中 可以考虑建立文件组来管理数据文件 将表和索引通过存放在不同的物理磁盘上进行性能监控比较 最后得出优化的存储方案
重视自动增长和自动收缩可能导致的性能问题
数据库文件的自动增长和自动收缩功能对于小型数据库的管理十分有用 但可能导致大型数据库的性能问题 因为文件的自然增长的同时会导致存储碎片的发生 当文件空间变大时 新分配的空间不一定和原来的空间连续 当文件空间收缩时 释放了部分空间 然而当文件又需要增长存储空间却不能利用原先释放的空间 也会导致碎片的发生
分离系统数据和用户数据
将系统数据库和用户数据库分开存放在不同的物理磁盘上有助于改善I/O性能 有助于数据库备份和恢复
优化索引设计
索引的设计对数据库的性能十分重要 具体不再阐述 可参见本博相关文章
定期更新统计信息
SQLServer默认使用基于代价的优化 所以统计信息的及时更新对于查询优化十分重要
定期的一致性检查
lishixinzhi/Article/program/SQLServer/201311/22434
为查询缓存优化你的查询 2 EXPLAIN 你的 SELECT 查询
3 当只要一行数据时使用 LIMIT 1
4 为搜索字段建索引
5 在Join表的时候使用相当类型的例,并将其索引
6 千万不要 ORDER BY RAND()
7 避免 SELECT
8 永远为每张表设置一个ID
9 使用 ENUM 而不是 VARCHAR
10 从 PROCEDURE ANALYSE() 取得建议
11 尽可能的使用 NOT NULL
12 Prepared Statements
13 无缓冲的查询
14 把IP地址存成 UNSIGNED INT
15 固定长度的表会更快
16 垂直分割
17 拆分大的 DELETE 或 INSERT 语句
18 越小的列会越快
19 选择正确的存储引擎
20 使用一个对象关系映射器(Object Relational Mapper)
21 小心“永久链接”
WEB服务器的优化方法简介
在对Web服务器进行优化时要根据真实的Web应用系统的情况和特征来采取有针对性地优化方案。首先根据不同的网络特性来看:在局域网中,降低M T U (最大传输单位)值对可以避免复制数据和求校验,而通过优化select系统调用或在Socket事件处理器中执行计算可以优化请求并发管理,利用HTTP1.1持续连接等都可以使系统性能得到相应的改善,但在广域网的环境下却没有什么大的作用,有的甚至恰恰相反。
例如:减少用户连接的MTU会增加服务器处理开销,采用网络延迟、带宽限制和使用HTTP1.1的持续连接在广域网中不会对服务器性能有什么大的影响。在广域网中,终端用户的请求的等待时间依赖于与网络延迟的程度,连接带宽限制情况。对于广域网,软硬中断在网络处理中占有很大的分量,所以采用适应的中断处理机制将会给服务器的响应能力带来很大的`好处;将服务器定位在内核和将基于进程设计改为基于事务处理也可以不同程度的提高服务器的性能。
关于Web负载,除了对Web负载的特征进行分析以便在评测时更好地再现真实负载之外,还要考虑Web服务器所在的网络环境下负载的情况。人们不仅要求服务器满足正常的工作负载要求,而且在高峰时期依然要保持较高的吞吐量。但是,服务器在高负载的情况下的性能表现往往低于人们的期望。
服务器过载的情况分为两种:一种为瞬间过载,即服务器暂时的、短时间的超载,这种情况主要是由服务器负载的特点引起的。大量的研究表明,Web请求的网络通信量分布是自相似的,即Web请求的通信量可以在很大范围内有显著的变化。这就造成服务器常常短时间的超载,但这样情况持续的时间一般很短。一种是服务器长时间的超载,这种情况一般是由某一特殊事件引起的,例如服务器受到拒绝服务攻击或者发生了“活锁现象。
第一种服务器超载情况是不可避免的,但第二种情况则可以通过对服务器改进来改善。抛开恶意的攻击不算,仔细分析服务器处理信息包的过程可以发现,造成系统在超载情况下性能下降的根本原因是高优先级处理阶段对CPU的不公平抢占。
因此,如果限制高优先级处理阶段对CPU的占用率,或者限制处理高优先级的CPU个数,都可以减轻或者消除收包活锁现象。具体的可以采用以下的方法:
一、采用轮询机制。为了减少中断对系统性能的影响,在负载正常的情况下采用“下半处理 的方法就非常有效,而在高负荷情况下,采用这个方法仍然会造成活锁现象,这时可以采用轮询机制。虽然这个方法在负载正常的情况下会造成资源的浪费和响应速度降低,但在网络数据频繁到达服务器时就要比中断驱动技术有效的多。
二、减少上下文切换。这种方法不管服务器在什么情况下对性能改善都很有效,这时可以采用引入核心级(kerne1—leve1)或硬件级数据流的方法来达到这个目的。核心级数据流是将数据从源通过系统总线进行转发而不需要使数据经过应用程序进程,这个过程中因为数据在内存中,因此需要CPU操作数据。
硬件级数据流则是将数据从源通过私有数据总线或是虽等DMA通过系统总线进行转发而不需要使数据经过应用程序进程,这个过程不需要CPU操作数据。这样在数据传输过程中不需要用户线程的介入,减少了数据被拷贝的次数,减少了上下文切换的开销。
三、减低中断的频率(主要是针对高负荷情况的方法)。这里主要有两种方法:批中断和暂时关闭中断。批中断可以在超载时有效的抑制活锁现象,但对服务器的性能没有什么根本性的改进;当系统出现接收活锁迹象时,可以采用暂时关闭中断的方法来缓和系统的负担,当系统缓存再次可用时可以再打开中断,但这种方法在接收缓存不够大的情况下会造成数据包丢失。
Web服务器性能是整个Web系统的关键环节,提高Web服务器的性能也是长久以来人们一直关注的课题。这里通过对Web服务器的工作原理和现有的优化方法和技术的分析,得出了对待Web服务器性能的提高也应该具体问题具体分析,要在具体的应用环境中,根据其特点来采取相应的优化措施。 ;
您好,我是仙人掌热点。网站运营的任何时候,网站访问速度都是至关重要的部分,它是网站友好体验中最基本的一项,如果访问体验都令人不满意,那么后期所做的营销推广模式都有可能徒劳无功,因为网络中客户的选择成本很低,加上普遍客户的耐心都不高,页面访问超过6秒客户就会选择离开,这对于一些流量本来就不高的企业网站来说无疑是雪上加霜。网站访问速度既然如此重要,今天笔者也要跟大家分享几个关于提升速度体验的方法,虽然网上有很多类似的文章和观点,但是大多数都是网站内部去解析,今天笔者要从服务器方面聊聊如何优化网站服务器提升网站访问速度。
大多数网站运营优化人员都知道通过页面优化来提升访问速度,当你已经完成了优化操作之后,发现没有什么大的改善,此时你就应该去思考是不是其它因素导致访问速度缓慢。比如:长期使用的服务器性能下降所致,为了保障业务不受影响,你或许应该对正在使用的服务器进行升级和优化了。
一、升级正在使用中的服务器
进行服务器升级工作之前,要考虑多方面的问题,是升级已有的服务器还是购置新的服务器设备须根据实际情况抉择。首先来说升级现有的服务器设备,一般来说网站运营到后期随着业务不断增加,多平台应用的开发对于服务器性能的要求也逐步提升,长而久之服务器遇到性能瓶颈也是情理之中的事情,对于这种情况,我们可以通过升级服务器(例如增加硬件设备或网络带宽)等相关配置来满足不断扩大的业务需求,那么服务器性能瓶颈问题就可以得到解决。再来说说购置新的服务器设备,也许有人会问为什么要重新购置呢,升级已有的服务器不可以吗这里笔者也当然想替大家节省一笔开支,但是根本问题在于大多数企业选购服务器时并不合理,加上网站建设之初为节约成本而选择了扩展性较差的服务器,导致即便是我们对现有的服务器进行升级,其性能提升的强度依然不够。此时,就需要重新购置服务器配合了,对于服务器的购置也有很多技巧,这里简单的做个推荐,如果用户群体是国内的建议选择国内知名的服务器供应商,若客户群体是遍布全球,大家可以选择香港服务器或美国服务器,除此之外,更重要的是要根据自身行业的特性做出合理的选择。
二、优化正在使用的服务器
不管是完成升级后的服务器,还是新购置的服务器,我们都要对其进行优化,从而提升服务器的性能以及利用率。下面从四个方面跟大家谈谈如何优化服务器:
要点一:尽可能的减少HTTP请求数
从客户访问网站页面到整个页面内容完全展现出来,这其中要花费较多的时间来下载各种Scripts、CSS样式表、Flash以及,而每一类下载都相当于一次HTTP请求,这样的请求越多网站被完全加载出来所花的时间会越长,意味着客户端的访问会很慢,那么此时就需要尽可能的减少HTTP请求数,通常我们可以直接把css和js写入到页面中,避免了外部的调用;或者我们可以把CSS文件和JS文件分来,在后台再进行合并,这样客户端浏览器相当于一次请求。总而言之,减少HTTP请求数我们可以通过减少外部各类文件的数量调用次数来达到其目的。
要点二:降低DNS查询时间
众所周知网络服务器端的域名和IP地址是相互对应的,当客户端发出请求时,计算机还需要通过域名和IP地址的相互转换来判断,而这个转换工作便是域名解析DNS,通常DNS的查询需要10~20毫秒时间,客户端浏览器也只会等待DNS查询结束之后才会加载此域名下的内容。因此,我们要加快页面的访问速度,就可以从降低DNS查询时间方面去做改善。
要点三:启用服务器Gzip压缩功能
对于大中型网站来说,页面的内容多且比较多样化,单个页面的大小可能是几百K以上了,客户端访问的时候下载会比较慢,此时我们可以采用服务器Gzip页面压缩功能,可以将一个大小为100K的页面文件压缩成25K以下,这样就可以减少网络传输的数量从而提高客户端访问速度。一般服务器都是可以使用Gzip压缩功能的,并且能够针对JS文件、CSS文件和Html进行压缩,多方面去进行优化网站访问速度。
要点四:推荐大中型网站使用CDN加速工具
CDN加速是目前大型网站普遍使用的页面加速方式,它对于网站优化几乎没有影响的,基本原理是将网站镜像备份到很多服务器节点上,使服务器节点周围的用户访问速度更快,从而提升客户端高速访问网站的体验;但是并不是所有的网站都适合使用CDN加速,一般对于小规模站点个人站的话,就不需要使用CDN加速,毕竟从长期来看这可是一笔不小的开支;建议站以及多媒体站点可使用CDN加速。
至此,以上为大家讲到了可以通过优化和升级服务器两个方面提升网站访问速度,如果你的网站目前的访问体验不佳,可以尝试进行以上操作,相信能够帮助大家改善此类问题。
1、域名的解析速度当用户访问你的网址时,首先会连接域名解析的服务商,服务商会返回IP地址,这里会存在延迟,当然,用户短时间内再次访问时由于缓存这里的延迟可以忽略不计。优化办法:尽量使用智能解析服务商,比如国内的dnspod、cloudxns等,尽量用你目标群体国家的服务商。
2、连接你服务器IP地址的延迟域名服务商返回IP地址后,客户再连接IP地址会存在延迟。优化办法:使用离你目标客户延迟小的服务器,比如访问你网站的大部分是国人,那么可以选择国内vps或者香港vps。
3、网站服务器的响应速度客户通过IP地址链接到服务器并发出请求后,服务器会处理请求,返回页面数据,这里存在响应时间。主要由服务器运算速度的影响。优化方法:购买运算性能好的vps服务器,比如高性能cpu服务器,多核等。
4、页面数据的传输时间服务器返回的页面数据传输到客户的时间主要受3个因素的影响:服务器上传带宽、客户下行带宽、网页总体内容的大小
优化方法:一是选择上传带宽大的vps服务器,并且用bbr或者锐速给vps服务器加速,再就是优化网页内容,网页代码,压缩等等。
1、减少http的请求数量
a例如在css中设置background背景图,我们可以将多个背景图合为一个图,因为每一张意味着一次http请求,而使用单个背景图(精灵图)通过background-position来设置背景定位,可以一定程度上减少http的请求。
2、CDN(ContentDeliveryNetwork)网络加速
现在国内做CDN加速业务的公司很多,简单讲就是将你的、视频等扩散到CDN网络所能到达之处,让用户访问时能就近下载到所需的文件,从而达到网络提速的目的,同时也能减轻网站的负载。
3、缓存
对于高频率访问的网页文件,我们可以在apache或nginx服务器中设置缓存,在某一时间段内可以将重复的数据缓存下来重复使用,比如第一个用户访问过后,我们可以将请求的数据缓存下来,当后面的用户访问时,我们可以减少对服务器的请求,对于相同的数据没必要再次请求,直接将缓存下来的数据直接返回给用户即可。
4、服务器开启gzip压缩
对于要返回到客户端的数据,我们可以将数据压缩后再发送,这样数据量会相应的减少很多,传输速度会更快,传输到客户端再解压即可,我们可以在apache或nginx中设置压缩,但是这样会略微给服务器增加负担。
5、css文件放在文件头部
可以尽早的显示网页的样式,从而不影响网页的美感,特别是对于网速慢的用户来说是很点重要的。
6、js文件放在文件尾部
js文件执行相对而言略慢,而放在文件头部会一定长度影响网页主体的显示时间,同时将js文件放在后面执行,也可避免一些可能出现的错误,因为js文件和主体文件的内容可能存在依赖关系。
7、避免使用CSS脚本(CSSExpressions)
有时为了要css的参数动态改变,可能会采用cssexpression来实现,但这样做得不偿失,会使用户端浏览器负担明显加重,所以不建议这样做,如果需要改变,可以使用Javascript脚本去实现。
8、css、javascript改由外部调用
如果css、js内容比较庞大,尽量不要写到同1个页面中去,改由外部载入比较妥当,因为浏览器本身会对css、js文件进行缓存。
9、压缩Javascript、CSS代码
一般js、css文件中存在大量的空格、换行、注释,这些利于阅读,如果能够压缩掉,将会很有利于网络传输。这方面的工具也有很多,一般可以保留开发版本,一般压缩率能达到50%以上,可以一定程度减少文件的数据量。
10、Ajax缓存
什么样的AJAX请求可以被缓存?
POST的请求,是不可以在客户端缓存的,每次请求都需要发送给服务器进行处理,每次都会返回状态码200。
GET的请求,是可以(默认)在客户端进行缓存的,除非指定了不同的地址,否则同一个地址的AJAX请求,不会重复在服务器执行,而是返回304。
Ajax请求缓存的使用
在进行Ajax请求的时候,可以根据需要尽可能使用get方法,这样可以使用客户端的缓存,提高请求速度。
浪潮对新一代M6浪潮服务器的优化具体体现在三个方面。首先是技术的突破,新一代M6浪潮服务器在有限的空间里将性能、存储和IO扩展做到了极致;其次是更加关注用户体验,引入了一些更加精益的设计,帮助用户降本增效。例如加入的特制的蜂窝状波导网,让服务器能在比过去高2℃的环境下运行,散热效率提升22%;最后是更加注重安全,全新M6浪潮服务器在固件层面、系统层面和硬件层面进行了强化升级,全方面保障设备的安全,同时可以降低运维难度,减少运维成本。
0条评论