APP下载

Linux部署高并发WEB服务器性能优化策略

2019-12-23李兵

电脑知识与技术 2019年31期
关键词:性能优化服务器

李兵

摘要:该文以MOODLE平台为例,对教学资源平台进行性能优化及本地化实践研究,目的是为了搭建一个典型的LNMP应用,为智慧校园实践项目,提供一个实用和完善的测试环境,同时了解系统的测试和优化的全过程。形成相对成熟的配置方法,为类似项目提供参考,提升理论研究水平、共享平台建设经验。

關键词:Linux;服务器;高并发;性能优化

中图分类号:TP311 文献标识码:A

文章编号:1009-3044(2019)31-0019-02

本研究来源于江苏省教育科学研究院2018年度智慧校园专项课题,教学资源平台性能优化及本地化实践研究——以MOODLE平台为例,项目的目的是为了在职业院校中实施部署MOODLE教学资源平台环境,搭建一个典型的LNMP应用并进行性能优化,让MOODLE平台既可用于智慧校园内部的教育教学,也可以用于数字化教学资源的本地化。在本次研究中,希望能够在涉及的各项性能测试项目中,提供一个较实用和完善的测试环境,了解系统的测试和优化的整个过程。平台的测试优化数据和分析结果也可以为类似项目提供参考,形成相对成熟的配置模式,使得将来的技术理论提升和平台建设经验共享成为可能。

1平台性能优化概况

一般来说,平台性能优化的内容包括三个方面:客户端优化、网络性能优化和服务器端性能优化。从服务器端来说,又可以分为操作系统、WEB应用、数据库、PHP引擎及应用平台性能优化。基于性能测试优化的重要性,对于大量构建在基于LNMP构架上的系统,究竟性能如何以及如何优化,成了一个在理论研究和实践项目中都十分重要的课题。本研究限于篇幅,在服务器操作系统上选择Linux发行版Debian 9.9版本,重点对虚拟服务器的硬件环境搭配如CPU、内存、硬盘的选择等方面来优化。

在服务器操作系统及平台应用的选择上,选择当今能与J2EE和.Net齐名的web服务典型架构LAMP。LAMP通常是指由在Linux操作系统安装Apache,加32 Mysql数据库、PHP脚本语言来搭建Web服务器,考虑到本项目场景实施,要求并发连接数高,性能要稳定,运行又稳定成本要低,所以本项目中使用Nginx替代Apache作为WEB服务即LNMP,两者互有优劣,Nginx处理静态文件速度快而且消耗资源少,性能可靠及使用范围广。由于以上软件全部开源,彼此相互独立,由于在使用上有默契,经常的作为配套软件来配合使用。在互联网已知数据的网站中,有超过半数的流量基于LAMP或者LNMP架构;包括百度、腾讯、新浪等多家全球著名的网站。LNMP架构流行的关键因素可以归纳为:搭建简单、安全稳定、低成本和扩展性良好等,其应用范围也从简单和小型的应用扩展到复杂、大型的系统应用。

LNMP的性能优化分为:(1)Linux系统的优化;(2)Nginx配置事件驱动架构;(3)使用加速器优化PHP,优化缓存;(4)对Mar-iaDB数据库服务器优化。在各项准备工作完成的基础上,具体研究工作包括:结合LNMP架构原理,分析架构优化具体实施步骤;选择MOODLE平台作为典型应用完成测试环境搭建,完成平台搭建和构建准备对测试环境的性能测试及相关分析;使用测试工具AB实施对LNMP架构系统的性能测试研究。

2平台性能优化配置过程

本研究涉及的测试环境搭建,基于职业院校对性能测试环境搭建的要求,技术上首先深入学习并理解LNMP架构的原理和性能测试和优化的相关技术,完成技术和知识的积累。为了搭建一个可以为学校业务提供支撑的测试环境,还要学习基于LNMP架构的性能测试分析,为平台性能优化找到人手点。在此基础之上,针对学校的情况在硬件环境上实施了平台的搭建工作。在完成测试环境的搭建之后,还需要对测试工具AB关键技术进行了深入研究,接着将MOODLE平台作为测试环境的真实环境进行了全面的测试和运行,并列出了全面的数据和测试结果的分析,包括测试的配置和设置和对应的实际意义。性能测试研究不仅让我们深入理解了性能测试的过程,更将性能测试的意义和进一步的系统优化联系了起来,将测试环境的性能表现列举了出来,为测试环境的性能优化打下了基础。

本项目在经过研究和学习相关文档之后,根据项目的需要,首先确定了平台、测试工具,需要完成的基本工作,设计了实施方案,并确定了目标方向。本次性能测试和优化项目的LNMP架构是搭建是构建在笔记本(配置为15-6500U+8G)、普通Pcf配置为15-4590+16G)上,服务器采用HP ProLiant BIA60G9虚拟平台(配置为E5-2640V3+128G),虚拟机中的操作系统及平台软件采用的是Debian 9、Nginx 1.10.3、Maria DB 10.1.38、PHP 7.0.33;应用平台采用MOODLE 3.4.8来完成。LNMP架构基本构建和应用平台搭建,后期使用Apache Bench软件工具中的AB组件进行相关测试。测试过程中重点关注了Requestsper second参数,RPS吞吐率fRequests per second),缩写RPS。计算公式:Requests per second=Complete requests/Time takenfor tests,即吞吐率=总请求数/处理这些请求的总计完成时间。吞吐率是服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大的请求数,称之为最大吞吐率。首先选择一个固定参数,然后修改相关参数,重启服务器系统,重复执行ab-c100-n1000 URL命令,其中参数c为并发连接数(The number of concurrent connections)是服务器某个时刻所接受的请求数目,也就是某个时刻所接受的会话数目。参数n为并发用户数(The number of concurrent users,ConcurrentLevel)是指服务器某个时刻所能接受的用户数,一个用户可能产生多个会话,所以并发用户数和并发连接数并不重复。重复执行15-20次,记录有效数据10次,去掉偏离最大的高值和低值,获得该硬件配置的RPS数据。其次修改参数,再进行一轮测试,记录数据做对比研究。

