如何优化windows server2008性能

如何优化windows server2008性能,第1张

1、将空闲的SATA或IDE等通道关闭掉

  一般来说现在的服务器采用了SAS万转高速硬盘,并做了RAID,那么如果没有使用到SATA设备或IDE设备,我们应该把它们给关闭掉。Windows Server 2008系统在启动的过程中,会自动将所有硬件设备加载成功,这个过程会消耗系统很多资源以及浪费不少时间;事实上,系统中的不少硬件设备我们平时很少使用到,将这些空闲的硬件设备关闭使用可以有效地提高服务器系统的运行效率。例如,当我们在Windows Server 2008系统下打开系统的设备管理器窗口,从中展开“IDE ATA/ATAPI控制器”项目,我们可以看到系统包含两个IDE通道,这两个通道在旧版本系统下被称之为主IDE通道、次IDE通道;不过,在Windows Server 2008系统环境下IDE通道却没有主次之分。考虑到许多普通朋友的计算机中通常只使用一个硬盘设备,所以我们完全可以将另外一个处于空闲状态的IDE通道关闭使用,以便提高系统的启动速度。

  在关闭空闲IDE通道的使用状态时,我们可以先用鼠标右键单击设备管理器列表窗口中的其中一个IDE通道选项,从其后弹出的快捷菜单中执行“属性”命令,打开对应IDE通道的属性设置界面;单击该设置界面中的“高级设置”标签,进入如图1所示的标签设置页面;在该设置页面中,我们可以看出当前设备的具体传输模式,这说明该IDE通道目前已经被使用着,而另外一个IDE通道则处于空闲状态。此时,再用鼠标右键单击另外一个处于空闲状态的IDE通道,并从快捷菜单中执行“卸载”命令,那样一来空闲IDE通道就能被关闭使用了。

同样地,我们还可以将WindowsServer 2008系统中其他一些没有使用的硬件设备关闭使用,以便尽可能地提高Windows Server 2008系统的启动速度。

2、将空闲通信协议取消掉

  对于每天上网冲浪都要面对的网络连接,相信没有人会料到它也会成为拖慢系统启动速度的一个原因。它所反映出来的慢主要就是在系统启动过程中,Windows Server 2008系统在启动过程中会尝试使用TCP/IP协议进行网络登录,以便能够进入局域网网络,同时为其自动分配合适IP地址。可是,在默认状态下,Windows Server 2008系统会自动优先使用TCP/IPv6协议来连接网络,在经过反复尝试连接之后,发现TCP/IPv6协议所对应的网络连接并不存在,之后才会尝试使用TCP/IPv4协议来连接网络,很显然这个过程多走了一些弯路,从而会影响服务器系统的启动速度;为了让Windows Server 2008系统直接使用TCP/IPv4协议来连接网络,我们需要采用手工方法来关闭TCP/IPv6协议的使用状态,以避免系统继续搜索使用TCP/IPv6协议所对应的网络连接,下面就是具体的关闭操作步骤:

  首先登录进Windows Server 2008系统桌面,在该桌面中依次点选“开始”/“设置”/“网络连接”命令,在其后出现的网络连接列表窗口中,找到目标本地连接图标,再用鼠标右击该图标,并执行快捷菜单中的“属性”命令,打开目标本地连接的属性设置窗口;

  其次在该属性设置窗口中的“网络”标签页面中,我们发现Windows Server 2008系统在缺省状态下已经启用了TCP/IPv6协议(如图2所示),此时我们可以将TCP/IPv6协议选项前面的勾号取消掉,再单击“确定”按钮,如此一来Windows Server 2008系统日后进行网络连接时,就不会去耗费时间寻找TCP/IPv6协议对应的本地连接了,那样的话Windows Server 2008系统就能直接使用TCP/IPv4协议来登录局域网网络了。

 此外,一旦登录进局域网网络后,Windows Server 2008系统还会自动去搜索局域网中的DHCP服务器,以便给本地服务器系统分配一个合适的IP地址,这个搜索过程也会大大降低系统的启动速度;为此,我们最好为服务器系统的网卡设备预先分配一个合适的静态IP地址,以便让系统不需要去搜索局域网中的DHCP服务器。在为网卡设备分配静态IP地址时,我们可以在如图2所示的界面中,选中TCP/IPv4协议选项,并单击“属性”按钮,在其后的属性设置窗口中,我们可以参考局域网中的其他计算机上网参数来为本地网卡设置一个合适的IP地址,相信这么一来服务器系统的启动速度就能大大加快了

