博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
十条服务器端优化Web性能的技巧
阅读量:5077 次
发布时间:2019-06-12

本文共 17248 字,大约阅读时间需要 57 分钟。

服务器  

 

 

提高web应用的性能从来没有比现在更重要过。网络经济的比重一直在增长;全球经济超过5%的价值是在因特网上产生的(数据参见下面的资料)。这个时刻在线的超连接世界意味着用户对其的期望值也处于历史上的最高点。如果你的网站不能及时的响应,或者你的app不能无延时的工作,用户会很快的投奔到你的竞争对手那里。

举一个例子,一份亚马逊十年前做过的研究可以证明,甚至在那个时候,网页加载时间每减少100毫秒,收入就会增加1%。另一个最近的研究特别强调一个事实,即超过一半的网站拥有者在调查中承认它们会因为应用程序性能的问题流失用户。

网站到底需要多快呢?对于页面加载,每增加1秒钟就有4%的用户放弃使用。顶级的电子商务站点的页面在第一次交互时可以做到1秒到3秒加载时间,而这是提供最高舒适度的速度。很明显这种利害关系对于web应用来说很高,而且在不断的增加。

想要提高效率很简单,但是看到实际结果很难。为了在你的探索之旅上帮助到你,这篇文章会给你提供10条最高可以提升10倍网站性能的建议。

提示#1:通过反向代理来提高性能和增加安全性

如果你的网应用运行在单个机器上,那么这个办法会明显的提升性能​​:只需要换一个更快的机器,更好的处理器,更多的内存,更快的磁盘阵列,等等。然后新机器就可以更快的运行你的WordPress服务器,Node.js程序,Java程序,以及其它程序。(如果你的程序要访问数据库服务器,那么解决方法依然很简单:添加两个更快的机器,以及在两台电脑之间使用一个更快的链路。)

问题是,机器速度可能并不是问题.web程序运行慢经常是因为计算机一直在不同的任务之间切换:通过成千上万的连接和用户交互,从磁盘访问文件,运行代码,等等。应用服务器可能会抖动thrashing-比如说内存不足,将内存数据交换到磁盘,以及有多个请求要等待某个任务完成,如磁盘I / O。

你可以采取一个完全不同的方案来替代升级硬件:添加一个反向代理服务器来分担部分任务。反向代理服务器位于运行应用的机器的前端,是用来处理网络流量的。只有反向代理服务器是直接连接到互联网的;和应用服务器的通讯都是通过一个快速的内部网络完成的。

使用反向代理服务器可以将应用服务器从等待用户与web程序交互解放出来,这样应用服务器就可以专注于为反向代理服务器构建网页,让其能够传输到互联网上。而应用服务器就不需要等待客户端的响应,其运行速度可以接近于优化后的性能水平。

添加反向代理服务器还可以给你的web服务器安装带来灵活性。比如,一个某种类型的服务器已经超载了,那么就可以轻松的添加另一个相同的服务器;如果某个机器宕机了,也可以很容易替代一个新的。

因为反向代理带来的灵活性,所以反向代理也是一些性能加速功能的必要前提,比如:

