999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

多核Web服務器中基于分配矩陣的動態請求調度算法

2016-10-14 06:47:15尤國華陳駿君
電子與信息學報 2016年9期
關鍵詞:分配服務

尤國華 陳駿君 趙 英

?

多核Web服務器中基于分配矩陣的動態請求調度算法

尤國華*陳駿君 趙 英

(北京化工大學信息中心 北京 100029)

為了構建高性能的Web服務器,充分利用Web服務器中多核處理器的性能成為關鍵。傳統的先到先服務策略沒有考慮多核處理器的特點,不能充分利用多核處理器的性能。為解決此問題,該文提出一種基于分配矩陣的動態請求調度算法。該算法充分考慮了多核處理器的特點,可將同類動態請求動態分配至同一個處理器核心,提高了Web服務器處理動態請求的速度。仿真實驗結果表明,采用該算法的Web服務器在自相似性、平均響應時間、丟包率等方面均優于傳統的先到先服務算法。

Web服務器;多核;動態請求;調度

1引言

隨著社交網絡和云計算技術的發展,越來越多的數據和應用被置于服務器端,服務器的性能成為關鍵。而實現高性能服務器的一個關鍵因素就是如何充分利用多核處理器的運算能力,這是一個日益重要但尚未解決的問題[1]。傳統的Web服務器,例如Apache,通常采用先到先服務(First Come First Served, FCFS) 算法[2],即根據用戶請求到達服務器的先后順序進行處理。FCFS算法具有簡單、公平的優點,也存在平均時間較長的缺點[3]。因此,Web服務器上也采用過短作業優先(Shortest-Job First, SJF)等算法。使用短作業優先算法時,服務時間短的請求比服務時間長的請求具有更高的服務優先級。因此,短作業優先算法總的平均響應時間更短。

用戶請求通常分為靜態請求和動態請求兩種。靜態請求獲取服務器中已有的文件(如視頻、圖片等等),動態請求向服務器請求某個處理過程,該處理過程通常是執行一段腳本程序(如JSP, PHP等)[4]。相比靜態請求,腳本程序的處理過程比較復雜,由于存在一些個性化的內容,腳本程序文件不能有效地被緩存[5]。靜態請求的資源瓶頸是內存、硬盤、網絡帶寬等,而動態請求的資源瓶頸往往是CPU。

引入多核處理器理論上可提升Web服務器處理動態請求的能力,但是以FCFS和SJF為代表的傳統請求處理算法并沒有考慮多核處理器的特點,依據目前操作系統的調度算法[6],請求同一個動態內容的動態請求可能被分配至不同的處理器核心,從而導致該動態內容可能在多個處理器核心的私有緩存之間往返,即產生“乒乓”效應問題[7],因此并不能充分利用多核處理器的運算能力。

為提升多核處理器的利用效率,許多研究者已經針對多核處理器的特性從操作系統或應用程序層面提出了相應的軟件體系結構或應用框架。

文獻[11]引入了一種新技術,sloopy counters,通過修改系統內核來消除影響多核擴展性的瓶頸因素,這種技術可應用于包括Web服務器在內的眾多應用程序。文獻[12]通過修改網絡堆棧(network stack)以支持DCA(Direct Cache Access)技術,從而可將I/O與CPU的緩存直接相連。他們的實驗表明DCA增強的Linux內核通過將應用程序上下文直接分配給多核處理器的共享緩存,最多能提升32%的性能。此外,Hadoop中YARN調度器采用的Capacity和Fair作業調度策略是也比較先進的調度算法。Capacity和Fair算法根據不同用戶對提交作業在計算時間、存儲空間、數據流量和響應時間上的不同需求,在局部(如池或隊列中)采用先進先出(First-In-First-Come, FIFO),其思想與FCFS相同,或基于優先級的策略,分層分級地綜合考慮計算、存儲資源等的分配,并基于此對提交的作業進行調度。