3、启用硬件加速功能

  为了在Windows Server 2008系统中实现DirectX加速运行目的,如果没有可以到http://wwwgoldhoecom/fuwuzhichi/进行下载,里面还有相关文档可以借鉴进行操作,我们不妨按照如下操作,来将服务器系统自带的硬件加速功能启用起来:

  首先以超级管理员身份进入Windows Server 2008服务器系统,用鼠标右键单击系统桌面的空白位置,并执行快捷菜单中的“个性化”命令,打开本地服务器系统的个性化设置对话框,单击该对话框中的“显示设置”选项,

  打开系统的显示设置选项页面;

  其次在该选项页面的右下角位置处单击“高级设置”按钮,进入本地服务器系统的高级显示属性窗口;单击该高级显示属性窗口中的“疑难解答”选项卡,在其后出现的选项设置页面中单击“更改设置”按钮,进入如图3所示的设置页面;在该设置页面的“硬件加速”处,直接用鼠标拖动滑动按钮到“完全”处,再单击“确定”按钮完成硬件加速功能启用操作,那样一来服务器系统就能实现DirectX加速目的了。

4、防止自动安装模块服务

  当将本地工作站升级为Windows Server 2008系统后,我们有时会发现系统经常发生这样一种奇怪故障,那就是每次在本地系统中搜索文件或更新系统时,系统中的CPU资源时常会出现100%耗尽的现象,当发生这种现象时,服务器系统几乎就不能执行任何操作,显然这会影响服务器系统的稳定运行。事实上,Windows Server 2008系统之所以会在执行文件搜索操作或系统更新操作时,发生CPU资源100%耗尽的现象,主要就是服务器系统自带的Windows Module Installer系统服务自动运行造成的。为了防止该模块服务自动安装,我们可以设置Windows Server 2008系统的服务属性,将Windows Module Installer系统服务禁止运行,下面就是具体的设置步骤:

  首先以超级管理员身份进入Windows Server 2008服务器系统,依次单击“开始”/“程序”/“服务器管理器”命令,打开本地服务器系统的服务器管理器窗口;

  其次在该管理器窗口的左侧列表区域中,用鼠标依次点选“配置”/“服务”选项,在“服务”选项所对应的中间列表区域中,用鼠标双击“Windows Module Installer”服务选项,打开如图4所示的选项设置页面,如果我们在该页面的“服务状态”处发现目标系统服务已经被运行时,必须及时单击该页面中的“停止”按钮,并且将它的“启动类型”参数修改为“禁用”,最后依次单击“应用”、“确定”按钮,如此一来Windows Server 2008系统日后在执行文件搜索操作或系统更新操作时,就不会发生CPU资源被完全耗尽的现象了,此时系统的运行速度就不会受到影响了。

5、设置磁盘高级读写性能

  由于服务器系统中保存的信息都比较重要,为了保护这些数据信息的安全性,Windows Server 2008服务器系统在缺省状态下,比较注重硬盘的读写性能,不过这会影响系统文件的访问速度。如果Windows Server 2008服务器系统中并没有保存多少重要信息时,或者我们对数据信息的读写安全性不十分看重时,那可以尝试设置Windows Server 2008系统新增的磁盘高级功能,来提高系统文件的访问速度,下面就是具体的设置步骤:

  首先以超级管理员身份进入Windows Server 2008服务器系统,依次单击“开始”/“程序”/“服务器管理器”命令,打开本地服务器系统的服务器管理器窗口;

  其次在该管理器窗口的左侧列表区域中,用鼠标依次点选“诊断”/“设备管理器”选项,在对应“设备管理器”选项的中间列表区域中,展开磁盘驱动器节点,再从该节点下选中目标磁盘设备,并用鼠标右键单击该磁盘设备,从弹出的快捷菜单中执行“属性”命令,打开目标磁盘设备的属性设置窗口,单击该窗口中的“策略”标签,打开如图5所示的标签设置页面;

  在该设置页面中,检查“启用磁盘上的写入缓存”选项和“启用高级性能”选项是否处于选中状态,如果发现它们没有被选中时,我们可以将它们重新选中,最后单击“确定”按钮结束磁盘属性设置操作,那样一来Windows Server 2008系统就能有效提高系统文件的访问速度了

6、提高上网访问宽带速度

