劉勁松
摘要:為了解決我校選課系統(tǒng)在選課時階段性高負(fù)載造成的“峰值堵塞”問題,該文采用大數(shù)據(jù)分析方法,基于云計算技術(shù)和海量數(shù)據(jù)的支撐,以我校綜合教務(wù)系統(tǒng)為例,對數(shù)據(jù)庫進(jìn)行多方面的性能調(diào)整,并對WEB端進(jìn)行負(fù)載均衡配置,最大程度地優(yōu)化大數(shù)據(jù)環(huán)境下的網(wǎng)上選課系統(tǒng),使資源消耗明顯降低,提高運(yùn)行效率,縮短系統(tǒng)響應(yīng)時間。
關(guān)鍵詞:大數(shù)據(jù);選課系統(tǒng);優(yōu)化
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2016)22-0001-02
1 高校大數(shù)據(jù)發(fā)展現(xiàn)狀
目前高校大多還處于大數(shù)據(jù)應(yīng)用的原始階段,在實(shí)際應(yīng)用中出現(xiàn)越來越多的非結(jié)構(gòu)化數(shù)據(jù),結(jié)構(gòu)化數(shù)據(jù)在信息化校園數(shù)據(jù)中心的存儲已不能滿足應(yīng)用需求,這樣對數(shù)據(jù)分析和挖掘技術(shù)的要求很高,需要系統(tǒng)設(shè)計,謹(jǐn)慎操作。大數(shù)據(jù)在高校有著美好的應(yīng)用前景,但數(shù)據(jù)隱私、數(shù)據(jù)分析方法有待改進(jìn)和數(shù)據(jù)集成困難等問題是目前主要的應(yīng)用難點(diǎn),需要進(jìn)一步建立收集、分析和教育決策的實(shí)踐體系,以使大數(shù)據(jù)在高校中的價值得到最大限度的發(fā)揮。
2 選課系統(tǒng)的復(fù)雜性
目前我校本部校區(qū)、新校區(qū)、醫(yī)學(xué)部校區(qū)的主要區(qū)域已實(shí)萬兆主干,千兆到桌面的網(wǎng)絡(luò)連接。教務(wù)系統(tǒng)服務(wù)器、學(xué)生選課機(jī)房均在校園網(wǎng)內(nèi),校園網(wǎng)帶寬滿足選課需求,選課期間教務(wù)系統(tǒng)登錄緩慢主要問題還是集中在教務(wù)系統(tǒng)本身的軟硬件方面。我校每個學(xué)期末為選課階段,即每年的6月底至7月中,12月底至1月中,每次選課(包括預(yù)選、正選)共15天左右,選課時間相對集中,給系統(tǒng)帶來了很大的數(shù)據(jù)流量,造成系統(tǒng)壓力過大。同時,近幾年在校學(xué)生數(shù)量有了很大的增長,在集中選課階段,系統(tǒng)并發(fā)連接數(shù)急劇增多,極大加重了數(shù)據(jù)庫負(fù)荷,給選課系統(tǒng)也帶來不小的沖擊。而對于學(xué)生的操作,系統(tǒng)必須能響應(yīng)快速,這樣就對選課系統(tǒng)的實(shí)時性有了更高的要求。
軟硬件的性能直接影響到選課系統(tǒng)的能效,諸如服務(wù)器運(yùn)轉(zhuǎn)時間過長、負(fù)荷重、硬件老化嚴(yán)重等。而系統(tǒng)本身設(shè)計問題也需注意,比如,現(xiàn)在運(yùn)行系統(tǒng)是針對Window 2000/XP操作系統(tǒng)和JAVA 5.0環(huán)境而設(shè)計,和當(dāng)下廣泛使用的Window7 64位操作系統(tǒng)以及JAVA8.0環(huán)境存在兼容性問題,造成部分瀏覽器響應(yīng)緩慢。
3 大數(shù)據(jù)環(huán)境下選課系統(tǒng)能效優(yōu)化
3.1 優(yōu)化SQL語句
在數(shù)據(jù)庫實(shí)際應(yīng)用中,經(jīng)常會出現(xiàn)全表掃描操作。若優(yōu)化使用索引的SQL語句,選課系統(tǒng)能效幾乎沒有改善,所以重點(diǎn)是優(yōu)化不含索引的字段。為了縮短查詢語句的響應(yīng)時間,要合理建立存儲過程,盡量不進(jìn)行表掃描等。選課系統(tǒng)數(shù)據(jù)庫中含有大量數(shù)據(jù)表,Oracle要對這些表進(jìn)行并序連接。Oracle對FROM中數(shù)據(jù)表的掃描順序是:首先最后的數(shù)據(jù)表,其次第二個,依次進(jìn)行,若發(fā)現(xiàn)經(jīng)掃描過的第一個和第二個數(shù)據(jù)表中含有能被合并的記錄,則進(jìn)行合并操作。若連接查詢多個表,則首先指定基礎(chǔ)表,即被其他表引用的交叉表,然后重復(fù)進(jìn)行。
在優(yōu)化SQL語句時,要按以下規(guī)則進(jìn)行:①不使用或盡量少使用select * 語句,必須指定好所需查詢的列。這樣避免進(jìn)行全表掃描導(dǎo)致的系統(tǒng)性能下降。②合理使用where及order by語句。若字段中已建立索引,則可使用Order by,并對其字段個數(shù)進(jìn)行限制, 這樣可降低系統(tǒng)的資源消耗。③若表中記錄較多,要注意不使用select distinct 語句,因?yàn)樗葘Ρ碇忻恳恍杏涗涍M(jìn)行查詢之后,再進(jìn)行重復(fù)記錄集的刷選。
3.2 WEB端優(yōu)化
要優(yōu)化RESIN的啟動參數(shù),在webserver路徑下配置四個resin,進(jìn)行負(fù)載均衡。擴(kuò)充原有VMware云服務(wù)器平臺,完成虛擬服務(wù)及部分存儲設(shè)備更新,擴(kuò)大服務(wù)范圍,增強(qiáng)數(shù)據(jù)安全保障。目前云平臺CPU資源超過100個,內(nèi)存資源4.7T,存儲資源裸容量500T,在網(wǎng)云服務(wù)器192個,能夠?yàn)槲倚=虒W(xué)、科研及行政管理提供有力支撐。通過云服務(wù)器平臺為校內(nèi)多個單位提供云服務(wù)器應(yīng)用,為學(xué)校網(wǎng)站群、應(yīng)用系統(tǒng)、教學(xué)資源平臺、圖書資源站點(diǎn)、微信平臺、虛擬仿真平臺、共享實(shí)驗(yàn)平臺等各類應(yīng)用提供了穩(wěn)定可靠、資源管理靈活、可擴(kuò)展可伸縮的資源管理模式。
-server//服務(wù)器模式
-Xmx2g //JVM最大允許分配的堆內(nèi)存,按需分配
-Xms2g //JVM初始分配的堆內(nèi)存,一般和Xmx配置成一樣以避免每次gc后JVM重新分配內(nèi)存
-Xmn256m //年輕代內(nèi)存大小
-XX:PermSize=128m //持久代內(nèi)存大小
-Xss256k //設(shè)置每個線程的堆棧大小
-XX:+DisableExplicitGC //忽略手動調(diào)用GC,System.gc()的調(diào)用就會變成一個空調(diào)用,完全不觸發(fā)GC
-XX:+UseConcMarkSweepGC //并發(fā)標(biāo)記清除(CMS)收集器
-Xmn和-Xmx之比大概是1:9,如果把新生代內(nèi)存設(shè)置得太大會導(dǎo)致young gc時間較長。一個好的Web系統(tǒng)應(yīng)該是每次http請求申請內(nèi)存都能在young gc回收掉,full gc永不發(fā)生,當(dāng)然這是最理想的情況。xmn的值應(yīng)該是保證夠用(夠http并發(fā)請求之用)的前提下設(shè)置得盡量小。web服務(wù)器xmn和Xmx大概1:3的關(guān)系,在保持一定的并發(fā)量后需要較大的年輕代堆內(nèi)存,如果設(shè)置得大小了會經(jīng)常引發(fā)young gc。
3.3 Web Service優(yōu)化
借助Web Service技術(shù)建立數(shù)據(jù)交換機(jī)制,通過服務(wù)的請求和調(diào)用實(shí)現(xiàn)異構(gòu)系統(tǒng)間的數(shù)據(jù)交換。在網(wǎng)上選課系統(tǒng)能效優(yōu)化過程中采用基于XML的數(shù)據(jù)交換方式,有效地實(shí)現(xiàn)了異構(gòu)資源的數(shù)據(jù)交換。Web Service包含三個要素:SOAP(Simple Object Access Protoca1,簡單對象訪問協(xié)議)、WSDL (Web Services Description Language,Web服務(wù)描述語言)、UDDI( Universal Description Discovery and Integration,通用描述、發(fā)現(xiàn)與集成服務(wù)),而Web Service使用SOAP作為通信標(biāo)準(zhǔn),并且SOAP能夠穿透防火墻,當(dāng)應(yīng)用程序通過SOAP調(diào)用服務(wù)時,便提供外界標(biāo)準(zhǔn)的服務(wù)接口。使用C#編程語言進(jìn)行Web Service的設(shè)計,在調(diào)用Web Service之前,應(yīng)用程序要根據(jù)WSDL服務(wù)描述文檔中的信息,生成一個SOAP請求。這個請求隨即被嵌入到HTTP POST中,然后發(fā)送到Web服務(wù)器(Web Service部署在IIS的后面),經(jīng)由Web Service請求處理器的解析,生成相應(yīng)的SOAP響應(yīng)消息,并把應(yīng)答信號反饋給Web服務(wù)器。
3.4 性能調(diào)整和I/O優(yōu)化
針對選課系統(tǒng)運(yùn)行過程中所涉及的參數(shù)進(jìn)行優(yōu)化配置。主要涉及Oracle數(shù)據(jù)庫中SHARRED_POOL_SIZE、DB_CASHE_SIZE、SGA_MAX_SIZE、PGA_AGGREGATF_TARGET四個參數(shù),對這四個參數(shù)進(jìn)行合理設(shè)置,將大幅優(yōu)化數(shù)據(jù)庫能效。性能調(diào)整之后,會明顯改善選課系統(tǒng)能效,而這不只局限于優(yōu)化運(yùn)行參數(shù),還應(yīng)有針對數(shù)據(jù)的定向查詢,從而得到對SQL的優(yōu)化策略,明顯提升數(shù)據(jù)庫自身性能。
在使用索引時,要分開部署對象,設(shè)置有利的運(yùn)行環(huán)境。由于數(shù)據(jù)文件訪問量較大,故將其存儲至磁盤,以緩解頻繁的I/O操作帶來的Oracle數(shù)據(jù)庫對象使用。優(yōu)先把內(nèi)存中修改過的數(shù)據(jù)寫入日志文件,而非數(shù)據(jù)文件中,在這個過程中一定注意不要改變其大小。合理規(guī)劃日志文件分組,循環(huán)進(jìn)行組的寫操作,以減少I/O進(jìn)程之間的磁盤競爭。同時必須創(chuàng)建回滾段和對應(yīng)的表空間,以便得到系統(tǒng)操作失敗后的恢復(fù)數(shù)據(jù)。
3.5 瀏覽器兼容優(yōu)化
目前主流的瀏覽器主要是基于IE和Gecko兩種內(nèi)核,其中IE系列的各種版本瀏覽器、以IE內(nèi)核為基礎(chǔ)進(jìn)行二次開發(fā)的瀏覽器(比如騰訊TT、傲游等)都是以IE為內(nèi)核的瀏覽器;Firefox、Netscape 等瀏覽器是以Gecko為內(nèi)核的瀏覽器。由于不同瀏覽器的內(nèi)核不同導(dǎo)致了JavaScript解析上存在的差異,所以在開發(fā)Ajax應(yīng)用程序時,勢必會遇到程序代碼在不同瀏覽器下不兼容的問題。原本在某個瀏覽器中能正常運(yùn)行的程序,在另外一個瀏覽器環(huán)境中就完全無法工作。在進(jìn)行選課系統(tǒng)能效優(yōu)化過程中,主要考慮使用getElementById代替idName、表單元素的引用、集合對象成員的訪問、自定義屬性的讀取、常量的定義、input元素的type屬性讀寫問題、使用showModalDialog來創(chuàng)建模態(tài)窗口、frame元素的操作、父元素的引用、getElementsByName的問題以及innerText、outerText和outerHTML在Firefox下的實(shí)現(xiàn)。
3.6 調(diào)整選課規(guī)劃
進(jìn)一步調(diào)整選課規(guī)劃,做好選課時間及學(xué)院(專業(yè))安排。將排課時間進(jìn)一步提前,為學(xué)生選課預(yù)留充足的時間,在保證時間允許的基礎(chǔ)上,盡可能地拉長選課時間,將目前的15天增加至34天,分散學(xué)院(專業(yè))安排,減輕因并發(fā)訪問人數(shù)過多造成的服務(wù)器壓力。
3.7 硬件更新
更新選課系統(tǒng)服務(wù)器,以適應(yīng)大數(shù)據(jù)時代對應(yīng)用系統(tǒng)的要求。主要是提升CPU、內(nèi)存等硬件性能,CPU核心數(shù)由4核提高到8核,CPU頻率由2.93GHz更新到3.2GHz,CPU緩存增加到20M,內(nèi)存由24G擴(kuò)展到96G,這樣選課速度將會在很大程度上得以改善。
4 結(jié)束語
進(jìn)行大數(shù)據(jù)環(huán)境下網(wǎng)上選課系統(tǒng)能效優(yōu)化是一項(xiàng)復(fù)雜的系統(tǒng)工程,需要針對系統(tǒng)制定多角度、全方位的優(yōu)化策略。通過前期分析影響數(shù)據(jù)庫性能的各方面因素,按照數(shù)據(jù)庫優(yōu)化應(yīng)遵循的方法,開展了大量性能調(diào)整實(shí)驗(yàn),并進(jìn)行后期壓力測試。對數(shù)據(jù)庫實(shí)施該優(yōu)化策略前后性能進(jìn)行對比,結(jié)果表明,網(wǎng)上選課系統(tǒng)在運(yùn)用此方法進(jìn)行能效優(yōu)化后,性能得到了明顯提升。
參考文獻(xiàn):
[1] 潘旭武,陳啟華,張建勇. 高校選課系統(tǒng)性能優(yōu)化研究[J].中國教育信息化,2013(5):76-78.
[2] 黃健.大數(shù)據(jù)視角下選課行為分析[J].教育探究,2015,9(5):78-81.
[3] 王純子,張斌.面向大型數(shù)據(jù)處理系統(tǒng)的Oracle數(shù)據(jù)庫性能優(yōu)化技術(shù)[J].中小企業(yè)管理與科技,2013(7):288.
[4] 劉乃嘉,彭宇,王鑫,等.清華大學(xué)網(wǎng)上選課性能優(yōu)化研究與實(shí)踐[J].實(shí)驗(yàn)技術(shù)與管理,2011(5):247-248,
[5] 韋安云. Oracle 數(shù)據(jù)庫的性能調(diào)整與優(yōu)化方法探析[J]. 電腦知識與技術(shù),2015,11(21):8-9.
[6] 郭曉丹.基于Oracle數(shù)據(jù)庫系統(tǒng)性能調(diào)整與優(yōu)化研究[J].數(shù)字技術(shù)與應(yīng)用,2015,4(5):105-107.