1)在笔记本中测试内存及CPU核数对平台性能影响

用于测试的笔记本配置为17-6500U的CPU、4G*2内存、SSD硬盘、操作系统WINDOWS 7,安装虚拟机版本为VMl4。虚拟机配置的内存分别为512M、lG、2G三种,CPU分配的核心1C、2c、4C、2*2C分别代表CPU的内核数量为一核、两核、四核和CPU两核。每次测试都是在修改虚拟机硬件配置后并重启操作系统,测试13-20次,记录有效的RPS数据。

配置分别为:512M+1C、512+2C、512+4C、512+2*2C、1G+1C、1G+2C、1G+4C、1G+2*2C、2G+IC、2G+2C、2G+4C、2G+2*2C,测得RPS值为:38.99、67.56、82.53、78.07、39.28、66.31、83.23、77.41、39.11、65.95、81.46、73.06。

从以上测试对比中可以看出:(1)CPU的内核数增加提升了系统性能,两核比一核明显提升约80%;四核比两核提升约25%。在同等配置下核数增加过程中,內核数量对性能提升有重要意义。(2)内存数量从512M、1G到2G,对系统性能提升基本没有影响,甚至数据在正负误差范围内。(3)在四核心CPU对比中,单CPU四核比双CPU两核性能高5%。

2)在PC中测试网络环境对平台性能的影响

用于测试的PC配置为15-4590的四核CPU、8G*2内存、SSD硬盘、操作系统WINDOWS 7,安装虚拟机版本为VMl4。配置虚拟机的内存分别为512M、2G、4G、8G四种,CPU分配的核心数量分别为一核、两核、四核和2*2核。本机表示在虚拟服务器的本地进行AB测试,网络表示从局域网内其他终端进行AB测试。每次测试在修改配置后测试,记录有效数据。

硬件配置为512M+1C、2G+IC、2G+2C、4G+2C、4G+2*2C、4G+1*4C、8G+2*2C、8G+1*4C,本机测试为54.42、60.39、83.39、86.33、108.13、108.17、110.04、109.23网络测试为47.15、51.74、81.43、84.28、105.69、104.22、106.46、107.57。

从测试数据对比中可以看出:(1)CPU的内核数增加提升了系统性能,内存数量对性能提升影响不大。(2)网络对于虚拟机的平台性能有影响,局域网内部使用性能下降大约10%,内存配置大(4G或者8G)影响小一点,数据显示约为5%。

3)在服务器中测试硬盘及内存对平台性能的影响

用于测试的HP刀片服务器配置为E5-2640 v3的八核CPU、16G*8内存、SSD硬盘、虚拟化平台为VM ESX16.5,安装虚拟机版本为VMl4。配置虚拟机的内存分别为8G、16G、32G、64G、128G五种,CPU分配的核心数量分别为2*2核、2*4核、1*4核、1*6核和2*3核。每次测试都是指定程式记录数据。

配置第1组为8G+2*2、8G+2*4、16G+2*2、16G+2*4、32G+2*2、32G+2*4、64G+2*2、64G+2*4,RPS值分别138.22、124.14、146.13、127.35、141.90、128.32、151.20、130.63;配置第2组128G+2*2、128G+2*4、16G+2*2、16G+2*2、16G+1*4、8G+1*4、8G+2*3、8G+1*6,RPS值148.29、130.05、146.39、138.82、189.24、180.18、128.81、127.24。

从以上测试对比中可以看出:(1)刀片服务器CPU的性能比PC强劲,所以同样配置情况下性能有提升。(2)CPU的内核数量从2*2C、2*3C、1*6C到2*4C这个顺序看,性能提升有限。内存即使扩大到64G和128G,系统平台性能也没有很大变化。(3)在四核心CPU对比中,单CPU四核即1*4C配置性能最强,比其他核数量性能高至少25%。

3平台性能配置优化总结

综上研究所得,如果在虚拟服务器中实施部署LNMP应用MOODLE平台,推荐使用8G或者16G内存,CPU的核心选择1*4C,使用SSD硬盘作为存储环境,这一组合是对MOODLE平台的应用来说性价比较高,其AB测试的主要结果RPS值最高可达189T/S,即使在局域网中使用性能下降5-10%,也可以满足200人以上的实时并发。如果使用更大内存比如32G或者64G,将所有数据全部装入内存运行,应该可以具有更大的适用范围和应用前景。

基于LNMP的测优化还有其中各组件的分别优化。LNMP组件中Nginx的配置优化;对PHP的设置,操作码缓存以及优化;基于Mafia DB数据库的查询,包括缓查询和查询缓存优化等,对MOODLE平台的性能都有影响,可以作为下一步研究的重点。总之,本研究在性能最优理论指导下,对设备硬件配置对平台性能的影响进行了充分对比研究,使得应用平台的系统性能得到有效提升,做出了一次有益的尝试。

猜你喜欢

性能优化服务器
通信控制服务器(CCS)维护终端的设计与实现
中国服务器市场份额出炉
SQL Server数据库性能优化的几点分析
得形忘意的服务器标准
计算机网络安全服务器入侵与防御