Windows Server 2008系统与旧版本操作系统一样,在默认状态下同样留有20%的带宽余量,这个余量对于普通上网用户来说几乎没什么大的作用,与其让其空闲还不如将其充分利用起来,以便尽可能地提高Windows Server 2008系统下的上网冲浪速度。在启用20%的带宽余量时,我们可以按照如下步骤设置Windows Server 2008系统的组策略参数:

  首先以超级管理员身份进入Windows Server 2008服务器系统,依次单击该系统桌面中的“开始”/“运行”命令,在弹出的系统运行文本框中,输入字符串命令“gpeditmsc”,单击“确定”按钮后,进入Windows Server 2008系统的组策略编辑窗口;

  其次在该组策略编辑窗口左侧显示区域,将鼠标定位与“计算机配置”/“管理模板”/“网络”/“QoS数据包计划程序”分支选项,在“QoS数据包计划程序”分支选项所对应的右侧显示区域中,找到“限制可保留带宽”组策略选项,再用鼠标双击该选项,打开如图6所示的目标组策略属性设置窗口,选中该窗口中的“已禁用”选项,再单击“确定”按钮,如此一来Windows Server 2008系统保留的带宽资源就被成功释放了出来,这对于上网冲浪时提高访问速度是非常有用的。

7、提高共享文件拷贝速度

  当我们通过网上邻居窗口从Windows Server 2008系统中拷贝共享文件时,发现共享文件的传输速度明显不如旧版本操作系统,难道是该系统在这方面的功能退化了吗?事实并不是这样,很可能是我们不小心安装了Windows Server 2008系统新增加的远程差分压缩功能了,该功能在我们传输共享文件时,会自动对两地文件的差异性进行检查,然后将变化的部分传输过去。显然,这个差异性检查操作会消耗太多的时间,影响共享文件的拷贝速度,我们可以按照如下步骤将该功能关闭掉:

  首先以超级管理员身份进入Windows Server 2008服务器系统,依次单击“开始”/“程序”/“服务器管理器”命令,打开本地服务器系统的服务器管理器窗口;

  其次在该管理器窗口的左侧列表区域中,用鼠标点选“功能”选项,在对应该选项的右侧列表区域中,检查“远程差分压缩”功能是否已经安装(如图7所示),如果发现该功能已经被成功安装的话,我们可以单击图7界面中的“删除功能”,之后从删除列表中选中“远程差分压缩”功能选项,最后按照提示完成剩余的操作,就能将“远程差分压缩”功能从服务器系统中删除掉了,那样一来我们就能有效提高共享文件的拷贝速度了。

一、前端优化

网站性能优化是一个很综合的话题,涉及到服务器的配置和网站前后端程序等各个方面,我只是从实际经历出发,分享一下自己所尝试过的网站性能优化方法。之所以在标题上挂一个web20,是因为本文更偏重于中小网站的性能优化,我所使用的系统也是典型web20的LAMP架构。

首先讲讲前端的优化,用户访问网页的等待时间,有80%是发生在浏览器前端,特别是页面和页面中各种元素(、CSS、Javascript、 flash…)的下载之上。因此在很多情况下,相对于把大量的时间花在艰苦而繁杂的程序改进上,前端的优化往往能起到事半功倍的作用。雅虎最近将内部使用的性能测试工具yslow向第三方公开,并发布了著名的网站性能优化的十三条规则,建议你下载并安装yslow,并作为测评网站优化效果的工具。下面我挑其中特别有价值的具体说明一下优化的方法:

对于第一次访问您网站,尚未在浏览器cache中缓存您网站内容的用户,我们可以做的事情包括:

1)减少一个页面访问所产生的http连接次数

对于第一次访问你网站的用户,页面所产生的http连接次数是影响性能的一个关键瓶颈。

对策:

- 尽量简洁的页面设计,最大程度减少的使用,通过放弃一些不必要的页面特效来减少javascript的使用。

- 使用一些优化技巧,比如利用的背景位移减少的个数;image map技术;使用Inline images将css捆绑到网页中。

- 尽量合并js和css文件,减少独立文件个数。

2) 使用gzip压缩网页内容

使用gzip来压缩网页中的静态内容,能够显著减少用户访问网页时的等待时间(据说可达到60%)。主流的web服务器都支持或提供gzip压缩,如果使用apache服务器,只需要在配置文件中开启 mod_gzip(apache1x)或mod_deflate(apache2x)即可。凡是静态的页面,使用gzip压缩都能够显著提高服务器效率并减少带宽支出,注意内容本身已经是压缩格式了,务必不要再进行压缩。

3)将CSS放在页面顶端,JS文件放在页面底端

CSS的引用要放在html的头部header中,JS文件引用尽量放在页面底端标签的后面,主要的思路是让核心的页面内容尽早显示出来。不过要注意,一些大量使用js的页面,可能有一些js文件放在底端会引起一些难以预料的问题,根据实际情况适当运用即可。

4)使JS文件内容最小化

具体来说就是使用一些javascript压缩工具对js脚本进行压缩,去除其中的空白字符、注释,最小化变量名等。在使用gzip压缩的基础上,对js内容的压缩能够将性能再提高5%。

