计算机应用技术论文

您当前的位置:学术堂 > 计算机论文 > 计算机应用技术论文 >

Linux服务器硬件资源和操作系统优化

来源:电脑与电信 作者:田冬阳
发布于:2020-01-16 共4751字

Linux操作系统论文第四篇: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、net.core.netdev_max_backlog、net.ivp4.tcp_max_orphans、net.ivp4.tcp_max_syn_backlog、net.ipv4.tcp_max_tw_buckets、net.ivp4.ip_local_port_range等网络参数。对于数据库服务器,我们可以优化与数据库软件运行密切相关的内核参数,比如: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].信息安全与技术,2012(11):63-64,74.
  [5]于永忱.AIX文件系统的常见故障诊断与维护[J].科技风,2011(12):63.
  [6]谢林川.计算机性能优化技术中存在的问题[J].硅谷,2012(05):170.

点击查看>>Linux操作系统论文(精选8篇)其他文章
作者单位:中国人民银行上海总部
原文出处:田冬阳.Linux运行性能优化的思路问题研究[J].电脑与电信,2019(09):40-42.
相关内容推荐
相关标签:
返回:计算机应用技术论文