如何使用Linux服务器内存交换提升性能
常见三大服务器负载问题有内存空间不足而无法加载应用,缓存文件时内存空间不足和过于频繁地使用内存交换。解决这三类问题可以基于Linux内存使用率最佳实践优化服务器,如将不活跃内存移到交换区。当然,在解决难题之前,每个独立的负载问题要求Linux内存分析。下面就让我们分别看看这三大问题该如何解决。 内存空间不足而无法加载应用 让一台没有足够内存的服务器去加载应用,这会出现内存短缺的情况。服务器会在缓冲区显示相对有限的内存数量,相应地,交换空间也使用得多。最简单的方法就是添加更多内存。不过优化Linux内存交换也能提升性能。确保不活跃内存页尽早交换出去,为所需的内存页腾出空间。 缓存文件时内存空间不足 如果你感觉缓存文件可能会出现内存不足的话,按照下面方法计算:如果可用缓存与缓存内存低于总RAM的30%,那么服务器可能遭遇内存不足。接下来检查/proc/meminfo的内容。如果不活跃(文件)内存总量明显高于缓存总量,那么服务器没有足够可用内存去缓存文件。在释放更多缓存时,首先查明是何种原因导致短缺。 如果Linux载入的程序要求太多内存的话,除了添加更多物理RAM内存别无他法。然而,使用内存的系统其它部分也可能导致缓存短缺。例如,将修改后的文件提交到磁盘可能需要很长时间。如果是这样,你会在投个程序中看到一个相对高的wa(等待I/O)参数,在/proc/meminfo会看见Dirty参数有个相对较高的值。如果是这样,修改磁盘性能是关键,能获得更好的内存性能。 内存交换用得太频繁 如果交换用得太多,vmstat监控工具会显示高si与so(换进与换出)动作。交换空间几乎填满,服务器可能的免费内存很低。 为了优化Linux内存,首先调查交换频繁的根源。通常,如果只有不活跃内存在交换区,那就不该有压力。在/proc/meminfo中,看交换量是否用得比不活跃内存的量还多。如果是,活跃内存页交换得很好,就算Linux内核需要经常访问活跃内存页。系统需要更多物理内存。 如果交换处于压力下,并分配了大量缓存,通过增加swappiness参数,可在服务器上减轻内存负载。更高的swappiness值让内核更快将内存页放到磁盘,减轻来自缓存的压力,让活跃内存得到更多可用内存。 更高的swappiness参数实际上降低了磁盘震荡,震荡通常由页频繁地换入换出而引起。增加的swappiness只是确保页移到应该待的交换区,使得服务器上的交换动作缓慢下来。
你好我来解答下你的问题
影响服务器运行速度的因素是多方面的比如说服务器的配置带宽所在机房网络环境所用的网站程序是否中病毒木马等如果你的服务器是用的WIN系统建议像平时优化自己电脑一样可以从以下几个方面来优化提升性能:
一借助于一些电脑管家安全卫士等软件直接优化系统
二ASP的网站直接用IIS即可发布不需要再配置PHPNET等其他网站环境安装的数据库太多也会降低服务器性能
三建议没用的软件以及程序删除掉平时养成好的操作习惯可以不用安装杀软
四定期更新系统补丁并进行病毒和木马的扫描
五平时留意CPU内存以及带宽的占用情况当配置不够用时及时升级
海腾数据杨闯为你解答希望以上回答对你有帮助
如何让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%以上的磁盘利用率。
对于用户而言,戴尔全新12G服务器在性能方面的表现恐怕是最关心的问题,那么与上一代产品相比,呢?本文将带您一探究竟。 近几年,通过不断的收购和战略转型,戴尔的产品方案已从传统服务器扩展到存储、虚拟化、网络安全等领域,整体解决方案和完整的体系架构显示了戴尔向企业级解决方案供应商转型的决心。在产品方面,戴尔12G服务器在设计和性能上取得了巨大突破。 应用程序和虚拟化 虚拟化技术是基于内存的解决方案,足够的内存才能支撑更多的虚拟机,因此内存的扩展性至关重要,此外,I/O的读写能力也是制约虚拟机性能的一个重要指标。相对于上一代至强5600处理器产品,新一代至强E5-2600处理器核心最大增加到8个;其次E5-2600系列增加了一条新的环形总线QPI,实现芯片之间的直接互联;此外E5-2600系列也支持PCI-E30,可以使I/O的带宽提升到两倍之多。 在内存密度方面,戴尔推出的12代服务器中,有多款服务器都已经能够提供了24个双列直插式存储模块的内存插槽,最多可以将内存扩展到768G这一特性足以应对实际中遇到的内存不足,扩展困难问题。 全面支持万兆以太网连接选项,戴尔12代服务器大大提升了虚拟应用的吞吐量,同时支持PCIe SSD,提供分层存储选项,支持更高的I/O吞吐量。此外,戴尔12G PowerEdge服务器同样对运行关键应用进行了优化,为了进一步降低存储数据的延迟,戴尔此次将极速闪存(Express Flash)技术和CacheCade技术添加到服务器产品中,为读数据块提供高速缓存。 在保障虚拟化应用的可靠性方面,戴尔12代服务器可借助冗余虚拟机管理程序来对故障做出自动化的处理,转移功能可最大限度地提高运行时间。 系统管理 在降低管理复杂性方面,借助于戴尔远程管理控制器(iDRAC7),管理员可通过服务器背板的接口对服务器进行远程管理。即使办公环境和数据中心相隔遥远,也能实时的对服务器进行控制和管理。同时,通过戴尔的iDRAC7卡和戴尔生命周期控制器,在戴尔最新的Life cycle controller(生命周期控制器)界面,我们可以非常容易对Raid卡进行配置,同时远程实现操作系统的安装。除了对操作系统的远程部署,通过生命周期控制器界面,还可以对系统固件更新,升级,回滚,并实现对硬件的控制。 直观的LCD智能面板技术便于管理人员随时了解服务器的运行状态。LCD液晶面板就像是服务器的眼睛,或者是了解服务器运行状态的窗口。借助清晰的液晶屏显示面板,IT人员可以查看或设置服务器网卡的IP地址和Mac地址,同时也可以查看远程控制器Idrac7卡的IP地址;实时监测硬盘工作状态,当某块硬盘出现故障时,IT人员可以迅速找出故障硬盘,同时也可以对服务器主要设备进行实时的监测。 此外,数据中心多台服务器的维护往往是不小的工作量,戴尔12G服务器集成了OpenManage系统管理方案,OpenManage是戴尔开发的IT系统管理解决方案,通过OpenManage管理系统用户可以方便快速的实现服务器的部署、服务器状态的监控和系统更新。戴尔OpenManage提供了“1对1”本地部署、“1对多”网络部署等多种方案,可以通过光盘引导快速完成单个服务器的部署,也可以利用戴尔部署工具包,通过网络快速实现多台PowerEdge服务器的部署,大大降低了服务器部署的难度,节省时间提高工作效率。 OpenManage对于IT经验不足的企业来说是个非常好的助手,它具备标准化的能源监控和警报功能,能够提供各种能源使用信息,确保IT人员能够及时且准确地了解服务器的使用情况,减少总体能耗和成本。此外,戴尔12G PowerEdge服务器自带的Dell OpenManage全面集成了VMware vCenter和微软System Center控制台,可大大简化虚拟机和服务器管理。 能耗与冷却 作为其OpenManage管理系统的一部分,Power Center为管理员提供更详细的能耗可视化界面和控制功能。Power Center结合英特尔节点管理器技术,提取并显示所提供的电力和温度信息,可以监控、报告并控制处理器、内存以及系统级能耗,跨机架、通道和数据中心集中监视和控制,当数据中心发生电源事件或过热时,通过OpenManage Power Center也可以在几毫秒内功率封顶。 专门数据中心中运行的工业标准服务器基本温度通常在10摄氏度到35摄氏度,但是在自然条件下,具备10摄氏度到35摄氏度环境的数据中心往往太有限。戴尔设计让服务器在更高的温度环境下运行,无冷却装置新风(Fresh Air)解决方案将室外空气引入数据中心支持制冷,使数据中心实现更低能耗。这种新风技术能让戴尔12G服务器能够真正在负5摄氏度到45摄氏度环境中正常运行,直接采用新鲜空气来制冷,从而节省大量的制冷费用。 数据洪流 当今数据的快速增长和海量并发为数据的读写能力提出了更高的要求,为了大幅度降低查询时间,戴尔新一代PowerEdge服务器上采用了前置热插拔PCIe固态硬盘,并引入极速闪存(Express Flash)技术和CacheCade技术,Express Flash闪盘可以提供更快的速度,将Microsoft SQL Server的每秒交易量提升18倍。 CacheCade技术可将一个固态硬盘分成多个固态存储,放在高速缓存中使用,自动跟踪从磁盘提取到闪存中的访问频率最高的数据块。CacheCade技术使SSD能作为硬盘前面的高性能控制器二级缓存,用以加速应用和工作负载性能。由于该技术可将超大容量的数据集存储在高速缓存中,因此有助于实现例如文件和Web服务器、数据挖掘、OLTP和数据库服务器等事务处理应用性能的最大化。而且该技术可实现高度的可扩展性,通过在硬盘驱动器配置中添加单部支持CacheCade的SSD虚拟驱动器,用户即可将数据库性能提升多达55%如果再添加一部支持CacheCade的SSD虚拟驱动器,数据库性能则能进一步提升达76% 网络 戴尔12G服务器全面支持万兆以太网,并提供可更换的网卡设计,戴尔精选网络模块(Select Network Adapter,SNA)家族提供了多种选择,支持广泛的网络I/O、连接速度的网络适配器。此外,万兆以太网(10GbE)模块至少支持NPAR技术,可以将一个万兆以太网端口拆分成最多四个,减少服务器上连接的线缆数量,简化数据中心的网络布线,NPAR真正独立于交换机的分区,不会受到交换架构的束缚,且独立于操作系统。
这里有许多你只需要做简单的操作就能对提高服务器的性能有所帮助。所有的这些都不可能对移动页文件到一个指定磁盘有什么异常情况发生,尽管大多数的操作需要手动完成,但是这些所有的技巧都能够显著地提高服务器的性能。
大多数讨论关于优化服务器性能的文章都会集中在使用性能监视器来寻找性能瓶颈问题。性能监视器对于如何提高服务器性能来说,确实是一个优秀的工具。但是,使用性能监视器,是需要用户必须了解性能监视器中产生的数据都是些什么意思。
那么,这里有十项能够帮助你做提高服务器性能的事情
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-DOS50时,它们介绍了其磁盘压缩的特色功能。当时的情况是让硬盘或者软盘能够通过压缩功能存储更多的数据。当我试着使用磁盘压缩技术,这时,我的计算机运行就慢了下来,我就改回使用一个没有压缩的磁盘,并且直到最近再没有使用过压缩。
现在,在正常的情况下,压缩确实能够提高系统性能。在一台计算机中,硬盘算得上是运行最慢的部分了。然而,如果你能够压缩一个文件,你就是减少了它的物理大小,这也将会减少从硬盘中读取它的时间量。
同时,一个压缩文件必须在它从磁盘读取后被解压。解压操作通常是占用内存,并且进程会附带的使用一些CPU时间。如果你的服务器运行一个磁盘加强的应用来解决大量的分散文件(不是一个数据库),执行压缩能够提高系统性能。
10调整服务器响应
与个人计算机不同的是服务器并不总是从服务器的控制台那里运行应用。那么,最优化服务器是将获得优先权的应用到后台执行。
你可以通过打开服务器的控制面板,并双击系统图标。当窗口中显示系统属性标签时,转到“高级”标签项,找到性能设置部分,并点击设置按钮。窗口中将会显示性能选项属性标签。转到属性标签中的高级选项,并确定服务器设置为后台服务的最佳性能。
望采纳
0条评论