5)尽量减少外部脚本的使用,减少DNS查询时间

不要在网页中引用太多的外部脚本,首先,一次dns的解析过程会消耗20-120毫秒的时间;其次,如果在页面中引用太多的外部文件(如各种广告、联盟等代码),可能会因为外部文件的响应速度而将你的网站拖得很慢。如果不得不用,那么就尽量将这些脚本放在页脚吧。不过有一点需要提及,就是浏览器一般只能并行处理同一域名下的两个请求,而对于不同子的域名则不受此限制,因此适当将本站静态内容(css,js)放在其他的子域名下(如 staticxxxcom)会有利于提高浏览器并行下载网页内容的能力。

对于您网站的经常性访问用户,主要的优化思路就是最大限度利用用户浏览器的cache来减少服务器的开销。

1)在header中添加过期时间(Expires Header)

在header中给静态内容添加一个较长的过期时间,这样可以使用户今后访问只读取缓存中的文件,而不会与服务器产生任何的交互。不过这样做也存在一些问题,当、CSS和js文件更新时,用户如果不刷新浏览器,就无法获得此更新。这样,我们在对、css和js文件修改时,必须要进行重命名,才能保证用户访问到最新的内容。这可能会给开发造成不小的麻烦,因为这些文件可能被站点中的许多文件所引用。flickr提出的解决办法是通过url rewrite使不同版本号的URL事实上指向同一个文件,这是一个聪明的办法,因为url级别的操作效率是很高的,可以给开发过程提供不少便利。

要理解为什么这样做,必须要了解浏览器访问url时的工作机制:

a 第一次访问url时,用户从服务器段获取页面内容,并把相关的文件(images,css,js…)放在高速缓存中,也会把文件头中的expired time,last modified, ETags等相关信息也一同保留下来。

b 用户重复访问url时,浏览器首先看高速缓存中是否有本站同名的文件,如果有,则检查文件的过期时间;如果尚未过期,则直接从缓存中读取文件,不再访问服务器。

c 如果缓存中文件的过期时间不存在或已超出,则浏览器会访问服务器获取文件的头信息,检查last modifed和ETags等信息,如果发现本地缓存中的文件在上次访问后没被修改,则使用本地缓存中的文件;如果修改过,则从服务器上获取最新版本。

我的经验,如果可能,尽量遵循此原则给静态文件添加过期时间,这样可以大幅度减少用户对服务器资源的重复访问。

2)将css和js文件放在独立外部文件中引用

将css和js文件放在独立文件中,这样它们会被单独缓存起来,在访问其他页面时可以从浏览器的高速缓存中直接读取。一些网站的首页可能是例外的,这些首页的自身浏览可能并不大,但却是用户访问网站的第一印象以及导向到其他页面的起点,也可能这些页面本身使用了大量的ajax局部刷新及技术,这时可以将 css和js文件直接写在页面中。

3)去掉重复的脚本

在IE中,包含重复的js脚本会导致浏览器的缓存不被使用,仔细检查一下你的程序,去掉重复引用的脚本应该不是一件很难的事情。

4)避免重定向的发生

除了在header中人为的重定向之外,网页重定向常在不经意间发生,被重定向的内容将不会使用浏览器的缓存。比如用户在访问,服务器会通过301转向到/,在后面加了一个“/”。如果服务器的配置不好,这也会给服务器带来额外的负担。通过配置apache的 alias或使用mod_rewrite模块等方法,可以避免不必要的重定向。

还有一些,比如使用CDN分发机制、避免CSS表达式等、避免使用ETags等,因为不太常用,这里就不再赘述了。

做完了上述的优化,可以试着用yslow测试一下网页的性能评分,一般都可以达到70分以上了。

当然,除了浏览器前端和静态内容的优化之外,还有针对程序脚本、服务器、数据库、负载的优化,这些更深层次的优化方法对技术有更高的要求。本文的后半部分将重点探讨后端的优化。

二、后端优化

上次写完web20网站前端优化篇之后,一直想写写后端优化的方法,今天终于有时间将思路整理了出来。

前端优化可以避免我们造成无谓的服务器和带宽资源浪费,但随着网站访问量的增加,仅靠前端优化已经不能解决所有问题了,后端软件处理并行请求的能力、程序运 行的效率、硬件性能以及系统的可扩展性,将成为影响网站性能和稳定的关键瓶颈所在。优化系统和程序的性能可以从以下的方面来入手:

1)apache、mysql等软件的配置的优化