文獻[1]分別基于事件驅動模型和流水線模型開發了兩種高性能Web服務器,并在一個4核的處理器上進行測試。他們的實驗表明,通過仔細地配置調優,這兩種Web服務器的性能要優于nginx, lighttpd, Apache等知名的Web服務器,因此他們認為配置調優比改變系統結構更重要。文獻[13]認為多核Web服務器的擴展性差主要是在于缺省的Web服務器配置。他們研究兩種請求:動態請求和靜態請求。他們認為兩種請求擴展性不同是由于動態請求和靜態請求本身特性不同導致的。文獻[13]通過實驗表明,如果針對不同類型的用戶請求進行針對性的調優配置,多核Web服務器能獲得更好的性能。文獻[13]的工作通過減少用戶請求在多個處理器核心之間的遷移次數來獲取更好的處理性能。

為解決多核Web服務器存在的“乒乓”效應問題,文獻[14]提出了DRWS(Dynamic Requests Web Server)算法。DRWS算法將處理同一類動態請求的服務線程分配至同一個處理器核心上。同一類動態請求服務線程的數量由動態請求的訪問頻率和平均服務時間決定。為了保持處理器核心之間的負載均衡,DRWS使用遺傳算法計算各類動態請求服務線程的分配方案。經實驗驗證,DRWS算法可有效緩存多核Web服務器中的“乒乓”效應問題。但是文獻[14]中所提方法是一種靜態的動態請求調度算法,當動態請求的到達頻率發生變化時,會導致原有算法不再適用。

本文提出了一種新的動態請求調度算法MSMC(Matrix Scheduling for Multi-Core)。新的動態請求調度算法以分配矩陣、動態請求的服務時間為基礎,確定動態請求的分配方案,盡量將同一類動態請求分配至同一個處理器核心,同時兼顧處理器核心之間的負載均衡,從而達到避免“乒乓”效應,充分發揮多核處理器性能的目的。與前人所做工作不同,本文所提算法不需要修改操作系統內核也不需要額外的配置優化,主要針對動態請求進行調度,將屬于同一類的動態請求分配至同一核心,減少動態請求對應的動態內容在多個處理器核心之間的遷移,充分利用多核處理器的緩存。本文工作與文獻[13]的工作有相似的地方,但是本文目的在于減少動態請求對應的動態內容在核間的遷移,文獻[13]的目的在于減少動態請求本身在核心間的遷移。

本文按如下結構組織:第1部分引出多核Web服務器面臨的問題;第2部分提出動態請求調度模型;第3部分進行仿真實驗,并討論實驗結果;最后,給出本文的結論。

2動態請求調度算法

2.1 算法描述

為解決多核Web服務器中出現的“乒乓”效應問題,需要將請求同一個動態內容的動態請求,即同一類動態請求分配至同一個處理器核心上。但是,同時也需要保證處理器核心之間的負載均衡,以免抵消掉避免“乒乓”效應產生的益處[8]。本文所提出的模型需要在此兩者之間尋求平衡點。

如圖1所示,當包含動態請求的TCP分組到達Web服務器時,通過解析器的解析,可獲取基于HTTP協議的動態請求,以及動態請求所指向的動態內容和動態請求包含的參數。解析后的結果可匯集為動態請求隊列。本文將指向同一個動態內容的動態請求歸為同一類動態請求,同一類動態請求由于請求的動態內容相同,因此執行過程相似,執行時間(也即動態請求的服務時間)相近,且具有共享數據。

圖1 算法原理

為提高多核處理器核心的緩存命中率,充分利用各核心的私有緩存,并解決“乒乓”效應問題,需將同一類動態請求分配至同一個處理器核心。因此,圖1中調度器可根據各類動態請求的服務時間及到達率計算各處理核心上的負載狀況。依據各處理核心上的負載,調度器盡量將同類動態請求分配至同一個處理核心上。通過線程親和性方法[15],可在各核心內綁定相同數目的服務線程。當動態請求被分配至某個處理核心時,若該核心有空閑的服務線程,則給該動態請求分配一個服務線程,若無空閑服務線程,則進入該處理核心的等待隊列直到有空閑的服務線程。服務線程基于動態請求的請求內容,從緩存(若已緩存)或內存中調用動態請求所指向的動態內容,然后根據動態請求中的參數,執行對應的動態內容,并生成HTML形式的結果。然后將該HTML結果送至I/O緩存,經由I/O管理模塊發送至對應的客戶端,此即為響應。

