计算机工程
計算機工程
계산궤공정
COMPUTER ENGINEERING
2014年
3期
76-81
,共6页
张颖楠%顾乃杰%彭建章%王国澎%魏振伟
張穎楠%顧迺傑%彭建章%王國澎%魏振偉
장영남%고내걸%팽건장%왕국팽%위진위
多队列网卡%多核%epoll机制%源地址哈希%会话保持
多隊列網卡%多覈%epoll機製%源地阯哈希%會話保持
다대렬망잡%다핵%epoll궤제%원지지합희%회화보지
multi-queue network card%multi-core%epoll mechanism%source address hash%session-persistence
针对多进程负载均衡无法保持会话的问题,提出一个基于epoll机制的内核级高效解决方法。对于每个新建立的连接,在epoll的通知机制中使用源地址哈希算法,由epoll通知哈希选出的进程接收此连接,期望通过为同一个IP地址的请求选择同一个负载均衡服务进程,保证该进程依据自身记录的会话信息将同一个客户的请求转发给同一个后端服务器。此外,通过分析多队列网卡的特性,给出维持收包发包中断、软中断、协议栈处理、用户态处理都在同一个核上的优化方法,以提高cache性能。实验结果表明,该方法能解决基于epoll的多进程负载均衡服务器的会话保持问题,并且在多核处理器多队列网卡环境下通过优化使cps提高12%,数据吞吐量提高4.6%。
針對多進程負載均衡無法保持會話的問題,提齣一箇基于epoll機製的內覈級高效解決方法。對于每箇新建立的連接,在epoll的通知機製中使用源地阯哈希算法,由epoll通知哈希選齣的進程接收此連接,期望通過為同一箇IP地阯的請求選擇同一箇負載均衡服務進程,保證該進程依據自身記錄的會話信息將同一箇客戶的請求轉髮給同一箇後耑服務器。此外,通過分析多隊列網卡的特性,給齣維持收包髮包中斷、軟中斷、協議棧處理、用戶態處理都在同一箇覈上的優化方法,以提高cache性能。實驗結果錶明,該方法能解決基于epoll的多進程負載均衡服務器的會話保持問題,併且在多覈處理器多隊列網卡環境下通過優化使cps提高12%,數據吞吐量提高4.6%。
침대다진정부재균형무법보지회화적문제,제출일개기우epoll궤제적내핵급고효해결방법。대우매개신건립적련접,재epoll적통지궤제중사용원지지합희산법,유epoll통지합희선출적진정접수차련접,기망통과위동일개IP지지적청구선택동일개부재균형복무진정,보증해진정의거자신기록적회화신식장동일개객호적청구전발급동일개후단복무기。차외,통과분석다대렬망잡적특성,급출유지수포발포중단、연중단、협의잔처리、용호태처리도재동일개핵상적우화방법,이제고cache성능。실험결과표명,해방법능해결기우epoll적다진정부재균형복무기적회화보지문제,병차재다핵처리기다대렬망잡배경하통과우화사cps제고12%,수거탄토량제고4.6%。
This paper proposes an efficient method at the kernel level to solve the problem how to maintain the session in multi-process load balancing. In the wakeup-callback mechanism of epoll, this method wakes up a certain service process selectively to process the packet and accept this connection according to the source address hash algorithm. It hopes that the requests sharing the same IP address are responded by the same service process. So the requests from the same client are forwarding to the same backend server according to the session information kept in this load balancing process. This paper also devotes to optimize the performance of the procedure of receiving and sending packets. It is an intended way to keep this whole process on the same CPU core to reduce the refresh rate of the CPU cache. Experimental results reflect that the method in this paper achieves the objective to keep the session and also increases cps by 12% and throughput by 4.6%which is based on multi-queue NIC and multi-core processor.