尽管apache和mysql等软件在安装后使用的默认设置足以使你的网站运行起来,但是通过调整mysql和apache的一些系统参数,还是可以追求更高的效率和稳定性。这个领域中有很多专业的文章和论坛(比如: ),要想掌握也需要进行深入的研究和实践,这里就不重点讨论了。

2)应用程序环境加速

这里仅以我最常应用的php开发环境为例,有一些工具软件可以通过优化PHP运行环境来达到提速的目的,其基本原理大致是将PHP代码预编译并缓存起来,而不需要改变任何代码,所以比较简单,可以将php的运行效率提升50%以上。比较常用的php加速工具有:APC( http: //peclphpnet/package-infophppackage=APC)、Turck MMCache( )、php accelebrator(),还有收费的Zend Performance Suite

3)将静态内容和动态内容分开处理

apache是一个功能完善但比较庞大的web server,它的资源占用基本上和同时运行的进程数呈正比,对服务器内存的消耗比较大,处理并行任务的效率也一般。在一些情况下,我们可以用比较轻量级的web server来host静态的、样式表和javascript文件,这样可以大大提升静态文件的处理速度,还可以减少对内存占用。我使用的web server是来自俄罗斯的nginx,其他选择方案还包括lighttpd和thttpd等。

4)基于反向代理的前端访问负载均衡

当一台前端服务器不足以应付用户访问时,通过前端机实现web访问的负载均衡是最快速可行的方案。通过apache的mod_proxy可以实现基于反向代理的负载均衡,这里推荐使用nginx做代理服务器,处理速度较apache更快一些。

5)应用缓存技术提高数据库效能,文件缓存和分布式缓存

数据库访问处理并发访问的能力是很多网站应用的关键瓶颈,在想到使用主从结构和多farm的方式构建服务器集群之前,首先应该确保充分使用了数据库查询的缓存。一些数据库类型(如mysql的innoDB)自身内置对缓存的支持,此外,还可以利用程序方法将常用的查询通过文件或内存缓存起来。比如通过 php中的ob_start和文件读写函数可以很方便的实现文件形式的缓存,而如果你拥有多台服务器,可以通过memcache技术通过分布式共享内存来对数据库查询进行缓存,不仅效率高而且扩展性好,memcache技术在livejournal和Craigslistorg等知名网站应用中都得到了检验。

6)服务器运行状态的检测,找到影响性能的瓶颈所在

系统优化没有一劳永逸的方法,需要通过检测服务器的运行状态来及时发现影响性能的瓶颈,以及可能存在的潜在问题,因为网站的性能,永远取决于木桶中的短板。可以编写一些脚本来检测web服务的运行,也有一些开源的软件也提供了很好的功能

7)良好的扩展架构是稳定和性能的基础

一些技巧和窍门可以帮你度过眼前的难关,但要想使网站具备应付大规模访问的能力,则需要从系统架构上进行彻底的规划,好在很多前人无私的把他们架构

网站的经验分享给我们,使我们可以少走甚多弯路。我最近读到的两篇有启发的文章:

- 从LiveJournal后台发展看大规模网站性能优化方法

- Myspace的六次重构

最后不得不提到程序编码和数据库结构对性能的影响,一系列糟糕的循环语句,一个不合理的查询语句、一张设计不佳的数据表或索引表,都足以会使应用程序运行的速度成倍的降低。培养全局思考的能力,养成良好的编程习惯,并对数据库运行机制有所了解,是提高编程质量的基础。

我对我的windows2000服务器是如何进行性能优化的

1:我们知道,系统刚装完之后,会存在很多无用的文件,这些文件都在winnt下面我们就对这些文件进行del,比如tmp、bak、log、old、txt甚至是作为桌面背景的bmp文件,help这个目录下的,基本上也没什么用,反正服务器上的help我是从来不去看它的!还有winnt\temp文件,是软件安装的过程序中,可能生成的临时文件,如果没用,就删掉吧!然后清空回收站吧!

2:启动和故障恢复选项,右击我的电脑,选择属性\高级\启动和故障恢复,将选择操作系统列表前面的勾直接去掉好了,写入调试信息,选择无!

3:浏览器历史记录和缓存,可以通过点击浏览器的“工具/Internet选项/常规/Internet临时文件/删除文件

4:(1)运行磁盘查错的时候,请先把运行的程序关闭,打开“我的电脑”,右击想要整理的硬盘驱动器,选择“属性/工具”,在查错一栏中点击“开始检查”在进行磁盘检查之前请确认“自动修复文件系统错误”和“扫描并试图恢复坏扇区”这两项被选中。