2.2 調度算法

調度算法是整個模型的核心,調度器據此將動態請求分發至各處理器核心。為了避免“乒乓”效應、充分利用緩存局部性,需要將同一類動態請求分發至同一個核心。但是,同時也要盡量保持處理器核心之間的負載均衡,以免抵消避免“乒乓”效應帶來的益處。因此,調度算法需要在此兩者之間取得平衡。

(1)分配矩陣: 若Web服務器中有類動態請求,個處理器核心,此類動態請求的平均服務時間可依據文獻[16]所述方法獲取,記為。為記錄類動態請求分配至個處理器核心的情況,可提出分配矩陣的概念。分配矩陣記錄某動態請求分配至某個處理器核心的累計數目,如式(1)所示。

(4)

因為各核心上的負載是根據動態請求的分配數目與服務時間的乘積累加和計算而得,因此各核心上的負載本質上是服務時間的展開。因此,當前各處理器核心上的負載可根據累積負載減去各核心自第1次分配動態請求的時間至當前時間之間的時間段計算。因此,計算方法如下:

(3)分配核心的確定:由此,可計算出各核心在當前時刻的負載,根據各核心的負載,并結合如下算法可確定當前動態請求的分配核心。若當前待分配動態請求屬于第類,則分配算法如下:

(a)根據分配矩陣可獲取各類動態請求最近一次所分配的處理器核心,稱為預期分配核心,記為,則第類動態請求的預期分配核心為。

此算法盡量將同一類動態請求分配至同一個處理器核心上,但又考慮了各核心上的負載情況,盡量保持核心間的負載均衡。

3實驗設置與評估

3.1 實驗設置

為了驗證上述算法,本文開發了仿真Web服務器MSMC。MSMC使用動態鏈接庫(Dynamic Link Library, DLL)文件模擬動態內容的處理情況,請求同一個DLL文件的動態請求歸為一類,當動態請求到達分配器時,根據上述算法將動態請求分配至對應的處理器核心。MSMC使用線程池結構,使用線程硬親和性的方法在每個處理器核心分配相同數目的服務線程。若處理核心有空閑的服務線程,則根據動態請求所請求的內容和參數從內存中或CPU緩存(若DLL文件已緩存)中調取相應的DLL文件執行,執行結果封裝為HTML形式,返回給用戶,此即響應。其中,MSMC中的DLL文件的執行時間可以設置,由于實際中不同動態內容的服務時間各不相同,因此MSMC中DLL文件的執行時間也不相同,以盡可能模擬實際情況。為了與FCFS和SJF算法對比,本文也分別開發了基于FCFS和SJF算法的仿真Web服務器。

同時,為了實驗能夠盡可能地符合實際,本文開發了動態請求生成器。動態請求生成器可自動產生動態請求,并根據ON/OFF模型確定動態請求的發包時間間隔,多個發射源疊加之后產生具有自相似特征的動態請求流。此外,在單位時間內,動態請求產生器產生的動態請求數目與對應DLL文件的執行時間也服從重尾分布。動態請求產生器在實驗中可分別向MSMC, FCFS, SJF等仿真Web服務器發送符合自相似特征的動態請求流。

3.2 實驗評估

(1)響應時間的分布: Web服務器中,動態請求響應時間的分布是服務質量(Quality of Service, QoS)的重要指標。為了評估FCFS(First Come First Served), DRWS(Dynamic Requests Web Server)和MSMC(Multi-Socket Multi-Core)算法的QoS,本實驗分別測量出每種動態請求的響應時間并繪出此3種算法的響應時間分布(如圖2所示)。

圖2 FCFS, DRWS和MSMC調度算法響應時間對比

