李兵
摘要:該文以MOODLE平臺為例,對教學(xué)資源平臺進行性能優(yōu)化及本地化實踐研究,目的是為了搭建一個典型的LNMP應(yīng)用,為智慧校園實踐項目,提供一個實用和完善的測試環(huán)境,同時了解系統(tǒng)的測試和優(yōu)化的全過程。形成相對成熟的配置方法,為類似項目提供參考,提升理論研究水平、共享平臺建設(shè)經(jīng)驗。
關(guān)鍵詞:Linux;服務(wù)器;高并發(fā);性能優(yōu)化
中圖分類號:TP311 文獻標(biāo)識碼:A
文章編號:1009-3044(2019)31-0019-02
本研究來源于江蘇省教育科學(xué)研究院2018年度智慧校園專項課題,教學(xué)資源平臺性能優(yōu)化及本地化實踐研究——以MOODLE平臺為例,項目的目的是為了在職業(yè)院校中實施部署MOODLE教學(xué)資源平臺環(huán)境,搭建一個典型的LNMP應(yīng)用并進行性能優(yōu)化,讓MOODLE平臺既可用于智慧校園內(nèi)部的教育教學(xué),也可以用于數(shù)字化教學(xué)資源的本地化。在本次研究中,希望能夠在涉及的各項性能測試項目中,提供一個較實用和完善的測試環(huán)境,了解系統(tǒng)的測試和優(yōu)化的整個過程。平臺的測試優(yōu)化數(shù)據(jù)和分析結(jié)果也可以為類似項目提供參考,形成相對成熟的配置模式,使得將來的技術(shù)理論提升和平臺建設(shè)經(jīng)驗共享成為可能。
1平臺性能優(yōu)化概況
一般來說,平臺性能優(yōu)化的內(nèi)容包括三個方面:客戶端優(yōu)化、網(wǎng)絡(luò)性能優(yōu)化和服務(wù)器端性能優(yōu)化。從服務(wù)器端來說,又可以分為操作系統(tǒng)、WEB應(yīng)用、數(shù)據(jù)庫、PHP引擎及應(yīng)用平臺性能優(yōu)化?;谛阅軠y試優(yōu)化的重要性,對于大量構(gòu)建在基于LNMP構(gòu)架上的系統(tǒng),究竟性能如何以及如何優(yōu)化,成了一個在理論研究和實踐項目中都十分重要的課題。本研究限于篇幅,在服務(wù)器操作系統(tǒng)上選擇Linux發(fā)行版Debian 9.9版本,重點對虛擬服務(wù)器的硬件環(huán)境搭配如CPU、內(nèi)存、硬盤的選擇等方面來優(yōu)化。
在服務(wù)器操作系統(tǒng)及平臺應(yīng)用的選擇上,選擇當(dāng)今能與J2EE和.Net齊名的web服務(wù)典型架構(gòu)LAMP。LAMP通常是指由在Linux操作系統(tǒng)安裝Apache,加32 Mysql數(shù)據(jù)庫、PHP腳本語言來搭建Web服務(wù)器,考慮到本項目場景實施,要求并發(fā)連接數(shù)高,性能要穩(wěn)定,運行又穩(wěn)定成本要低,所以本項目中使用Nginx替代Apache作為WEB服務(wù)即LNMP,兩者互有優(yōu)劣,Nginx處理靜態(tài)文件速度快而且消耗資源少,性能可靠及使用范圍廣。由于以上軟件全部開源,彼此相互獨立,由于在使用上有默契,經(jīng)常的作為配套軟件來配合使用。在互聯(lián)網(wǎng)已知數(shù)據(jù)的網(wǎng)站中,有超過半數(shù)的流量基于LAMP或者LNMP架構(gòu);包括百度、騰訊、新浪等多家全球著名的網(wǎng)站。LNMP架構(gòu)流行的關(guān)鍵因素可以歸納為:搭建簡單、安全穩(wěn)定、低成本和擴展性良好等,其應(yīng)用范圍也從簡單和小型的應(yīng)用擴展到復(fù)雜、大型的系統(tǒng)應(yīng)用。
LNMP的性能優(yōu)化分為:(1)Linux系統(tǒng)的優(yōu)化;(2)Nginx配置事件驅(qū)動架構(gòu);(3)使用加速器優(yōu)化PHP,優(yōu)化緩存;(4)對Mar-iaDB數(shù)據(jù)庫服務(wù)器優(yōu)化。在各項準備工作完成的基礎(chǔ)上,具體研究工作包括:結(jié)合LNMP架構(gòu)原理,分析架構(gòu)優(yōu)化具體實施步驟;選擇MOODLE平臺作為典型應(yīng)用完成測試環(huán)境搭建,完成平臺搭建和構(gòu)建準備對測試環(huán)境的性能測試及相關(guān)分析;使用測試工具AB實施對LNMP架構(gòu)系統(tǒng)的性能測試研究。
2平臺性能優(yōu)化配置過程
本研究涉及的測試環(huán)境搭建,基于職業(yè)院校對性能測試環(huán)境搭建的要求,技術(shù)上首先深入學(xué)習(xí)并理解LNMP架構(gòu)的原理和性能測試和優(yōu)化的相關(guān)技術(shù),完成技術(shù)和知識的積累。為了搭建一個可以為學(xué)校業(yè)務(wù)提供支撐的測試環(huán)境,還要學(xué)習(xí)基于LNMP架構(gòu)的性能測試分析,為平臺性能優(yōu)化找到人手點。在此基礎(chǔ)之上,針對學(xué)校的情況在硬件環(huán)境上實施了平臺的搭建工作。在完成測試環(huán)境的搭建之后,還需要對測試工具AB關(guān)鍵技術(shù)進行了深入研究,接著將MOODLE平臺作為測試環(huán)境的真實環(huán)境進行了全面的測試和運行,并列出了全面的數(shù)據(jù)和測試結(jié)果的分析,包括測試的配置和設(shè)置和對應(yīng)的實際意義。性能測試研究不僅讓我們深入理解了性能測試的過程,更將性能測試的意義和進一步的系統(tǒng)優(yōu)化聯(lián)系了起來,將測試環(huán)境的性能表現(xiàn)列舉了出來,為測試環(huán)境的性能優(yōu)化打下了基礎(chǔ)。
本項目在經(jīng)過研究和學(xué)習(xí)相關(guān)文檔之后,根據(jù)項目的需要,首先確定了平臺、測試工具,需要完成的基本工作,設(shè)計了實施方案,并確定了目標(biāo)方向。本次性能測試和優(yōu)化項目的LNMP架構(gòu)是搭建是構(gòu)建在筆記本(配置為15-6500U+8G)、普通Pcf配置為15-4590+16G)上,服務(wù)器采用HP ProLiant BIA60G9虛擬平臺(配置為E5-2640V3+128G),虛擬機中的操作系統(tǒng)及平臺軟件采用的是Debian 9、Nginx 1.10.3、Maria DB 10.1.38、PHP 7.0.33;應(yīng)用平臺采用MOODLE 3.4.8來完成。LNMP架構(gòu)基本構(gòu)建和應(yīng)用平臺搭建,后期使用Apache Bench軟件工具中的AB組件進行相關(guān)測試。測試過程中重點關(guān)注了Requestsper second參數(shù),RPS吞吐率fRequests per second),縮寫RPS。計算公式:Requests per second=Complete requests/Time takenfor tests,即吞吐率=總請求數(shù)/處理這些請求的總計完成時間。吞吐率是服務(wù)器并發(fā)處理能力的量化描述,單位是reqs/s,指的是某個并發(fā)用戶數(shù)下單位時間內(nèi)處理的請求數(shù)。某個并發(fā)用戶數(shù)下單位時間內(nèi)能處理的最大的請求數(shù),稱之為最大吞吐率。首先選擇一個固定參數(shù),然后修改相關(guān)參數(shù),重啟服務(wù)器系統(tǒng),重復(fù)執(zhí)行ab-c100-n1000 URL命令,其中參數(shù)c為并發(fā)連接數(shù)(The number of concurrent connections)是服務(wù)器某個時刻所接受的請求數(shù)目,也就是某個時刻所接受的會話數(shù)目。參數(shù)n為并發(fā)用戶數(shù)(The number of concurrent users,ConcurrentLevel)是指服務(wù)器某個時刻所能接受的用戶數(shù),一個用戶可能產(chǎn)生多個會話,所以并發(fā)用戶數(shù)和并發(fā)連接數(shù)并不重復(fù)。重復(fù)執(zhí)行15-20次,記錄有效數(shù)據(jù)10次,去掉偏離最大的高值和低值,獲得該硬件配置的RPS數(shù)據(jù)。其次修改參數(shù),再進行一輪測試,記錄數(shù)據(jù)做對比研究。
1)在筆記本中測試內(nèi)存及CPU核數(shù)對平臺性能影響
用于測試的筆記本配置為17-6500U的CPU、4G*2內(nèi)存、SSD硬盤、操作系統(tǒng)WINDOWS 7,安裝虛擬機版本為VMl4。虛擬機配置的內(nèi)存分別為512M、lG、2G三種,CPU分配的核心1C、2c、4C、2*2C分別代表CPU的內(nèi)核數(shù)量為一核、兩核、四核和CPU兩核。每次測試都是在修改虛擬機硬件配置后并重啟操作系統(tǒng),測試13-20次,記錄有效的RPS數(shù)據(jù)。
配置分別為: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的內(nèi)核數(shù)增加提升了系統(tǒng)性能,兩核比一核明顯提升約80%;四核比兩核提升約25%。在同等配置下核數(shù)增加過程中,內(nèi)核數(shù)量對性能提升有重要意義。(2)內(nèi)存數(shù)量從512M、1G到2G,對系統(tǒng)性能提升基本沒有影響,甚至數(shù)據(jù)在正負誤差范圍內(nèi)。(3)在四核心CPU對比中,單CPU四核比雙CPU兩核性能高5%。
2)在PC中測試網(wǎng)絡(luò)環(huán)境對平臺性能的影響
用于測試的PC配置為15-4590的四核CPU、8G*2內(nèi)存、SSD硬盤、操作系統(tǒng)WINDOWS 7,安裝虛擬機版本為VMl4。配置虛擬機的內(nèi)存分別為512M、2G、4G、8G四種,CPU分配的核心數(shù)量分別為一核、兩核、四核和2*2核。本機表示在虛擬服務(wù)器的本地進行AB測試,網(wǎng)絡(luò)表示從局域網(wǎng)內(nèi)其他終端進行AB測試。每次測試在修改配置后測試,記錄有效數(shù)據(jù)。
硬件配置為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網(wǎng)絡(luò)測試為47.15、51.74、81.43、84.28、105.69、104.22、106.46、107.57。
從測試數(shù)據(jù)對比中可以看出:(1)CPU的內(nèi)核數(shù)增加提升了系統(tǒng)性能,內(nèi)存數(shù)量對性能提升影響不大。(2)網(wǎng)絡(luò)對于虛擬機的平臺性能有影響,局域網(wǎng)內(nèi)部使用性能下降大約10%,內(nèi)存配置大(4G或者8G)影響小一點,數(shù)據(jù)顯示約為5%。
3)在服務(wù)器中測試硬盤及內(nèi)存對平臺性能的影響
用于測試的HP刀片服務(wù)器配置為E5-2640 v3的八核CPU、16G*8內(nèi)存、SSD硬盤、虛擬化平臺為VM ESX16.5,安裝虛擬機版本為VMl4。配置虛擬機的內(nèi)存分別為8G、16G、32G、64G、128G五種,CPU分配的核心數(shù)量分別為2*2核、2*4核、1*4核、1*6核和2*3核。每次測試都是指定程式記錄數(shù)據(jù)。
配置第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)刀片服務(wù)器CPU的性能比PC強勁,所以同樣配置情況下性能有提升。(2)CPU的內(nèi)核數(shù)量從2*2C、2*3C、1*6C到2*4C這個順序看,性能提升有限。內(nèi)存即使擴大到64G和128G,系統(tǒng)平臺性能也沒有很大變化。(3)在四核心CPU對比中,單CPU四核即1*4C配置性能最強,比其他核數(shù)量性能高至少25%。
3平臺性能配置優(yōu)化總結(jié)
綜上研究所得,如果在虛擬服務(wù)器中實施部署LNMP應(yīng)用MOODLE平臺,推薦使用8G或者16G內(nèi)存,CPU的核心選擇1*4C,使用SSD硬盤作為存儲環(huán)境,這一組合是對MOODLE平臺的應(yīng)用來說性價比較高,其AB測試的主要結(jié)果RPS值最高可達189T/S,即使在局域網(wǎng)中使用性能下降5-10%,也可以滿足200人以上的實時并發(fā)。如果使用更大內(nèi)存比如32G或者64G,將所有數(shù)據(jù)全部裝入內(nèi)存運行,應(yīng)該可以具有更大的適用范圍和應(yīng)用前景。
基于LNMP的測優(yōu)化還有其中各組件的分別優(yōu)化。LNMP組件中Nginx的配置優(yōu)化;對PHP的設(shè)置,操作碼緩存以及優(yōu)化;基于Mafia DB數(shù)據(jù)庫的查詢,包括緩查詢和查詢緩存優(yōu)化等,對MOODLE平臺的性能都有影響,可以作為下一步研究的重點??傊?,本研究在性能最優(yōu)理論指導(dǎo)下,對設(shè)備硬件配置對平臺性能的影響進行了充分對比研究,使得應(yīng)用平臺的系統(tǒng)性能得到有效提升,做出了一次有益的嘗試。