(2)碎片整理,请把所有运行的程序关闭,特别是屏幕保护、计划任务、实时查杀毒软件等等可能造成磁盘存储数据变化的程序,然后打开“我的电脑”,右击想要整理的硬盘驱动器,选择“属性/工具”,在“碎片整理”中选择“开始整理”,你可以点击“分析”按钮让系统分析你的硬盘的基本情况,然后告诉你的硬盘是否需要整理。如果需要整理,那么你只要点击“碎片整理”按钮即可。整理的时间依据你的这个硬盘分区有多少簇来决定――不得不承认这个过程相当乏味、枯燥而且缓慢。所以你可以找具有类似功能的软件比如诺顿工具箱中就有磁盘整理的组件、另外象Diskeeper、Vopt等等程序整理的效果也不错(但是同windows自带的磁盘整理软件的效果仍然有差距),而且速度快。

5:硬盘驱动器设置,现在的硬盘一般都是支持DMA(Direct Memory Access:直接内存存取)模式,所以确保你的DMA硬盘(不管是DMA33/66/100)只要能正确的在DMA模式下工作,就能保证你的系统工作在比较高的效率之下。启动DMA模式――点击“开始/设置/控制面板/系统/硬件/设备管理器”,然后点击“IDE ATA/ATAPI控制器”,右击Primary IDE Channel,选择“属性/高级设置”在“传送模式”中选择DMA(若可用)。依据提示重新启动计算机,你下次打开这个界面应该能看到“当前传输模式”中是DMA了。

6:关闭索引服务,关闭这项功能的方法是,打开我的电脑,右击相应的硬盘驱动器分区图标,选择属性,去掉“允许索引服务编制该磁盘的索引以便快速搜索文件”选项前的对钩,点击“应用”,就会出现是仅仅将属性应用于这个分区的根目录还是连同它下面的子文件夹和文件。选择“将更改应用于<盘符>:\,子文件夹和文件”。然后点击确定,等待系统自己处理完成就可以了。

7:自动关闭停止响应的程序,对于停止响应的程序,可以通过修改注册表使得系统不再通知你,而是自动关闭――不再需要用户的干预,从而提高工作效率。具体方法是,打开注册表编辑器,找到如下键值:

HKEY_CURRENT_USER\Control Panel\Desktop,把AutoEndTasks修改为1。以后如果遇到停止响应的程序,系统就会自动中止它。

8:设置虚拟内存,我们应选择优化后台服务

9:停止Win2000中不必要的服务,以下是我停掉的服务,大家可以参考一下!

服务名 简介

COM+ Event System 提供事件的自动发布到订阅 COM 组件

Computer Browser 维护网络上计算机的最新列表以及提供这个列表

Network Connections 管理“网络和拨号连接”文件夹中对象,在其中您可以查看局域网和远程连接

Plug and Play 管理设备安装以及配置,并且通知程序关于设备更改的情况

Protected Storage 提供对敏感数据(如私钥)的保护性存储,以便防止未授权的服务,过程或用户对其的非法访问(备注:缺少了此项后可能造成在IE中输入文字后死机)

RusAs Service 在不同赁据下启动过程服务

Remote Procedure Call (RPC) 提供终结点映射程序(endpoint mapper)以及其它 RPC 服务

Security Accounts Manager 存储本地用户帐户的安全信息

Server 提供 RPC 支持、文件、打印以及命名管道共享

Task Scheduler  允许程序在指定时间运行

Windows Management Instrumentation Driver Extensions 与驱动程序间交换系统管理信息

Tomcat性能调优方案

一、操作系统调优

对于操作系统优化来说,是尽可能的增大可使用的内存容量、提高CPU的频率,保证文件系统的读写速率等。经过压力测试验证,在并发连接很多的情况下,CPU的处理能力越强,系统运行速度越快。。

适用场景 任何项目。

二、Java虚拟机调优

应该选择SUN的JVM,在满足项目需要的前提下,尽量选用版本较高的JVM,一般来说高版本产品在速度和效率上比低版本会有改进。

JDK14比JDK13性能提高了近10%-20%,JDK15比JDK14性能提高25%-75%。

因此对性能要求较高的情况推荐使用 JDK16。

适用场景 任何项目。

三、Apache集成Tomcat

Web服务器专门处理HTTP请求,应用服务器是通过很多协议为应用提供商业逻辑。虽然Tomcat也可以作web服务器,但其处理静态html的速度比不上Apache,且其作为web服务器的功能远不如Apache,因此把Apache和Tomcat集成起来,将html和Jsp的功能部分进行明确分工,让Tomcat只处理Jsp部分,其他的由Apache,IIS等web服务器去处理,由此大大提高Tomcat的运行效率。

如果一个项目中大量使用了静态页面、大量的等,并有有较大的访问量,推荐使用Apache集成Tomcat的方式来提高系统的整体性能。