由圖2可知,在每個時間間隔上FCFS的響應時間分布得更為平均,但是FCFS的平均響應時間更長些。這與FCFS具有公平但排隊時間長的特性相一致。由于FCFS算法排隊時間長,而且不能充分利用多核系統的性能,因此具有更長的平均響應時間。與FCFS算法相比,DRWS和MSMC算法充分考慮了多核處理器的特性并且部分消除了乒乓效應的影響,于是上述兩種算法具有更多更短響應時間的動態請求。DRWS是一種靜態的調度算法,DRWS的分配算法在確定之后就不改變,而動態請求的到達是隨機的,因此使用DRWS算法會引起核間負載不均衡。與DRWS算法相比,MSMC算法動態分配動態請求,因此可以更好地保持處理器核心之間的負載均衡,所以MSMC算法的平均響應時間更短的動態請求更多,整體平均響應時間更短。

(2)自相似性對3種調度算法平均響應時間的影響: 為了模擬網絡流量的自相似性,本實驗采用ON/OFF重尾模型生成動態請求流。動態請求的發包時間間隔服從Pareto分布,Pareto分布的形狀參數(shape parameter)用于表征Pareto分布的重尾程度,取值越小,Pareto分布的重尾程度越明顯,動態請求流的自相似性就越強。為研究動態請求流的自相似性對調度算法的影響,本實驗通過調整Pareto分布的形狀參數,測量并計算各形狀參數下3種算法的平均響應時間(如圖3所示)。

圖3 FCFS, DRWS和MSMC算法平均響應時間隨自相似性的變化

自相似的程度可以使用Hurst參數(0.5<< 1)表示,而和的關系如式(6)所示:

(3)服務線程數目對3種調度算法平均響應時間的影響: 為了研究服務線程的數目對調度算法的平均響應時間和丟包率的影響,本實驗改變3種調度算法的服務線程的數目,然后測量并計算出各調度算法的平均響應時間和丟包率,結果如圖4所示。

圖4 FCFS, DRWS和MSMC算法的平均響應時間和丟包率隨線程數目的變化

由圖4可知,3種調度算法的平均響應時間和動態請求的丟包率均隨服務線程數目的增加而降低。服務線程的增加意味著服務器中有更多的服務線程處理到達的動態請求,因此3種調度算法的平均響應時間和丟包率隨之降低。而MSMC和DRWS中的服務線程均被限制到指定的核心上,不能在核心間移動,DRWS和MSMC可以充分利用緩存中的數據,故圖4中,DRWS和MSMC算法的平均響應時間和丟包率的下降幅度要大于FCFS。此外,MSMC算法不僅可充分利用緩存數據,而且可以動態調整分配方案應對網絡突發和波動的情況,因此與DRWS算法相比,其平均響應時間和丟包率更低(如圖4所示)。

4結束語

為了解決多核Web服務器中“乒乓”效應的問題,本文提出了一種新的動態請求調度算法。與傳統的FCFS算法相比,新算法通過將同種類的動態請求動態分配至同一個處理器核心的方法,可以更好地利用緩存中的數據。與DRWS算法相比,新算法是動態分配算法,可以更好地保持處理器核心之間的負載均衡。本文詳細描述了新調度算法并給出了關鍵計算公式。而且在此基礎上,開發出了相應的仿真程序,進行了仿真實驗。實驗結果證明新的算法可以緩解“乒乓”效應問題。由于實際應用中,處理動態請求涉及的系統資源比較多,不僅僅是CPU資源,還有I/O資源、數據庫連接數資源等,也比較復雜,因此在下一步的工作中,準備針對動態請求涉及的其他資源進行研究,繼續完善多核環境中動態請求的調度算法。

[1] HARJI A S, BUHR P A, and BRECHT T. Comparing high-performance multi-core web-server architectures[C]. Proceedings of the 5th Annual International Systems and Storage Conference, New York, 2012: 1-12.

[2] APACHE. The Apache Software Foundation[OL]. http:// www.apache.org. 2012.1.

[3] DENG K, VERBOON R, REN K, et al. A periodic portfolio scheduler for scientific computing in the data center[C]. Job Scheduling Strategies for Parallel Processing, Berlin Heidelberg, 2014: 156-176.