负载均衡(参见提示#2) - 负载均衡运行在反向代理服务器上,用来将流量均衡分配给一应应用。有了合适的负载均衡,你就可以添加应用服务器而根本不用修改应用。

缓存静态文件(参见提示#3) - 直接读取的文件,比如图片或者客户端代码,可以保存在反向代理服务器,然后直接发给客户端,这样就可以提高速度,分担应用服务器的负载,可以让应用运行的更快。

网站安全 - 反向代理服务器可以提高网站安全性,以及快速的发现和响应攻击,保证应用服务器处于被保护状态。

NGINX软件为用作反向代理服务器而专门设计,也包含了上述的多种功能.NGINX使用事件驱动的方式处理请求,这会比传统的服务器更加有效率.NGINX加添加了更多高级的反向代理特性,比如应用的健康度检查,专门用来处理请求路由,高级缓冲和相关支持。

2016420101620198.jpg (800×591)

提示#2:添加负载平衡

添加一个负载均衡服务器 是一个相当简单的用来提高性能和网站安全性的的方法。与其将核心 Web 服务器变得越来越大和越来越强,不如使用负载均衡将流量分配到多个服务器。即使程序写的不好,或者在扩容方面有困难,仅是使用负载均衡服务器就可以很好的提高用户体验。

负载均衡服务器首先是一个反向代理服务器(参见Tip #1)——它接受来自互联网的流量,然后转发请求给另一个服务器。特别是负载均衡服务器支持两个或多个应用服务器,使用分配算法将请求转发给不同服务器。最简单的负载均衡方法是轮转法round robin,每个新的请求都会发给列表里的下一个服务器。其它的复制均衡方法包括将请求发给活动连接最少的服务器。NGINX plus 拥有将特定用户的会话分配给同一个服务器的能力。

负载均衡可以很好的提高性能是因为它可以避免某个服务器过载而另一些服务器却没有需要处理的流量。它也可以简单的扩展服务器规模,因为你可以添加多个价格相对便宜的服务器并且保证它们被充分利用了。

可以进行负载均衡的协议包括 HTTP、HTTPS、SPDY、HTTP/2、WebSocket、FastCGI、SCGI、uwsgi、 memcached 等,以及几种其它的应用类型,包括基于 TCP 的应用和其它的第4层协议的程序。分析你的 web 应用来决定你要使用哪些以及哪些地方性能不足。

相同的服务器或服务器群可以被用来进行负载均衡,也可以用来处理其它的任务,如 SSL 末端服务器,支持客户端的 HTTP/1.x 和 HTTP/2 请求,以及缓存静态文件。

Tip #3: 缓存静态和动态的内容

缓存可以通过加速内容的传输速度来提高 web 应用的性能。它可以采用以下几种策略:当需要的时候预处理要传输的内容,保存数据到速度更快的设备,把数据存储在距离客户端更近的位置,或者将这几种方法结合起来使用。

有两种不同类型数据的缓冲:

静态内容缓存。不经常变化的文件,比如图像(JPEG、PNG) 和代码(CSS,JavaScript),可以保存在外围服务器上,这样就可以快速的从内存和磁盘上提取。

动态内容缓存。很多 web 应用会针对每次网页请求生成一个新的 HTML 页面。在短时间内简单的缓存生成的 HTML 内容,就可以很好的减少要生成的内容的数量,而且这些页面足够新,可以满足你的需要。

举个例子,如果一个页面每秒会被浏览10次,你将它缓存 1 秒,90%请求的页面都会直接从缓存提取。如果你分开缓存静态内容,甚至新生成的页面可能都是由这些缓存构成的。

下面由是 web 应用发明的三种主要的缓存技术:

1.缩短数据与用户的网络距离。把一份内容的拷贝放的离用户更近的节点来减少传输时间。

2.提高内容服务器的速度。内容可以保存在一个更快的服务器上来减少提取文件的时间。

3.从过载服务器上移走数据。机器经常因为要完成某些其它的任务而造成某个任务的执行速度比测试结果要差。将数据缓存在不同的机器上可以提高缓存资源和非缓存资源的性能,而这是因为主机没有被过度使用。

对 web 应用的缓存机制可以在 web 应用服务器内部实现。首先,缓存动态内容是用来减少应用服务器加载动态内容的时间。其次,缓存静态内容(包括动态内容的临时拷贝)是为了更进一步的分担应用服务器的负载。而且缓存之后会从应用服务器转移到对用户而言更快、更近的机器,从而减少应用服务器的压力,减少提取数据和传输数据的时间。

改进过的缓存方案可以极大的提高应用的速度。对于大多数网页来说,静态数据,比如大图像文件,构成了超过一半的内容。如果没有缓存,那么这可能会花费几秒的时间来提取和传输这类数据,但是采用了缓存之后不到1秒就可以完成。

举一个在实际中缓存是如何使用的例子, NGINX 和 NGINX Plus 使用了两条指令来设置缓存机制:proxy_cache_path 和 proxy_cache。你可以指定缓存的位置和大小、文件在缓存中保存的最长时间和其它一些参数。使用第三条(而且是相当受欢迎的一条)指令 proxy_cache_use_stale,如果提供新鲜内容的服务器忙碌或者挂掉了,你甚至可以让缓存提供较旧的内容,这样客户端就不会一无所得。从用户的角度来看这可以很好的提高你的网站或者应用的可用时间。

NGINX plus 有个高级缓存特性,包括对缓存清除的支持和在仪表盘上显示缓存状态信息。

注意:缓存机制分布于应用开发者、投资决策者以及实际的系统运维人员之间。本文提到的一些复杂的缓存机制从 DevOps 的角度来看很具有价值,即对集应用开发者、架构师以及运维操作人员的功能为一体的工程师来说可以满足它们对站点功能性、响应时间、安全性和商业结果(如完成的交易数)等需要。

Tip #4: 压缩数据

压缩是一个具有很大潜力的提高性能的加速方法。现在已经有一些针对照片(JPEG 和PNG)、视频(MPEG-4)和音乐(MP3)等各类文件精心设计和高压缩率的标准。每一个标准都或多或少的减少了文件的大小。

文本数据 —— 包括HTML(包含了纯文本和 HTML 标签),CSS 和代码,比如 Javascript —— 经常是未经压缩就传输的。压缩这类数据会在对应用程序性能的感觉上,特别是处于慢速或受限的移动网络的客户端,产生更大的影响。

这是因为文本数据经常是用户与网页交互的有效数据,而多媒体数据可能更多的是起提供支持或者装饰的作用。智能的内容压缩可以减少 HTML,Javascript,CSS和其它文本内容对带宽的要求,通常可以减少 30% 甚至更多的带宽和相应的页面加载时间。

如果你使用 SSL,压缩可以减少需要进行 SSL 编码的的数据量,而这些编码操作会占用一些 CPU 时间而抵消了压缩数据减少的时间。

压缩文本数据的方法很多,举个例子,在 HTTP/2 中,小说文本的压缩模式就特别调整了头部数据。另一个例子是可以在 NGINX 里打开使用 GZIP 压缩。你在你的服务里预先压缩文本数据之后,你就可以直接使用 gzip_static 指令来处理压缩过的 .gz 版本。

Tip #5: 优化 SSL/TLS

安全套接字(SSL) 协议和它的下一代版本传输层安全(TLS)协议正在被越来越多的网站采用。SSL/TLS 对从原始服务器发往用户的数据进行加密提高了网站的安全性。影响这个趋势的部分原因是 Google 正在使用 SSL/TLS,这在搜索引擎排名上是一个正面的影响因素。

尽管 SSL/TLS 越来越流行,但是使用加密对速度的影响也让很多网站望而却步。SSL/TLS 之所以让网站变的更慢,原因有二:

任何一个连接第一次连接时的握手过程都需要传递密钥。而采用 HTTP/1.x 协议的浏览器在建立多个连接时会对每个连接重复上述操作。

数据在传输过程中需要不断的在服务器端加密、在客户端解密。

为了鼓励使用 SSL/TLS,HTTP/2 和 SPDY(在下一章会描述)的作者设计了新的协议来让浏览器只需要对一个浏览器会话使用一个连接。这会大大的减少上述第一个原因所浪费的时间。然而现在可以用来提高应用程序使用 SSL/TLS 传输数据的性能的方法不止这些。

web 服务器有对应的机制优化 SSL/TLS 传输。举个例子,NGINX 使用 OpenSSL 运行在普通的硬件上提供了接近专用硬件的传输性能。NGINX 的 SSL 性能 有详细的文档,而且把对 SSL/TLS 数据进行加解密的时间和 CPU 占用率降低了很多。

 

Tip #6: 使用 HTTP/2 或 SPDY

对于已经使用了 SSL/TLS 的站点,HTTP/2 和 SPDY 可以很好的提高性能,因为每个连接只需要一次握手。而对于没有使用 SSL/TLS 的站点来说,从响应速度的角度来说 HTTP/2 和 SPDY 将让迁移到 SSL/TLS 没有什么压力(原本会降低效率)。

Google 在2012年开始把 SPDY 作为一个比 HTTP/1.x 更快速的协议来推荐。HTTP/2 是目前 IETF 通过的标准,是基于 SPDY 的。SPDY 已经被广泛的支持了,但是很快就会被 HTTP/2 替代。

SPDY 和 HTTP/2 的关键是用单一连接来替代多路连接。单个连接是被复用的,所以它可以同时携带多个请求和响应的分片。

通过使用单一连接,这些协议可以避免像在实现了 HTTP/1.x 的浏览器中一样建立和管理多个连接。单一连接在对 SSL 特别有效,这是因为它可以最小化 SSL/TLS 建立安全链接时的握手时间。

SPDY 协议需要使用 SSL/TLS,而 HTTP/2 官方标准并不需要,但是目前所有支持 HTTP/2 的浏览器只有在启用了 SSL/TLS 的情况下才能使用它。这就意味着支持 HTTP/2 的浏览器只有在网站使用了 SSL 并且服务器接收 HTTP/2 流量的情况下才会启用 HTTP/2。否则的话浏览器就会使用 HTTP/1.x 协议。

2016420101658944.png (2962×1198)

作为支持这些协议的一个样例,NGINX 已经从一开始就支持了 SPDY,而且大部分使用 SPDY 协议的网站都运行的是 NGINX。NGINX 同时也很早对 HTTP/2 的提供了支持,从2015 年9月开始,开源版 NGINX 和 NGINX Plus 就支持它了。

经过一段时间,我们 NGINX 希望更多的站点完全启用 SSL 并且向 HTTP/2 迁移。这将会提高安全性,同时也会找到并实现新的优化手段,简化的代码表现的会更加优异。

Tip #7: 升级软件版本

一个提高应用性能的简单办法是根据软件的稳定性和性能的评价来选在你的软件栈。进一步说,因为高性能组件的开发者更愿意追求更高的性能和解决 bug ,所以值得使用最新版本的软件。新版本往往更受开发者和用户社区的关注。更新的版本往往会利用到新的编译器优化,包括对新硬件的调优。

稳定的新版本通常比旧版本具有更好的兼容性和更高的性能。一直进行软件更新,可以非常简单的保持软件保持最佳的优化,解决掉 bug,以及提高安全性。

一直使用旧版软件也会阻止你利用新的特性。比如上面说到的 HTTP/2,目前要求 OpenSSL 1.0.1。在2016 年中期开始将会要求1.0.2 ,而它是在2015年1月才发布的。

NGINX 用户可以开始迁移到 NGINX 最新的开源软件 或者 NGINX Plus;它们都包含了最新的能力,如 socket 分割和线程池(见下文),这些都已经为性能优化过了。然后好好看看的你软件栈,把它们升级到你能升级到的最新版本吧。

Tip #8: Linux 系统性能调优

Linux 是大多数 web 服务器使用的操作系统,而且作为你的架构的基础,Linux 显然有不少提高性能的可能。默认情况下,很多 Linux 系统都被设置为使用很少的资源,以符合典型的桌面应用使用。这就意味着 web 应用需要一些微调才能达到最大效能。

这里的 Linux 优化是专门针对 web 服务器方面的。以 NGINX 为例,这里有一些在加速 Linux 时需要强调的变化:

缓冲队列。如果你有挂起的连接,那么你应该考虑增加 net.core.somaxconn 的值,它代表了可以缓存的连接的最大数量。如果连接限制太小,那么你将会看到错误信息,而你可以逐渐的增加这个参数直到错误信息停止出现。

文件描述符。NGINX 对一个连接使用最多2个文件描述符。如果你的系统有很多连接请求,你可能就需要提高sys.fs.file_max ,以增加系统对文件描述符数量整体的限制,这样才能支持不断增加的负载需求。

临时端口。当使用代理时,NGINX 会为每个上游服务器创建临时端口。你可以设置net.ipv4.ip_local_port_range 来提高这些端口的范围,增加可用的端口号。你也可以减少非活动的端口的超时判断来重复使用端口,这可以通过 net.ipv4.tcp_fin_timeout 来设置,这可以快速的提高流量。

Tip #9: web 服务器性能调优

无论你是用哪种 web 服务器,你都需要对它进行优化来提高性能。下面的推荐手段可以用于任何 web 服务器,但是一些设置是针对 NGINX 的。关键的优化手段包括:

访问日志。不要把每个请求的日志都直接写回磁盘,你可以在内存将日志缓存起来然后批量写回磁盘。对于NGINX 来说,给指令 access_log 添加参数 buffer=size 可以让系统在缓存满了的情况下才把日志写到磁盘。如果你添加了参数 flush=time ,那么缓存内容会每隔一段时间再写回磁盘。

缓存。缓存会在内存中存放部分响应,直到满了为止,这可以让与客户端的通信更加高效。内存放不下的响应会写回磁盘,而这就会降低效能。当 NGINX 启用了缓存机制后,你可以使用指令 proxy_buffer_size 和 proxy_buffers 来管理缓存。

客户端保活。保活连接可以减少开销,特别是使用 SSL/TLS 时。对于 NGINX 来说,你可以从 keepalive_requests 的默认值 100 开始增加最大连接数,这样一个客户端就可以在一个指定的连接上请求多次,而且你也可以通过增加 keepalive_timeout 的值来允许保活连接存活更长时间,这样就可以让后来的请求处理的更快速。

上游保活。上游的连接——即连接到应用服务器、数据库服务器等机器的连接——同样也会受益于连接保活。对于上游连接来说,你可以增加 keepalive,即每个工人进程的空闲保活连接个数。这就可以提高连接的复用次数,减少需要重新打开全新连接的次数。

限制。限制客户端使用的资源可以提高性能和安全性。对于 NGINX 来说,指令 limit_conn 和 limit_conn_zone 限制了给定来源的连接数量,而 limit_rate 限制了带宽。这些限制都可以阻止合法用户扒取资源,同时也避免了攻击。指令 limit_req 和 limit_req_zone 限制了客户端请求。对于上游服务器来说,可以在 upstream 的配置块里的 server 指令使用 max_conns 参数来限制连接到上游服务器的连接数。 这样可以避免服务器过载。关联的 queue 指令会创建一个队列来在连接数抵达 max_connS 限制时在指定长度的时间内保存特定数量的请求。

工人进程。工人进程负责处理请求。NGINX 采用事件驱动模型和操作系统特定的机制来有效的将请求分发给不同的工人进程。这条建议推荐设置 worker_processes 为每个 CPU 一个 。worker_connections 的最大数(默认512)可以在大部分系统上根据需要增加,实验性地找到最适合你的系统的值。

套接字分割。通常一个套接字监听器会把新连接分配给所有工人进程。套接字分割会为每个工人进程创建一个套接字监听器,这样一来以当套接字监听器可用时,内核就会将连接分配给它。这可以减少锁竞争,并且提高多核系统的性能,要启用套接字分隔需要在 listen 指令里面加上 reuseport 参数。

线程池。计算机进程可能被一个单一的缓慢的操作所占用。对于 web 服务器软件来说,磁盘访问会影响很多更快的操作,比如计算或者在内存中拷贝。使用了线程池之后慢操作可以分配到不同的任务集,而主进程可以一直运行快速操作。当磁盘操作完成后结果会返回给主进程的循环。在 NGINX 里有两个操作——read() 系统调用和 sendfile() ——被分配到了线程池

2016420101738590.jpg (800×415)

技巧。当改变任何操作系统或支持服务的设置时,一次只改变一个参数然后测试性能。如果修改引起问题了,或者不能让你的系统更快,那么就改回去。

Tip #10: 监视系统活动来解决问题和瓶颈

在应用开发中要使得系统变得非常高效的关键是监视你的系统在现实世界运行的性能。你必须能通过特定的设备和你的 web 基础设施上监控程序活动。

监视活动是最积极的——它会告诉你发生了什么,把问题留给你发现和最终解决掉。

监视可以发现几种不同的问题。它们包括:

服务器宕机。

服务器出问题一直在丢失连接。

服务器出现大量的缓存未命中。

服务器没有发送正确的内容。

应用的总体性能监控工具,比如 New Relic 和 Dynatrace,可以帮助你监控到从远程加载网页的时间,而 NGINX 可以帮助你监控到应用交付端。当你需要考虑为基础设施添加容量以满足流量需求时,应用性能数据可以告诉你你的优化措施的确起作用了。

为了帮助开发者快速的发现、解决问题,NGINX Plus 增加了应用感知健康度检查 ——对重复出现的常规事件进行综合分析并在问题出现时向你发出警告。NGINX Plus 同时提供会话过滤功能,这可以阻止当前任务完成之前接受新的连接,另一个功能是慢启动,允许一个从错误恢复过来的服务器追赶上负载均衡服务器群的进度。当使用得当时,健康度检查可以让你在问题变得严重到影响用户体验前就发现它,而会话过滤和慢启动可以让你替换服务器,并且这个过程不会对性能和正常运行时间产生负面影响。下图就展示了内建的 NGINX Plus 模块实时活动监视的仪表盘,包括了服务器群,TCP 连接和缓存信息等 Web 架构信息。

2016420101801046.png (586×389)

总结: 看看10倍性能提升的效果

这些性能提升方案对任何一个 web 应用都可用并且效果都很好,而实际效果取决于你的预算、你能花费的时间、目前实现方案的差距。所以你该如何对你自己的应用实现10倍性能提升?

为了指导你了解每种优化手段的潜在影响,这里是上面详述的每个优化方法的关键点,虽然你的情况肯定大不相同:

反向代理服务器和负载均衡。没有负载均衡或者负载均衡很差都会造成间歇的性能低谷。增加一个反向代理,比如 NGINX ,可以避免 web 应用程序在内存和磁盘之间波动。负载均衡可以将过载服务器的任务转移到空闲的服务器,还可以轻松的进行扩容。这些改变都可以产生巨大的性能提升,很容易就可以比你现在的实现方案的最差性能提高10倍,对于总体性能来说可能提高的不多,但是也是有实质性的提升。

缓存动态和静态数据。如果你有一个负担过重的 web 服务器,那么毫无疑问肯定是你的应用服务器,只通过缓存动态数据就可以在峰值时间提高10倍的性能。缓存静态文件可以提高几倍的性能。

压缩数据。使用媒体文件压缩格式,比如图像格式 JPEG,图形格式 PNG,视频格式 MPEG-4,音乐文件格式 MP3 可以极大的提高性能。一旦这些都用上了,然后压缩文件数据可以将初始页面加载速度提高两倍。

优化 SSL/TLS。安全握手会对性能产生巨大的影响,对它们的优化可能会对初始响应产生2倍的提升,特别是对于大量文本的站点。优化 SSL/TLS 下媒体文件只会产生很小的性能提升。

使用 HTTP/2 和 SPDY。当你使用了 SSL/TLS,这些协议就可以提高整个站点的性能。

对 Linux 和 web 服务器软件进行调优。比如优化缓存机制,使用保活连接,分配时间敏感型任务到不同的线程池可以明显的提高性能;举个例子,线程池可以加速对磁盘敏感的任务近一个数量级。

 

篇二 : Win8优化硬盘驱动器提高性能的技巧

 

可以提高电脑性能的最佳方式之一是优化硬盘驱动器。 Windows 中包含的功能有助于优化电脑如今所使用的各种类型的驱动器。 不论你的电脑使用的是何种类型的驱动器,Windows 都会自动选择适合驱动器的优化方式。

默认情况下,“优化驱动器”(以前称为“磁盘碎片整理程序”)会每周自动运行。 但你也可以手动优化电脑的驱动器。

手动优化驱动器的步骤

1.通过以下方式打开“优化驱动器”:从屏幕的右边缘向中间轻扫,点击“搜索”(如果使用鼠标,则指向屏幕的右上角,然后将指针向下移动,再单击“搜索”),在搜索框中输入碎片整理,然后依次点击或单击“设置”和“对你的驱动器进行碎片整理和优化”。

2.在“状态”下,点击或单击要优化的驱动器。 (“媒体类型”列会显示所优化的驱动器类型。)

3.若要确定是否需要对驱动器进行优化,请点击或单击“分析”。 系统可能要求你提供管理员密码或确认你的选择。

当 Windows 完成分析驱动器后,检查“当前状态”列以查看是否需要优化驱动器。 如果驱动器的碎片比例超过 10%,则应立即优化驱动器。

4.点击或单击“优化”。 系统可能要求你提供管理员密码或确认你的选择。

驱动器优化可能会在任何位置进行,完成时间从几分钟到几小时,具体取决于驱动器的大小和所需的优化程度。 在优化过程中,仍然可以使用电脑。

注意:

如果驱动器正由其他程序使用,或者使用 NTFS、FAT 或 FAT32 之外的文件系统进行格式化,则无法优化该驱动器。

不能对网络驱动器进行优化。

如果驱动器未出现在“优化驱动器”中,则可能是由于该驱动器中含有错误。 请先尝试修复该驱动器,然后返回到“优化驱动器”重试。 有关详细信息,请参阅本文末尾的“修复驱动器的步骤”。

更改优化计划的步骤

1.通过以下方式打开“优化驱动器”:从屏幕的右边缘向中间轻扫,点击“搜索”(如果使用鼠标,则指向屏幕的右上角,然后将指针向下移动,再单击“搜索”),在搜索框中输入碎片整理,然后依次点击或单击“设置”和“对你的驱动器进行碎片整理和优化”。

2.点击或单击“更改设置”。 系统可能要求你提供管理员密码或确认你的选择。

3.执行下列操作之一:

若要关闭计划优化,请清除“按计划运行”复选框。

若要更改计划优化的频率,请在“频率”旁点击或单击下拉列表,然后点击或单击“每天”、“每周”或“每月”。 默认优化计划是每周在“自动维护”期间运行。

若要选择要包含在计划优化中或从计划优化中排除的驱动器,请在“驱动器”旁点击或单击“选择”,选中或清除驱动器旁的复选框,然后点击或单击“确定”。 如果你不希望新驱动器添加到计划优化中,也可以清除“自动优化新驱动器”复选框。 如果 Windows 无法优化某个驱动器,则它不会将此驱动器作为“自动维护”的选项。

4.点击或单击“确定”。

修复驱动器的步骤

1.通过以下方式打开“计算机”:从屏幕的右边缘向中间轻扫,点击“搜索”(如果使用鼠标,则指向屏幕的右上角,然后将指针向下移动,再单击“搜索”),在搜索框中输入计算机,然后依次点击或单击“应用”和“计算机”。

2.按住或右键单击要修复的驱动器,然后点击或单击“属性”。

3.点击或单击“工具”选项卡,然后在“错误检查”下,点击或单击“检查”。 系统可能要求你提供管理员密码或确认你的选择。

4.按照说明执行操作。 错误检查完成后可能需要重新启动电脑。

 

篇三 : 笔记本性能优化技巧几则

 

经常频繁往返于本本和台机的人,往往会奇怪的发现,即使是差不多配置的电脑,台机的性能也会明显的强于本本,就这样,本本在某些时候,也是高价低能的代名词呢。那事实究竟如何呢?让我们从头分析一下吧。

本本由于设计理念和台机上的差别,以及受限于硬件上的先天条件,例如本本硬盘的转速要比台机低,显卡、cpu、主板等影响性能主要的配件受功耗的限制,也不能像台机一样以性能为唯一目标,甚至,是以节能为目标,性能反而放在第二位呢。因此,在客观上,本本的性能的确要比同等配置的台机低。

恩,既然是客观存在的问题,那就算了,我们就忍受本本缓慢的速度吧,这样的想法,也是不对的。虽然性能差距的确存在,但经过优化,本本和台机的性能差距并不会像他们表现出来的那么明显,至少,缩小到一个可以忍受的范围之内吧。下面我们就一起来看一看具体的优化过程吧。

优化开机速度

这点上其实和台机是共通的,在bios里把quick boot选项打开,可以减少开机自检的时间。另外,把first boot device设置成hard disk,并关闭软驱和光驱的检测,这样都可以提升开机速度。

优化cpu性能

笔记本cpu和台机cpu的最大区别除了功耗和电压,就是笔记本cpu支持节电模式,在很多情况下会自动降低运行频率以节约电力。虽然一般情况下,节电模式只有在使用电池时才会起作用,但我的确见过若干案例,即使在使用电源的时候,cpu也在降频工作。因此,在不经常使用电池的情况下,不妨关闭cpu节电功能。方法是在bios里把cpu设置成max performance,每个品牌的本本可能略有不同,但基本上是这个意思。正确设置CPU的缓存也很重要,Windows XP无法自动检测处理器的二级缓存容量,需要我们自己在注册表中手动设置,首先打开注册表(运行中输入“Regedit”),打开: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management,选择“SecondLevelDataCache”,根据自己所用的处理器设置即可,例如PIII 的本本一般是“512”,迅驰的本本则是“1024”

优化内存性能

然后是内存性能,内存带宽上笔记本和台机相差不是很大,外频也基本相当,因此这项实际上两者差距不大,而且,基本上也无法优化。只是,笔记本由于磁盘性能低下,大内存的优势在笔记本上更能得到体验,因此,只要条件许可,应该尽量增大本本内存的容量,即使512MB也不算多,而最低限度也应该达到256MB。

然后是最重要的磁盘性能。事实上,所谓的本本性能低下,绝大多数情况下就是本本磁盘性能的低下造成的。要提升本本磁盘性能,从硬件上就是换转速更快,缓存更大的本本硬盘,但这操作起来可能有一定的难度。而软件上的优化,则方便易行的多。软件上的优化主要是两个方面,一方面,用尽量多的内存作为磁盘缓存,增加突发传输的速率,另一方面,就是尽量多空出一些物理内存来,以减少虚拟内存的使用。具体操作如下:

修改磁盘缓存

增加磁盘缓存对提升磁盘性能有比较显著的效果。从理论上说,设的越多越好,但是,这最终还是取决于你的本本拥有的内存容量的多少。运行 "regedit",找到[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSessionManagerMemory ManagementIoPageLockLimit]; 根据你的内存修改其十六进制值,推荐值如下

64M: 1000;

128M: 4000;

256M: 10000;

512M或更大: 40000.

最后,我们在运行菜单输入msconfig,把所有不需要用到的自启动程序全部清除,尽量的减少开机后驻留内存的程序数目,一来提升了开机速度,二来也减少了内存的占用,减少了使用虚拟内存的几率。

好了,经过以上这么一番设置优化以后,您的本本即使称不上运作如飞,也肯定相比原来有了脱胎换骨的表现。这一切,仅仅需要做些简单的设置而已。还犹豫什么呢?赶快试试看吧。

篇四 : 快速优化U盘的小技巧提升Win7下的U盘的性能

 

小小的U盘,关于它的知识还真的是很多,现在的U盘一般是8G、16G了,写入速度却相对显得不足,现在为你介绍一个快速优化U盘的小技巧,可以修改一下系统就大大提升Windows 7下的U盘的性能。

这个方法跟我们所知的提升SATA硬盘性能的方法差不多,也就是开启"高级写入缓存(advanced write caching)",这种方法修改之后会增大作为写入缓存的系统内存容量,从而提升写入U盘的性能。不过它并不能让你更快的塞满一个8G大小的U盘,而是使得U盘对其他系统进程的响应速度更快,对于向U盘传输大量小文件或者是在优盘上运行某个应用程序的情形下性能提升明显。

方法其实很简单,首先打开设备管理器,然后打开"磁盘"列表,可以看到系统连接上的各个盘,其中包括了你的U盘。在这个U盘上点右键,选择"属性",打开"策略"选项卡,可以看到两个选项,一个是优化快速移除(Optimize for quick removal),一个是优化性能(Optimize for performance),选择下面那一个就可以了。

点OK之后需要重启生效,需要注意的是这个改动不是随U盘而动而是保存在这台电脑里的,如果你把U盘插入其他电脑,就需要在这台电脑上也如此设置。

篇五 : 优化Linux服务器硬盘性能的七个实用技巧

 

所有的文件系统随着时间的推移都趋向于碎片化。linux文件系统减少了碎片化,但是并没有消除。由于它不经常出现,所以对于一个单用户的工作站来说,可能根本不是问题。然而在繁忙的服务器中,随着时间的过去,文件碎片化将降低硬盘性能,硬盘性能只有从硬盘读出或写入数据时才能注意到。下面是优化linux系统硬盘性能的一些具体措施。一、清理磁盘

这种方法看上去很简单:清理磁盘驱动器,删除不需要的文件,清除所有需要被保存但将不被使用的文件。如果可能的话,清除多余的目录,并减少子目录的数目。这些建议似乎显而易见,但是你会惊讶地发现,每个磁盘上确实积累了非常多的垃圾。释放磁盘空间可以帮助系统更好地工作。

二、整理磁盘碎片

linux系统上的磁盘碎片整理程序与windows 98或windows nt系统中的磁盘碎片整理程序不同。windows 98引入fat 32文件系统,虽然运行windows 98不必转换为fat 32文件系统。windows可以被设置为使用fat或一个叫ntfs的增强文件系统。所有这些文件系统以本质上相同的方式处理文件存储。

linux最好的整理磁盘碎片的方法是做一个完全的备份,重新格式化分区,然后从备份恢复文件。当文件被存储时,它们将被写到连续的块中,它们不会碎片化。这是一个大工作,可能对于像/usr之类不经常改变的程序分区是不必要的,但是它可以在一个多用户系统的/home分区产生奇迹。它所花费的时间与windows nt服务器磁盘碎片整理花费的时间大致上相同。

如果硬盘性能仍不令人满意,还有许多其它的步骤可以考虑,但是任何包含升级或购买新设备的硬件解决方案可能会是昂贵的。

三、从ide升级到scsi

如果你的硬盘是一个ide驱动器,可以通过升级到scsi驱动器获得更好的整体性能。因为ide控制器必须访问cpu,cpu和磁盘密集型操作可能变得非常缓慢。scsi控制器不用通过cpu处理读写。当ide驱动器在读或写时,用户可能会因为cpu周期被ide驱动器占用而抱怨系统的缓慢。

获取更快的控制器和磁盘驱动器

标准的scsi控制器不能比标准的ide控制器更快地读写数据,但是一些非常快的“ultrawide”scsi控制器能够使读写速度有一个真正的飞跃。

eide和udma控制器是非常快的ide控制器。新的udma控制器能够接近scsi控制器的速度。udma控制器的顶级速度是猝发速度,但持续传输的速度明显慢得多。ide控制器包括udma,是嵌入在驱动器本身中的。不需要购买一个控制器,只要购买一个驱动器,它就包含了控制器,可以获得 udma性能。

磁盘驱动器经常忽视的一个方面是磁盘本身的速度。磁盘的速度以rpm为单位给出,它代表每分钟旋转多少次。rpm越大,磁盘速度也越快。如果你有这方面的预算,大多数服务器系统厂商可提供7500rpm甚至10000rpm scsi磁盘。标准scsi和ide磁盘提供5400rpm速度。

四、使用多个控制器

ide和scsi磁盘可以被链接。ide链最多包括两个设备,标准scsi链最多包括七个设备。如果在系统中有两个或更多scsi磁盘,很可能被链接到同一个控制器。这样对大多数操作是足够的,尤其是把计算机当作单用户的工作站时。但是如果有一个服务器,那么就能够通过对每个scsi驱动器提供一个控制器改善性能。当然,好的控制器是昂贵的。

五、调整硬盘参数

使用hdparm工具可以调整ide硬盘性能,它设计时专门考虑了使用udma驱动器。在缺省情况下,linux使用是最安全的,但是设置访问ide驱动器是最慢的。缺省模式没有利用udma可能的最快的性能。

使用hdparm工具,通过激活下面的特性可以显著地改善性能:

◆ 32位支持 缺省设置是16位;

◆ 多部分访问 缺省设置是每次中断单部分传送。

注意:在使用hdparm之前,确保对系统已经做了完全的备份。使用hdparm改变ide参数,如果出错可能会引起驱动器上全部数据的丢失。

hdparm可以提供关于硬盘的大量信息。打开一个终端窗口,输入下面命令获取系统中第一个ide驱动器的信息(改变设备名获取其它ide驱动器的信息): hdparm -v /dev/had

上面命令显示出当系统启动时从驱动器获得的信息,包括驱动器操作在16位或32位模式(i/o support)下,是否为多部分访问(multcount)。关于磁盘驱动器的更详细信息的显示可使用-i参数。

hdparm也可以测试驱动器传输速率。输入命令测试系统中第一个ide驱动器: hdparm -tt /dev/hda

此测试可测量驱动器直接读和高速缓冲存储器读的速度。结果是一个优化的“最好的事例”数字。改变驱动器设置,激活32位传输,输入下面的命令: hdparm -c3 /dev/hda

-c3参数激活32位支持,使用-c0可以取消它。-c1参数也可激活32位支持并使用更少的内存开销,但是在很多驱动器下它不工作。

大多数新ide驱动器支持多部分传输,但是linux缺省设置为单部分传输。注意:这个设置在一些驱动器上,激活多部分传输能引起文件系统的完全崩溃。这个问题大多数发生在较老的驱动器上。输入下面的命令激活多部分传输: hdparm -m16 /dev/hda

-m16参数激活16部分传输。除了西部数据的驱动器外,大多数驱动器设置为16或32部分是最合适的。西部数据的驱动器缓冲区小,当设置大于8部分时性能将显著下降。对西部数据驱动器来说,设置为4部分是最合适的。

激活多部分访问能够减少cpu负载30%~50%,同时可以增加数据传输速率到50%。使用-m0参数可以取消多部分传输。

hdparm还有许多选项可设置硬盘驱动器,在此不详述。

六、使用软件raid

raid廉价驱动器的冗余阵列,也可以改善磁盘驱动器性能和容量。linux支持软件raid和硬件raid。软件raid嵌入在linux 内核中,比硬件raid花费要少得多。软件raid的惟一花费就是购买系统中的磁盘,但是软件raid不能使硬件raid的性能增强。硬件raid使用特殊设计的硬件,控制系统的多个磁盘。硬件raid可能是昂贵的,但是得到的性能改善与之相匹配。raid的基本思想是组合多个小的、廉价的磁盘驱动器成为一个磁盘驱动器阵列,提供与大型计算机中单个大驱动器相同的性能级别。raid驱动器阵列对于计算机来说像单独一个驱动器,它也可以使用并行处理。磁盘读写在raid磁盘阵列的并行数据通路上同时进行。

ibm公司在加利福尼亚大学发起一项研究,得到raid级别的一个最初定义。现在有六个已定义的raid级别,如下所示。

raid 0:级别0只是数据带。在级别0中,数据被拆分到多于一个的驱动器,结果是更高的数据吞吐量。这是raid的最快和最有效形式。但是,在这个级别没有数据镜像,所以在阵列中任何磁盘的失败将引起所有数据的丢失。

raid 1:级别1是完全磁盘镜像。在独立的磁盘上创建和支持数据两份拷贝。级别1阵列与一个驱动器相比读速度快、写速度慢,但是如果任一个驱动器错误,不会有数据丢失。这是最昂贵的raid级别,因为每个磁盘需要第二个磁盘做它的镜像。这个级别提供最好的数据安全。

raid 2:级别2设想用于没有内嵌错误检测的驱动器。因为所有的scsi驱动器支持内嵌错误检测,这个级别已过时,基本上没用了。linux不使用这个级别。

raid 3:级别3是一个有奇偶校验磁盘的磁盘带。存储奇偶校验信息到一个独立的驱动器上,允许恢复任何单个驱动器上的错误。linux不支持这个级别。

raid 4:级别4是拥有一个奇偶校验磁盘的大块带。奇偶校验信息意味着任何一个磁盘失败数据可以被恢复。级别4阵列的读性能非常好,写速度比较慢,因为奇偶校验数据必须每次更新。

raid 5:级别5与级别4相似,但是它将奇偶校验信息分布到多个驱动器中。这样提高了磁盘写速度。它每兆字节的花费与级别4相同,提高了高水平数据保护下的高速随机性能,是使用最广泛的raid系统。

软件raid是级别0,它使多个硬盘看起来像一个磁盘,但是速度比任何单个磁盘快得多,因为驱动器被并行访问。软件raid可以用ide或scsi控制器,也可以使用任何磁盘组合。

七、配置内核参数

通过调整系统内核参数改善性能有时是很明显的。如果你决定要这样做一定要小心,因为系统内核的改变可能优化系统,也可能引起系统崩溃。

注意:不要在一个正在使用的系统上改变内核参数,因为有系统崩溃的危险。因此,必须在一个没有人使用的系统上进行测试。设置一个测试机器,对系统进行测试,确保所有工作正常。

tweak内存性能

在linux中,可以tweak系统内存。如果遇到内存不足错误或者系统是用于网络的,可以调整内存分配设置。

内存一般以每页4千字节分配。调整“空白页”设置,可以在性能上有显著的改善。打开终端窗口,输入下面的命令查看系统的当前设置: cat /proc/sys/vm/freepages

这样将获得三个数字,就像下面这样: 128 256 384

这些是最小空白页、空白页低和空白页高设置。这些值在启动时决定。最小设置是系统中内存数量的两倍;低设置是内存数量的4倍;高设置是系统内存的6倍;自由内存不能小于最小空白页数。

如果空白页数目低于空白页高设置,则交换(使用磁盘空间分配到交换文件)开始。当达到空白页低设置时,密集型交换开始。

增加空白页高设置有时可以改善整体性能,比如试试增加高设置到1mb,用echo命令可以调整这个设置。使用样本设置,输入这个命令增加空白页高设置到1mb: echo "128 256 1024" > /proc/sys/vm/freepages

注意:当系统还没有被使用时测试这个设置,以确保在做任何调整时监视系统性能。这样可以确定哪个设置对系统是最好的。

转载于:https://www.cnblogs.com/oneasdf/p/9261779.html

你可能感兴趣的文章
三伯娘
查看>>
spring boot 缺点优点?
查看>>
Coherence Step by Step 第一篇 入门(二) 安装Oracle Coherence(翻译)
查看>>
python之pip安装mysql-python失败
查看>>
POJ 1042 Gone Fishing
查看>>
虚拟机linux下使用cuteftp
查看>>
.NET短距离领域通信-32feet.NET
查看>>
流的概念(来自MSDN)
查看>>
学习opencv-------函数使用二(图像变换)
查看>>
第二次作业及总结——数据类型和运算符
查看>>
靠自己开创这里所没有的未来~
查看>>
c#获取文件图标
查看>>
微信二维码支付native原生支付开发模式二
查看>>
数学图形(1.24)巴斯加线与蚶线
查看>>
线程操作之创建线程
查看>>
第六章学习小结
查看>>
CSS竖向步骤条
查看>>
Struts中ActionContext和ServletActionContext的比较
查看>>
Win7系统32位和64位的区别
查看>>
POJ 2352 Stars
查看>>