Apache和Tomcat的整合有三种方式,分别是JK、http_proxy和ajp_proxy其中JK方式是最常见的方式,JK本身有两个版本分别是1和2,目前1最新版本是128,而版本2早已经废弃了。http_proxy是利用Apache自带的mod_proxy模块使用代理技术来连接Tomcat。Ajp_proxy连接方式其实跟http_proxy方式一样,都是由mod_proxy所提供的功能。只需要把配置中的http://换成ajp://,同时连接的是Tomcat的AJP Connector所在的端口。

相对于JK的连接方式,后两种在配置上比较简单的,灵活性方面也一点都不逊色。但就稳定性而言不像JK这样久经考验,所以建议采用JK的连接方式。

Apache+JK+Tomcat配置:

使用到的两个配置文件分别是:httpdconf和mod_jkconf。其中httpdconf是Apache服务器的配置文件,用来加载JK模块以及指定JK配置文件信息。mod_jkconf是到Tomcat服务器的连接定义文件。

部署步骤

1安装Apache服务器

2部署Tomcat

3将mod_jkso拷贝到modules目录下面

4修改httpdconf和mod_jkconf

适用场景 大量使用静态页面的应用系统。

四、Apache和Tomcat集群

对于并发要求很高的系统,我们需要采取负载均衡的方式来分担Tomcat服务器的压力。负载均衡实现大概有四种:第一是通过DNS,但只能简单的实现轮流分配,不能处理故障;第二是基于MS IIS,windows 2003 server本身就带了负载均衡服务;第三是硬件方式,通过交换机功能或专门的负载均衡设备来实现;第四种是软件的方式,通过一台负载均衡服务器进行,上面安装软件。使用Apache Httpd Server做负载均衡器,Tomcat集群节点使用Tomcat就可以做到上述第四种方式,这种方式比较灵活,成本相对比较低,另外一个很大的优点就是可以根据应用情况和服务器的情况做一些灵活的配置。所以推荐使用Apache+Tomcat集群来实现负载均衡。

采用Tomcat集群可以最大程度的发挥服务器的性能,可以在配置较高的服务器上部署多个Tomcat,也可以在多台服务器上分别部署Tomcat,Apache和Tomcat整合的方式还是JK方式。经过验证,系统对大用户量使用的响应方面,Apache+3Tomccat集群> Apache+2Tomcat集群 > Apache集成Tomcat > 单个Tomcat。并且采用Apache+多Tomcat集群的部署方式时,如果一个Tomcat出现宕机,系统可以继续使用,所以在硬件系统性能足够优越的情况下,需要尽量发挥软件的性能,可以采用增加Tomcat集群的方式。

Apache+Tomcat集群的方式使用到得配置文件有httpdconf、mod_jkconf、workersproperties。其中mod_jkconf是对JK信息的配置,包括JK的路径等,workersproperties配置文件是对Tomcat服务器的连接定义文件。

Apache需要调整运行参数,这样才能构建一个适合相应网络环境的web服务。其中可进行的优化配置如下:

1 设置MPM(Multi Processing Modules多道处理模块)。ThreadPerChild,这个参数用于设置每个进程的线程数,在Windows环境下默认值是64,最大值是1920,建议设置为100-500之间,服务器性能高的话值大一些,反之小一些。MaxRequestPerChild表示每个子进程能够处理的最大请求数。这个参数的值更大程度上取决于服务器的内存,如果内存比较大的话可以设置为很大的参数,否则设置一个较小的值,建议值是3000

2 关闭DNS和名字解析 HostnameLookups off

3 打开UseCanonicalName模块 UseCanonicalName on

4 关闭多余模块 一般来说,不需要加载的模块有,mod_includeso、mod_autoindexso、mod_accessso、mod_authso

5 打开KeepAlive支持

KeepAlive on, KeepAliveTimeout 15 MaxKeepAliveRequests 1000

根据实际经验,通过Apache和Tomcat集群的方式提高系统性能的效果十分明显,这种方式可以最大化的利用硬件资源,通过多个Tomcat的处理来分担单Tomcat时的压力。

部署步骤

1安装Apache服务器

2部署Tomcat集群,即多个相同的Tomcat。

3将mod_jkso拷贝到modules目录下面

4修改httpdconf、mod_jkconf和workersproperties

适用场景 并发用户量及在线使用用户数量比较高的系统。

五、Tomcat自身优化