[4] PROCTOR I A R, YANG M, and ZHAO H. Executing server side script code specified using PHP on a server to generate dynamic web pages[P]. USA, 8, 707, 161, 2014-04-22.

[5] VAN DER WEIJ W, BHULAI S, and VAN DER MEI R. Dynamic thread assignment in web server performance optimization[J]. Performance Evaluation, 2009, 66: 301-310.

[6] SIDDHA S B. Multi-core and Linux Kernel[OL]. http://oss. intel.com/pdf/mclinux.pdf. 2011.10.

[7] YOU Guohua, WANG Xuejing, and ZHAO Ying. A dynamic requests scheduling model based on prediction in multi-core web server[C]. Internet of Vehicles-Technologies and Services, Beijing, 2014: 304-312.

[8] GUO Danhua, BHUYAN L N, and LIU B. An efficient parallelized L7-filter design for multicore servers[J]. IEEE/ACM Transactions on Networking, 2012, 20(5): 1426-1439.

[9] CHOI G S and DAS C R. A superscalar software architecture model for multi-core processors[J]. The Journal of Systems and Software, 2010, 83: 1823-1837.

[10] CHONKA A, CHONG S K, ZHOU W, et al. Multi-core defense system (MSDS) for protecting computer infrastructure against DDoS attacks[C]. Proceedings of the 2008 Ninth International Conference on Parallel and Distributed Computing, Dunedin, 2008: 503-508.

[11] BOYD W S, CLEMENTS A T, MAO Y, et al. An analysis of linux scalability to many cores[C]. Proceedings of the 9th USENIX conference on Operating Systems Design and Implementation, Berkeley, 2010: 1-8.

[12] KUMAR A, HUGGAHALLI R, and MAKINENI S. Characterization of direct cache access on multi-core systems and 10gbe[C]. Proceedings of the IEEE 15th International Symposium on High Performance Computer Architecture, Raleigh, 2009: 341-352.

[13] HASHEMIAN R, KRISHNAMURTHY D, ARLITT M, et al. Characterizing the scalability of a web application on a multi- core server[J]. Concurrency and Computation: Practice and Experience, 2014, 26: 2027-2052.

[14] YOU Guohua and ZHAO Ying. A weighted-fair-queuing (WFQ)-based dynamic request scheduling approach in a multi-core system[J]. Future Generation Computer Systems, 2012, 28(7): 1110-1120.

[15] AGRAWAL R, GOYAL A, SAMBASIVAM D, et al. Parallelization of industrial process control program based on the technique of differential evolution using multi-threading [C]. 2014 IEEE International Conference on Industrial Engineering and Engineering Management (IEEM), Zhuhai, 2014: 546-550.

[16] SHARIFIAN S, MOTAMEDI S A, and AKBARI M K. A content-based load balancing algorithm with admission control for cluster web servers[J]. Future Generation Computer Systems, 2008, 24(8): 775-787.

[17] LI J, SHARMA N K, PORTS D R K,. Tales of the tail: Hardware, os, and application-level sources of tail latency[C]. Proceedings of the ACM Symposium on Cloud Computing, Seattle, 2014: 114.

A Dynamic Request Scheduling Algorithm Based on Allocation Matrix in Multi-core Web Server

YOU Guohua CHEN Junjun ZHAO Ying

Center for Information Technology, Beijing University of Chemical Technology, Beijing 100029, China

To implement the high performance web server, it is a key to exploit fully the performance of multi-core CPUs in web servers. Traditional First Come First Served (FCFS) policy does not consider the characteristic of multi-core processors, and could not fully exploit its performance. To address this problem, a dynamic request scheduling algorithm based on allocation matrix is proposed in this paper. The algorithm fully considers the characteristic of multi-core processors, assigns the same kind of dynamic requests to the same processing core, and improves the speed of handling dynamic requests in web server. The results of the experiment show that the web server that adopts this algorithm is superior to the traditional FCFS algorithm in the aspect of similarity, mean response time and dropped rate of dynamic requests.

