⑴ 怎样提高Windows服务器性能
这里有许多你只需要做简单的操作就能对提高服务器的性能有所帮助。所有的这些都不可能对移动页文件到一个指定磁盘有什么异常情况发生,尽管大多数的操作需要手动完成,但是这些所有的技巧都能够显著地提高服务器的性能。
大多数讨论关于优化服务器性能的文章都会集中在使用性能监视器来寻找性能瓶颈问题。性能监视器对于如何提高服务器性能来说,确实是一个优秀的工具。但是,使用性能监视器,是需要用户必须了解性能监视器中产生的数据都是些什么意思。
那么,这里有十项能够帮助你做提高服务器性能的事情
1.为页文件使用专用磁盘
这项技巧可能是最大限度的提高你服务器性能的方法。默认情况下,Windows创建一个页文件,将它作为虚拟内存。因为Windows会频繁的使用这个文件。这个文件最好的存储位置就是在一个专门磁盘上(注意:不是单独卷)。服务器性能做这些会确保Windows在读取页文件数据前,而将不需等待其他的应用使用硬盘完成。
2.保证你的硬盘定期运行磁盘碎片整理程序服务器性能
现今的磁盘在执行连续不断的读取时,其实是很快的。然而,当磁盘被请求去读取散乱存放的数据时,Windows的性能就会下降。通过运行磁盘碎片整理程序,你能够确保文件能以顺序的方式而不是杂乱无章的存放在磁盘上,从而,你的计算机将会高效地读取文件。
3.使用NTFS文件系统
尽管对于Windows服务器版本操作系统来说,NTFS是默认的文件系统,Windows是支持使用FAT和FAT-32文件系统的。我读过的每一本MSCE培训教程推荐使用NTFS文件系统是因为它比FAT和FAT-32文件系统使用中更安全。服务器性能但是这些书籍中都没有提及NTFS是一种基于处理(transaction-based)的文件系统。这就意味着相比较FAT和FAT-32文件系统而言,NTFS文件系统更快。
4.避免运行16-位应用
64位Windows操作系统根本不能够运行16位应用,所以说这一项对于64位操作系统来说并不是个问题。但是,32位Windows操作系统将会运行16位应用。使用多任务处理模式的Windows更多的使用16位应用。服务器性能讨论Windows的多任务处理使用16位应用将需要单独开篇说明,但是可以确定的说,运行16位应用会对降低性能。
5.查找内存泄漏(memory leaks)
内存泄漏很难被写成是一个应用上的问题。通常情况下,它会为一个应用去在一个需要的基础上请求操作系统中的内存。典型的是,当应用不再被运行时,它将会把内存释放给操作系统。如果一个应用包括了一个内存泄漏,当它被运行时,将会向内存发出请求,但是当使用完毕后,释放内存是失败的。服务器性能当下一次应用需要内存时,它将会向Windows要求的内存数比上一次要多。长此以往,Windows能够为其他的应用提供的内存数将会越来越少。
最初,内存泄漏对系统性能的影响是可以忽略不计的,但是当这样的泄漏变得越来越多的时候,它对系统性能的影响就会凸现出来。
尽管我曾经说过我不会在这篇文章中讨论性能监控器,但是对于查找内存泄漏来说,性能监控器是最佳工具。
6.移除那些极少使用的组件
我曾经购买的每一台服务器上都会装上各种各样的监控或者日志组件。如果你能够有计划有规律的使用这些组件的话,在计算机上安装这些组件算不得什么不正确的选择。服务器性能但是令我吃惊的是有很多系统管理员安装(或者从不移除)那些服务器上的组件,并且实际上除了浪费系统资源外,它们甚至从来没被运行过。
7.停止运行那些不使用的服务
在一篇类似的文章中,我也推荐浏览服务控制管理器,并关闭那些没有被用到的服务。这样不但能够提高我们的服务器性能,另外它也可以提高服务器的安全性。计算机有一条法则描述了被执行的代码越多,代码中包含的不安全因素的机会就会增多。通过关闭那些不使用的服务,你做得即是减少执行代码的大小,从而降低服务器包含的安全漏洞被利用的机会。
8.注销
这是另一个你能够提高服务器安全和性能的方法。当你不再使用控制台的时候,出于安全原因考虑,你应该进行注销操作。服务器性能 同时,在你登陆时,Windows将会加载你的用户属性,这将会消耗内存和CPU。
9.压缩磁盘
当微软发布MS-DOS5.0时,它们介绍了其磁盘压缩的特色功能。当时的情况是让硬盘或者软盘能够通过压缩功能存储更多的数据。当我试着使用磁盘压缩技术,这时,我的计算机运行就慢了下来,我就改回使用一个没有压缩的磁盘,并且直到最近再没有使用过压缩。
现在,在正常的情况下,压缩确实能够提高系统性能。在一台计算机中,硬盘算得上是运行最慢的部分了。然而,如果你能够压缩一个文件,你就是减少了它的物理大小,这也将会减少从硬盘中读取它的时间量。
同时,一个压缩文件必须在它从磁盘读取后被解压。解压操作通常是占用内存,并且进程会附带的使用一些CPU时间。如果你的服务器运行一个磁盘加强的应用来解决大量的分散文件(不是一个数据库),执行压缩能够提高系统性能。
10.调整服务器响应
与个人计算机不同的是服务器并不总是从服务器的控制台那里运行应用。那么,最优化服务器是将获得优先权的应用到后台执行。
你可以通过打开服务器的控制面板,并双击系统图标。当窗口中显示系统属性标签时,转到“高级”标签项,找到性能设置部分,并点击设置按钮。窗口中将会显示性能选项属性标签。转到属性标签中的高级选项,并确定服务器设置为后台服务的最佳性能。
⑵ 如何提高Linux服务器磁盘io性能
您好,很高兴为您解答。
在现有文件系统下进行优化:
linux内核和各个文件系统采用了几个优化方案来提升磁盘访问速度。但这些优化方案需要在我们的服务器设计中进行配合才能得到充分发挥。
文件系统缓存
linux内核会将大部分空闲内存交给虚拟文件系统,来作为文件缓存,叫做page cache。在内存不足时,这部分内存会采用lru算法进行淘汰。通过free命令查看内存,显示为cached的部分就是文件缓存了。
如何针对性优化:
lru并不是一个优秀淘汰算法,lru最大的优势是普适性好,在各种使用场景下都能起到一定的效果。如果能找到当前使用场景下,文件被访问的统计特征,针 对性的写一个淘汰算法,可以大幅提升文件缓存的命中率。对于http正向代理来说,一个好的淘汰算法可以用1GB内存达到lru算法100GB内存的缓存 效果。如果不打算写一个新的淘汰算法,一般不需要在应用层再搭一个文件cache程序来做缓存。
最小分配:
当文件扩大,需要分配磁盘空间时,大部分文件系统不会仅仅只分配当前需要的磁盘空间,而是会多分配一些磁盘空间。这样下次文件扩大时就可以使用已经分配好的空间,而不会频繁的去分配新空间。
例如ext3下,每次分配磁盘空间时,最小是分配8KB。
最小分配的副作用是会浪费一些磁盘空间(分配了但是又没有使用)
如何针对性优化:
我们在reiserfs下将最小分配空间从8KB改大到128K后提升了30%的磁盘io性能。如果当前使用场景下小文件很多,把预分配改大就会浪费很多 磁盘空间,所以这个数值要根据当前使用场景来设定。似乎要直接改源代码才能生效,不太记得了,09年的时候改的,有兴趣的同学自己google吧。
io访问调度:
在同时有多个io访问时,linux内核可以对这些io访问按LBA进行合并和排序,这样磁头在移动时,可以“顺便”读出移动过程中的数据。
SATA等磁盘甚至在磁盘中内置了io排序来进一步提升性能,一般需要在主板中进行配置才能启动磁盘内置io排序。linux的io排序是根据LBA进行的,但LBA是一个一维线性地址,无法完全反应出二维的圆形磁盘,所以磁盘的内置io排序能达到更好的效果。
如何针对性优化:
io访问调度能大幅提升io性能,前提是应用层同时发起了足够的io访问供linux去调度。
怎样才能从应用层同时向内核发起多个io访问呢?
方案一是用aio_read异步发起多个文件读写请求。
方案二是使用磁盘线程池同时发起多个文件读写请求。
对我们的http正向代理来说,采用16个线程读写磁盘可以将性能提升到2.5倍左右。具体开多少个线程/进程,可以根据具体使用场景来决定。
小提示:
将文件句柄设置为非阻塞时,进程还是会睡眠等待磁盘io,非阻塞对于文件读写是不生效的。在正常情况下,读文件只会引入十几毫秒睡眠,所以不太明显;而在磁盘io极大时,读文件会引起十秒以上的进程睡眠。
预读取:
linux内核可以预测我们“将来的读请求”并提前将数据读取出来。通过预读取可以减少读io的次数,并且减小读请求的延时。
如何针对性优化:
预读取的预测准确率是有限的,与其依赖预读取,不如我们直接开一个较大的缓冲区,一次性将文件读出来再慢慢处理;尽量不要开一个较小的缓冲区,循环读文件/处理文件。
虽然说“预读取”和“延迟分配”能起到类似的作用,但是我们自己扩大读写缓冲区效果要更好。
延迟分配:
当文件扩大,需要分配磁盘空间时,可以不立即进行分配,而是暂存在内存中,将多次分配磁盘空间的请求聚合在一起后,再进行一次性分配。
延迟分配的目的也是减少分配次数,从而减少文件不连续。
延迟分配的副作用有几个:
1、如果应用程序每次写数据后都通过fsync等接口进行强制刷新,延迟分配将不起作用
2、延迟分配有可能间歇性引入一个较大的磁盘IO延时(因为要一次性向磁盘写入较多数据)
只有少数新文件系统支持这个特性
如何针对性优化:
如果不是对安全性(是否允许丢失)要求极高的数据,可以直接在应用程序里缓存起来,积累到一定大小再写入,效果比文件系统的延迟分配更好。如果对安全性要求极高,建议经常用fsync强制刷新。
在线磁盘碎片整理:
Ext4提供了一款碎片整理工具,叫e4defrag,主要包含三个功能:
1、让每个文件连续存储
2、尽量让每个目录下的文件连续存储
3、通过整理空闲磁盘空间,让接下来的分配更不容易产生碎片
如何针对性优化:
“让每个目录下的文件连续存储”是一个极有价值的功能。
传统的做法是通过拼接图片来将这10张图片合并到一张大图中,再由前端将大图切成10张小图。
有了e4defrag后,可以将需连续访问的文件放在同一个文件夹下,再定期使用e4defrag进行磁盘整理。
实现自己的文件系统:
在大部分服务器上,不需要支持“修改文件”这个功能。一旦文件创建好,就不能再做修改操作,只支持读取和删除。在这个前提下,我们可以消灭所有文件碎片,把磁盘io效率提升到理论极限。
有一个公式可以衡量磁盘io的效率:
磁盘利用率 = 传输时间/(平均寻道时间+传输时间)
如若满意,请点击回答右侧【采纳答案】,如若还有问题,请点击【追问】
~ O(∩_∩)O~
⑶ 有什么有效提高服务器性能的方法
受教了,有机会可以去你们那看看服务器
⑷ 如何提升服务器的速度
你好来.我来解答下你的问自题.
影响服务器运行速度的因素是多方面的.比如说服务器的配置.带宽.所在机房网络环境.所用的网站程序.是否中病毒木马等.如果你的服务器是用的WIN系统.建议像平时优化自己电脑一样.可以从以下几个方面来优化提升性能:
一.借助于一些电脑管家.安全卫士等软件直接优化系统.
二.ASP的网站直接用IIS即可发布.不需要再配置PHP.NET等其他网站环境.安装的数据库太多也会降低服务器性能.
三.建议没用的软件以及程序删除掉.平时养成好的操作习惯.可以不用安装杀软.
四.定期更新系统补丁.并进行病毒和木马的扫描.
五.平时留意CPU.内存.以及带宽的占用情况.当配置不够用时及时升级.
海腾数据杨闯为你解答.希望以上回答对你有帮助.
⑸ 如何充分利用CPU资源提高服务器的性能
最好能具体说明你的问题
对于客户端来说 一般情况下 CPU 的占用在 20% 以下 如果是服务器 则要考虑 这个服务器具体的功能 是文件存储 还是计算 还是其它应用 但无论如何 CPU 的占用都不会高的离谱
如果认为这是一种浪费的话 可以引入虚拟服务器 即在一台实体 vmware 服务器上 安装多个服务器并分配资源 从而共享 CPU 资源
问题是 这种配置 未必是经济和性能最优
⑹ 如何提高服务器的性能
1、服务器系统架构的不合理。
服务器在设计时,必须考虑整个系统架构的高效、稳定,高的可靠性和可用性。这点我深有体会,在最近的一个项目中,由于服务器需要接受大批量小数据的多客户端并发请求,对服务器的业务处理提出了挑战。原先的设计采用的了串行业务处理流程,结果导致服务器大量业务堆积,造成丢包现象异常严重。经过讨论后,为了提高服务器的业务处理能力,采用了生产者——消费者模型,在业务上来时,直接进队,然后返回,继续接受下一个请求,缩短通信的滞留时间。然后多条业务线程从队列取业务,加快业务处理速度,这样就有效的提高了服务器处理业务的能力。
2、通信协议的不合理。
对于大批量小数据多客户端并发,可以考虑用UDP协议,由于UDP是一种无连接传输协议,可以有效的降低系统开销,特别对大批量小数据的请求,效果明显,而TCP在这种情况对系统的消耗是很大的,往往会导致连接被拒绝,或者socket句柄已经存在的错误。有人可能就会问了,在服务端可以采用短连接,这样就可以节约资源。其实不然,大量socket的创建与销毁本来就是一种对系统性能的极度消耗,有时这种还没有直接使用长连接来的效率高。
在目前的P3项目就有体现,原本我们采用的就是TCP连接,当时并发量一直提不上去,而且在大量并发下,系统出现Socket的错误,资源消耗及其大,所以之后采用UDP协议,而TCP作为备用方案,来防止UDP的不可靠性。
3、大批量的内存创建、销毁,以及一切有关内存的操作都会影响到系统性能
这点对小量的并发,体现的并不明显,但是在大量并发下,这就会性能造成严重影响,这种内存的创建,销毁,以及内存的COPY等会消耗掉系统50%~60%的性能。对这种情况,尽量在系统启动时,创建好内存资源,然后再业务处理完后,回收资源,重新利用,切忌在大量业务处理时,new新的内存,处理完后,又delete内存资源,这样对系统性能消耗及其大。
另外,对于自定的协议包处理,尽量少用涉及到内存操作的函数或者类型,比如memset,string等,这样在打包与解包时,都会对系统性能造成影响。
⑺ 关于linux服务器上磁盘io性能问题
hdparm没有考虑到缓存和物理读的区分,读取缓冲区的当然速度快
⑻ 如何让CentOS服务器磁盘io性能翻倍
如何让CentOS服务器磁盘io性能翻倍
这一期我们来看一下有哪些办法可以减少linux下的文件碎片。主要是针对磁盘长期满负荷运转的使用场景(例如http代理服务器);另外有一个小技巧,针对互联网图片服务器,可以将io性能提升数倍。如果为服务器订制一个专用文件系统,可以完全解决文件碎片的问题,将磁盘io的性能发挥至极限。对于我们的代理服务器,相当于把io性能提升到3-5倍。
在现有文件系统下进行优化linux内核和各个文件系统采用了几个优化方案来提升磁盘访问速度。但这些优化方案需要在我们的服务器设计中进行配合才能得到充分发挥。
文件系统缓存linux内核会将大部分空闲内存交给虚拟文件系统,来作为文件缓存,叫做page cache。在内存不足时,这部分内存会采用lru算法进行淘汰。通过free命令查看内存,显示为cached的部分就是文件缓存了。
如果能找到当前使用场景下,文件被访问的统计特征,针对性的写一个淘汰算法,可以大幅提升文件缓存的命中率。对于http正向代理来说,一个好的淘汰算法可以用1GB内存达到lru算法100GB内存的缓存效果。如果不打算写一个新的淘汰算法,一般不需要在应用层再搭一个文件cache程序来做缓存。
最小分配
最小分配的副作用是会浪费一些磁盘空间(分配了但是又没有使用)
如果当前使用场景下小文件很多,把预分配改大就会浪费很多磁盘空间,所以这个数值要根据当前使用场景来设定。似乎要直接改源代码才能生效,不太记得了,09年的时候改的,有兴趣的同学自己google吧。
io访问调度
如何针对性优化:io访问调度能大幅提升io性能,前提是应用层同时发起了足够的io访问供linux去调度。怎样才能从应用层同时向内核发起多个io访问呢?方案一是用aio_read异步发起多个文件读写请求。
小提示:将文件句柄设置为非阻塞时,进程还是会睡眠等待磁盘io,非阻塞对于文件读写是不生效的。在正常情况下,读文件只会引入十几毫秒睡眠,所以不太明显;而在磁盘io极大时,读文件会引起十秒以上的进程睡眠。详见内核源代码do_generic_file_read会调用lock_page_killable进入睡眠,但是不会判断句柄的非阻塞标志。
预读取linux内核可以预测我们“将来的读请求”并提前将数据读取出来。通过预读取可以减少读io的次数,并且减小读请求的延时。
当文件扩大,需要分配磁盘空间时,可以不立即进行分配,而是暂存在内存中,将多次分配磁盘空间的请求聚合在一起后,再进行一次性分配。
延迟分配的副作用有几个:1 如果应用程序每次写数据后都通过fsync等接口进行强制刷新,延迟分配将不起作用2 延迟分配有可能间歇性引入一个较大的磁盘IO延时(因为要一次性向磁盘写入较多数据)
如何针对性优化:
“让每个目录下的文件连续存储”是一个极有价值的功能。假设一个网页上有10张图片,这10张图片虽然存在10个文件中,但其实是几乎同时被用户访问的。如果能让这10张图片存储在连续的磁盘空间中,就能把io性能提升10倍(一次寻道就可以读10个文件了)传统的做法是通过拼接图片来将这10张图片合并到一张大图中,再由前端将大图切成10张小图。有了e4defrag后,可以将需连续访问的文件放在同一个文件夹下,再定期使用e4defrag进行磁盘整理。
实现自己的文件系统我们曾经写过一款专用文件系统,针对代理服务器,将磁盘io性能提升到3-5倍。在大部分服务器上,不需要支持“修改文件”这个功能。一旦文件创建好,就不能再做修改操作,只支持读取和删除。在这个前提下,我们可以消灭所有文件碎片,把磁盘io效率提升到理论极限。
大于16MB的文件,服务器创建文件时告诉文件系统分配16MB磁盘空间。后续每次扩大文件大小时,要么是16MB,要么就是文件终结。不允许在文件未终结的情况下分配非16MB的空间。读写文件时,每次读写16MB或者直到文件末尾。
在我们的文件系统中,小文件完全无碎片,一次寻道就能搞定一个文件,达到了理论上最佳的性能。大文件每次磁头定位读写16MB,性能没有达到100%,但已经相当好了。有一个公式可以衡量磁盘io的效率:磁盘利用率 = 传输时间/(平均寻道时间+传输时间)对我们当时采用的磁盘来说(1T 7200转sata),16MB连续读写已经可以达到98%以上的磁盘利用率。
⑼ 如何让linux服务器磁盘io性能翻倍
如何让CentOS服务器磁盘io性能翻倍
这一期我们来看一下有哪些办法可以减少下的文件碎片。主要是针对磁盘长期满负荷运转的使用场景(例如http代理服务器);另外有一个小技巧,针对互联网图片服务器,可以将io性能提升数倍。如果为服务器订制一个专用文件系统,可以完全解决文件碎片的问题,将磁盘io的性能发挥至极限。对于我们的代理服务器,相当于把io性能提升到3-5倍。
在现有文件系统下进行优化linux内核和各个文件系统采用了几个优化方案来提升磁盘访问速度。但这些优化方案需要在我们的服务器设计中进行配合才能得到充分发挥。
文件系统缓存linux内核会将大部分空闲内存交给虚拟文件系统,来作为文件缓存,叫做page cache。在内存不足时,这部分内存会采用lru算法进行淘汰。通过free命令查看内存,显示为cached的部分就是文件缓存了。
如果能找到当前使用场景下,文件被访问的统计特征,针对性的写一个淘汰算法,可以大幅提升文件缓存的命中率。对于http正向代理来说,一个好的淘汰算法可以用1GB内存达到lru算法100GB内存的缓存效果。如果不打算写一个新的淘汰算法,一般不需要在应用层再搭一个文件cache程序来做缓存。
⑽ 如何让CentOS服务器磁盘io性能翻倍centos
如何让CentOS服务器磁盘io性能翻倍
这一期我们来看一下有哪些办法可以减少linux下的文件碎片。主要是针对磁盘长期满负荷运转的使用场景(例如http代理服务器);另外有一个小技巧,针对互联网图片服务器,可以将io性能提升数倍。如果为服务器订制一个专用文件系统,可以完全解决文件碎片的问题,将磁盘io的性能发挥至极限。对于我们的代理服务器,相当于把io性能提升到3-5倍。
在现有文件系统下进行优化linux内核和各个文件系统采用了几个优化方案来提升磁盘访问速度。但这些优化方案需要在我们的服务器设计中进行配合才能得到充分发挥。
文件系统缓存linux内核会将大部分空闲内存交给虚拟文件系统,来作为文件缓存,叫做page cache。在内存不足时,这部分内存会采用lru算法进行淘汰。通过free命令查看内存,显示为cached的部分就是文件缓存了。
如果能找到当前使用场景下,文件被访问的统计特征,针对性的写一个淘汰算法,可以大幅提升文件缓存的命中率。对于http正向代理来说,一个好的淘汰算法可以用1GB内存达到lru算法100GB内存的缓存效果。如果不打算写一个新的淘汰算法,一般不需要在应用层再搭一个文件cache程序来做缓存。