Linux服务器硬件资源和操作系统优化,计算机应用技术论文.docx
Linux服务器硬件资源和操作系统优化,计算机应用技术论文内容摘要:Linux是服务器上使用最广泛的操作系统,支持多任务、多线程、多用户、多CPU,具有性能高、运行稳定的特点,在很多网站或者应用软件中都有被使用。但是在系统的运行中,Linux总会出现各种运行效率问题,没法使得系统发挥最好的性能。通过工作实践中的体会,讨论了对Linux系统和运行中的软件进行优化的思路,有助于系统运行效率的提升,具有一定的实践意义。 本文关键词语:Linux操作系统;运行效率;性能优化; Research on the Ideas of Linux Operating Performance Optimization TIAN Dong-yang Shanghai Head Office of the People s Bank of China Abstract:Linux is the most widely used operating system on servers. It supports multi-task, multi-thread, multi-user and multi-CPU.It has the characteristics of high performance and stable operation. It is used in many websites or applications. However, in the operation of the system, there will always be various operational efficiency problems, which cannot make the system play its best performance. Through the experience of working practice, this paper discusses on the idea of optimizing the Linux system and the running software, which helps for the improvement of the operating efficiency of the system, and has a certain practical significance. 1 引言 信息系统是一家单位最重要的运营基础。随着业务的不断发展,各家单位机房中运行的信息系统越来越多,而系统所占用的资源也逐步增加。对于软硬件系统初始的默认配置,针对的是常规的应用软件。而作为对外提供服务的服务器,则有各种不同的用处,例如WEB应用服务、数据库服务、FTP服务等。这时候默认的软硬件配置就无法有针对性地到达不同服务项目的专门性能要求,这就需要对其进行优化,发挥系统的最大效力。当前,服务器使用最广泛的操作系统就是Linux,本文从多个方面讨论对Linux进行优化的方式和思路,进而提高服务器运行性能。 2 服务器硬件资源优化 2.1 处理器 处理器简称CPU是计算机正常运行的基础,计算机性能的优劣很大程度上取决于CPU的主频和功能。通常来讲,CPU个数越多、频率越大,计算机速度越快,但实际情况并不是这么简单。在没有超线程的单核处理器中,一个CPU同一时间只能处理一个线程。在开启多线程的单核CPU,同一时间能处理多个线程。开启超线程HT能提高计算机的处理能力。但是CPU个数越多,开启HT功能后对系统的性能提升是有限的。另一方面,多个单核CPU跟多核CPU,在Linux系统中是同等对待,比方6个2核的CPU,与12个单核的CPU,都被Linux当作12个单核的CPU,但是前者的性能只要后者的70%。 对于CPU使用密集的应用,主要是数据库服务器、带有动画处理效果的网页服务器,这时候我们要着重加强CPU的性能。 2.2 内存 内存很大程度上影响了Linux系统的运行性能。内存过小,容易发生内存和硬盘不断交换文件数据的颠簸现象,导致系统运行缓慢。内存过大,造成系统资源浪费。Linux系统在装机经过中,就会设定SWAP虚拟内存,与服务器硬件的物理内存一起,共同构筑了系统的运行环境。SWAP虚拟内存使用的其实是硬盘,假如虚拟内存使用太多,外表物理内存缺乏,实际上运行性能是会下降的。单是物理内存不是越多越好,比方32位Linux系统,最多只能使用8GB物理内存,假如太多就是浪费了。 32位CPU的数据总线只要32位,最多只能物理支持4GB内存,在32位Linux中单一进程最多也只能使用4GB内存。而64位CPU假如运行在32位Linux中,通过PAE技术也能支持最大64GB内存。而64位CPU运行在64位Linux中,在物理硬件上理论最多支持16EB的内存,而由于Linux内核的限制,理论上最多支持64TB的内存。这实际上在当下的技术中算是非常高的内存容量了,几乎能够知足大部分的软件使用要求。 对于内存使用密集的应用,主要是数据库服务器、内容缓存服务器,这些应用一定要用64位CPU、64位Linux操作系统,这样才能支持大容量的内存。 2.3 磁盘的输入输出性能 磁盘的输入输出I/O性能直接影响应用程序的使用效果,会使得用户明显体会到程序的反响速度。假如磁盘I/O性能不高,会导致应用程序反响慢,用户等待时间长。当前有各种技术提高磁盘的I/O性能,比方磁盘阵列简称RAID。较为常用的有RAID0、RAID1、RAID5、RAID0+1。 RAID0是通太多块硬盘组合在一起,将连续的数据分散到多个硬盘来存取,能够并行存取数据。这样,系统的容量翻倍,速度也提高了。但RAID0没有数据保卫功能,只要一块硬盘损坏,所有数据就会丢失。RAID0主要适用在对数据安全性要求不高、对数据读写速度要求高的场景。 RAID1是镜像存储,2n个硬盘一起组成一个系统。每一对硬盘中,一个是主硬盘,另一个是备硬盘。主硬盘忙的时间,能够读备硬盘。主硬盘坏了,就能够直接读取备硬盘。RAID1的好处是具有数据保卫功能,读取数据较快,但容量只要硬盘数的一半,且数据写入速度慢。RAID1主要应用在对数据安全性要求很高的场景。 RAID5增加了奇偶校验位,兼顾了存储容量、读写速度、数据安全等要求,属于RAID0和RAID1的折中方案。RAID5采取数据位和校验位存放在不同的硬盘的方式,能够允许损坏一个硬盘,这个硬盘的数据能够通过其它硬盘的校验位来恢复。RAID5读取速度与RAID0差不多,写入速度比单个硬盘要慢一点,硬盘利用率比RAID1要高,通用性比拟强,各种应用场景都有RAID5的身影。 2.4 网络宽带 Linux服务器对外提供服务,都是采用网络方式,网络带宽的高低也极大地影响对外服务的性能。随着技术的发展,当前基本上是千兆甚至万兆光纤带宽,所以网络性能对系统服务的影响几乎不存在。 3 服务器操作系统优化 3.1 Linux安装优化 在安装Linux之前要对硬盘做RAID,遵循的原则是:对写入速度要求高而对数据安全性要求不高的应用,能够做RAID0;假如应用对读写速度没有要求,要全力以赴保障数据的安全性,那就得做RAID1;假如应用对读写速度要求一般,对数据安全性有一定要求,对磁盘利用率有一定要求,那就做RAID5。 在安装Linux的时候,需要对交换分区SWAP进行划分的原则是:一般物理内存在8GB以内,能够设置SWAP为物理内存的两倍;假如物理内存为16GB以上的,SWAP设置为16GB即可。 3.2 Linux内核参数优化 Linux安装完成后,由于默认的参数设置都是通用性较强,没有针对详细的应用进行相关配置。所以我们能够针对不同的应用软件,配置不同的内核参数。对于Web应用服务器,我们能够优化与网络相关的内核参数,比方:net.core.somaxconn、devmaxbacklog、net.ivp4.tcpmaxorphans、net.ivp4.tcpmaxsynbacklog、net.ipv4.tcpmaxtwbuckets、net.ivp4.iplocalportrange等网络参数。对于数据库服务器,我们能够优化与数据库软件运行密切相关的内核参数,比方:kernel.shmmni、kernel.sem、fs.file-max、fs.aio-max-nr等内核参数。 3.3 文件系统优化 安装部署Linux之后,需要对硬盘进行格式化,需要选择文件系统。当前常用的文件系统有Ext3、ReiserFS、Ext4、xfs,我们应该根据不同的软件性质,来选择不同的文件系统。 Ext3是在Ext2基础上增加了日志系统,也叫作日志式文件系统,能极大地提高文件系统的完好性,避免意外宕机对于系统的毁坏,在数据损坏恢复的时间上很短。Ext3的安全性与其他文件相比拟为薄弱,假如数据非常重要,建议不要采用这种分区。 Ext4是Ext3的改良,修改了部分Ext3的数据构造,提高了单个文件的大小和文件的总大小、文件的子目录个数没有限制等各种性能扩展,对数据的保卫要强于Ext3。 ReiserFS是建立在平衡树之上的文件系统,它在处理少量文件时的优势并不明显,反而会更慢,同时因复杂程度带来更强的不稳定性。但在处理大量文件时,它的稳定性较好,同时树的特征与目录节点的特征,遍历目录构造的性能也较好。所以十分合适大量文件(邮件系统、大量文件的网站服务器)的使用环境。ReiserFS在大量小文件的文件系统(超过百万文件,且多数文件小于1MB)上是首选的。 xfs在目录构造组织方面比拟类似于Ext3,目录也是以普通数据文件的方式进行存储与管理,这样在应付大量文件读取时,索引性能稍差一些。xfs在文件数目不是十分多的情况下是较可靠的。 当前服务器端Ext4和xfs是主流文件系统,怎样选择适宜的文件系统,需要根据文件系统的特点加上业务的需求综合来确定。 3.4 应用程序软件资源 应用程序的优化是整个优化工程的核心,假如一个应用程序存在BUG,那么即便其他方面都到达了最优状态,整个应用系统还是性能低下,所以,对应用程序的优化是性能优化经过的重中之重,这就对程序架构设计人员和程序开发人员提出了更高层次的要求。 4 系统性能优化牵涉的人员 4.1 Linux运维人员 Linux运维人员在运维经过中承当重要的优化责任。一是要了解把握操作系统运行经过中的数据参数,比方系统负载、内存使用状况、进程运行状况、CPU使用率、硬盘I/O等信息。二是把握系统的硬件信息,比方CPU主频、CPU内核数、CPU能否多线程、内存大小、I/O峰值、网络带宽等,同时综合评估系统资源的使用率。三是把握程序在运行经过中对系统资源的使用效率,程序能否存在bug、能否有内存溢出等情况,在对系统监控的经过中,发现软件运行能否异常,将问题反应给软件设计师,由其改良程序。 4.2 软件开发人员 假如Linux运维人员在分析研判后,发现系统运行的瓶颈在于软件的执行效率,那么需要将问题反应给程序开发人员。开发人员在接手问题后,要重现运行环境,发现程序运行问题症结所在,及时修改代码,优化流程、改良架构,提高运行效率。例如Linux运维人员发如今软件的执行经过中,有某些SQL语句在数据量小的时候执行速度很快,但是在数据量大的情况执行速度相当缓慢,要很长时间才能得出结果。这时候就得把这个问题反应软件开发人员,由其对语句进行优化,采取愈加合理有效的方式对数据库进行查询计算,提高运行速度。 5 调优案例与总结 案例:运行在Linux系统下的一个网站系统,用户反映访问缓慢,有时甚至无法访问。 调优思路:一是从网络层面观察系统,采用ping、telnet、trancert等语句查看域名解析能否正常、网络能否通畅、路由能否正确,报文能否延迟过大。假如没有问题,那就讲明网络是良好的。二是使用top命令,查看系统内存使用情况,一般内存占用率超过100%,就会使用SWAP分区,降低软件运行速度以及反响速度。假如内存使用率不高,那就不是内存的问题。三是使用top命令,查看CPU使用率。假如访问人数太多,CPU使用率过高,会极大地降低网页的反响速度。假如CPU使用率不高,则CPU是没有问题的。四是使用iostat、vmstat命令查看系统的I/O,硬盘的读取能否存在瓶颈,I/O、硬盘使用率能否过高。五是若硬件运行都没有问题,则能够从应用程序架构和程序代码方面入手,让软件设计师针对软件运行的瓶颈有针对性地作出优化,更新软件版本,让代码运行愈加流畅、愈加迅速。 系统的调优是一个牵涉到系统运行方方面面的、事务繁多的、时间很长的工作,找到系统运行瓶颈的原因往往是不容易的,这就需要我们把握好查找问题的思路,步步为营、稳扎稳打、层层推进,性能问题就能够迎刃而解。 以下为参考文献 1张国强CPU利用率的估算J冶金丛刊,2002(05):16-17,26. 2邸敏艳浅谈Windows 98系统的优化J微型机与应用,2001(09):59-60. 3肖振华,徐玉斌,解辉,等基于嵌入式Linux 2.6的实时优化J计算机技术与发展,2008(11):83-86. 4任先宁AIX操作系统的安全管理与优化措施J信息安全与技术,2020(11):63-64,74. 5于永忱AIX文件系统的常见故障诊断与维护J科技风,2018(12):63. 6谢林川计算机性能优化技术中存在的问题J硅谷,2020(05):170.