Web Servers; Multi-core; Dynamic requests; Scheduling

TP301

A

1009-5896(2016)09-2188-06

10.11999/JEIT151328

2015-11-15;

2016-05-09;

2016-07-04

中央高校基本科研業務費項目(PT1607)

Fundamental Research Funds for the Central Universities (PT1607)

尤國華 yough@mail.buct.edu.cn

尤國華: 男,1979年生,講師,研究方向為多核Web服務器軟件體系結構.

陳駿君: 男,1990年生,博士生,研究方向為網絡流量分析.

趙 英: 男,1966年生,教授,研究方向為分布式系統、高性能計算.

猜你喜歡
分配服務
基于可行方向法的水下機器人推力分配
應答器THR和TFFR分配及SIL等級探討
服務在身邊 健康每一天
今日農業(2019年14期)2019-09-18 01:21:54
服務在身邊 健康每一天
今日農業(2019年12期)2019-08-15 00:56:32
遺產的分配
一種分配十分不均的財富
服務在身邊 健康每一天
今日農業(2019年10期)2019-01-04 04:28:15
服務在身邊 健康每一天
今日農業(2019年15期)2019-01-03 12:11:33
服務在身邊 健康每一天
今日農業(2019年16期)2019-01-03 11:39:20
績效考核分配的實踐與思考
主站蜘蛛池模板: 国产草草影院18成年视频| 亚洲综合第一区| 久操中文在线| 欧美日韩成人| 亚洲午夜福利精品无码| 91尤物国产尤物福利在线| 免费国产小视频在线观看| 精品亚洲欧美中文字幕在线看| 在线无码私拍| 天天操天天噜| 欧美专区日韩专区| 日韩国产另类| 一级毛片不卡片免费观看| 天堂成人在线视频| 国产欧美精品午夜在线播放| 中文字幕首页系列人妻| 热久久综合这里只有精品电影| 亚洲欧美一区在线| 国产美女精品人人做人人爽| 99精品国产高清一区二区| 99久视频| 亚洲狠狠婷婷综合久久久久| 亚洲精品在线91| 57pao国产成视频免费播放| 一本大道视频精品人妻| 五月婷婷丁香色| 欧美精品不卡| 国产v精品成人免费视频71pao| 國產尤物AV尤物在線觀看| 欧美中文字幕一区| 久视频免费精品6| 亚洲国产中文在线二区三区免| 欧美不卡视频在线| 国产一区自拍视频| 97亚洲色综久久精品| 中文字幕在线观看日本| 亚洲天堂视频在线播放| 二级毛片免费观看全程| 尤物国产在线| 国产成+人+综合+亚洲欧美| 高h视频在线| 久久国产av麻豆| 人妻精品久久久无码区色视| 一级毛片网| 国产午夜看片| 久久情精品国产品免费| 精品日韩亚洲欧美高清a| 在线免费亚洲无码视频| 六月婷婷激情综合| 第一区免费在线观看| 在线日本国产成人免费的| 亚洲综合片| 在线精品亚洲一区二区古装| 成人在线不卡视频| 九九久久精品免费观看| 日本日韩欧美| a毛片基地免费大全| 国产在线观看成人91| 国产精品大白天新婚身材| 2018日日摸夜夜添狠狠躁| 国产精品55夜色66夜色| 亚洲第一香蕉视频| 国产精品无码一区二区桃花视频| 2021亚洲精品不卡a| 午夜免费视频网站| 高清视频一区| 欧美色视频日本| 精品无码日韩国产不卡av| 国外欧美一区另类中文字幕| 91视频首页| 亚洲乱伦视频| 男女性午夜福利网站| 91国内在线观看| 日韩小视频网站hq| 亚洲性一区| 亚洲AV无码乱码在线观看裸奔| 精品久久久久久久久久久| 国产精品欧美在线观看| 一级毛片免费高清视频| 国产日韩欧美精品区性色| 中文无码毛片又爽又刺激| 亚洲无码日韩一区|