1 JVM参数调优:-Xms<size> 表示JVM初始化堆的大小,-Xmx<size>表示JVM堆的最大值。这两个值的大小一般根据需要进行设置。当应用程序需要的内存超出堆的最大值时虚拟机就会提示内存溢出,并且导致应用服务崩溃。因此一般建议堆的最大值设置为可用内存的最大值的80%。在catalinabat中,设置JAVA_OPTS='-Xms256m -Xmx512m',表示初始化内存为256MB,可以使用的最大内存为512MB。

2 禁用DNS查询

 当web应用程序向要记录客户端的信息时,它也会记录客户端的IP地址或者通过域名服务器查找机器名转换为IP地址。DNS查询需要占用网络,并且包括可能从很多很远的服务器或者不起作用的服务器上去获取对应的IP的过程,这样会消耗一定的时间。为了消除DNS查询对性能的影响我们可以关闭DNS查询,方式是修改serverxml文件中的enableLookups参数值:

Tomcat4

<Connector className="orgapachecoyotetomcat4CoyoteConnector" port="80" minProcessors="5" maxProcessors="75" enableLookups="false" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" useURIValidationHack="false" disableUploadTimeout="true" />

Tomcat5

<Connector port="80" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" disableUploadTimeout="true"/>

3 调整线程数

通过应用程序的连接器(Connector)进行性能控制的的参数是创建的处理请求的线程数。Tomcat使用线程池加速响应速度来处理请求。在Java中线程是程序运行时的路径,是在一个程序中与其它控制线程无关的、能够独立运行的代码段。它们共享相同的地址空间。多线程帮助程序员写出CPU最大利用率的高效程序,使空闲时间保持最低,从而接受更多的请求。

Tomcat4中可以通过修改minProcessors和maxProcessors的值来控制线程数。这些值在安装后就已经设定为默认值并且是足够使用的,但是随着站点的扩容而改大这些值。minProcessors服务器启动时创建的处理请求的线程数应该足够处理一个小量的负载。也就是说,如果一天内每秒仅发生5次单击事件,并且每个请求任务处理需要1秒钟,那么预先设置线程数为5就足够了。但在你的站点访问量较大时就需要设置更大的线程数,指定为参数maxProcessors的值。maxProcessors的值也是有上限的,应防止流量不可控制(或者恶意的服务攻击),从而导致超出了虚拟机使用内存的大小。如果要加大并发连接数,应同时加大这两个参数。web server允许的最大连接数还受制于操作系统的内核参数设置,通常Windows是2000个左右,Linux是1000个左右。

在Tomcat5对这些参数进行了调整,请看下面属性:

maxThreads Tomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最大的线程数。

acceptCount 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。

connnectionTimeout 网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。

minSpareThreads Tomcat初始化时创建的线程数。

maxSpareThreads 一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。

最好的方式是多设置几次并且进行测试,观察响应时间和内存使用情况。在不同的机器、操作系统或虚拟机组合的情况下可能会不同,而且并不是所有人的web站点的流量都是一样的,因此没有一刀切的方案来确定线程数的值。

六、APR库使用

Tomcat中使用APR库,其实就是在Tomcat中使用JNI的方式来读取文件以及进行网络传输。可以大大提升Tomcat对静态文件的处理性能,同时如果你使用了HTTPS方式传输的话,也可以提升SSL的处理性能。

一般在Windows下,可以直接下载编译好的二进制版本的dll库文件来使Tomcat启用APR,一般建议拷贝库文件tcnative-1dll到Tomcat的bin目录下。而在Linux下,可以直接解压和安装bin目录下的tomcat_nativetargz文件,编译之前要确保apr库已经安装。

怎么才能判断Tomcat是否已经启用了APR库呢?方法是通过看Tomcat的启动日志:

如果没有启用APR,则启动日志一般有这么一条:

orgapachecoyotehttp11Http11Protocol start

如果启用了APR,则这条日志就会变成:

orgapachecoyotehttp11Http11AprProtocol start

tcnative-1dll 下载地址:http://tomcatheanetie/native/

调优综述

根据以上分析,如果想要Tomcat达到最优的效果,首先要争取使得操作系统以及网络资源达到最优,并且最好使用高版本的JDK。对于有大量静态页面的系统,采用Apache集成Tomcat的方式,把静态页面交由Apache处理,动态部分交由Tomcat处理,能极大解放Tomcat的处理能力。使用ARP库也能极大的提高Tomcat对静态文件的处理能力。对于并发要求较高的系统,采用Apache加Tomcat集群的方式,将负载分别分担到多个Tomcat上,能很大的提高系统的性能,充分利用硬件资源。同时需要对Tomcat自身进行优化,包括增大内存、调节并发线程数等。

电脑卡,慢等原因,主要是因为以下原因造成,可以为大家提供参考。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 如何优化windows server2008性能

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情