史鴻雁, 李海生
(北京工商大學 計算機與信息工程學院, 北京 100048)
因特網的快速發展,要求服務器提供高質量、高效率的服務. 目前提高服務器性能較流行的技術是采用負載均衡集群(load balance cluster)技術[1]. 負載均衡集群運行時一般通過一個或者多個前端負載均衡器,將工作負載分發到后端的一組服務器上,從而達到整個集群系統的高性能和高可用性.
負載均衡只有通過某種負載分配技術,才能將外部發送來的請求均勻分配到集群中某一組服務器上,并使收到外部請求的服務器能各自獨立地響應客戶的請求. 因此,負載分配是集群系統工作的關鍵部分,它保證了集群系統對外提供最大的數據處理速度和服務能力.
設計負載均衡算法的目的是為了更好地解決集群的負載分配問題,它的好壞直接影響了集群向外提供服務能力的大小. 不好的算法,會導致集群的負載失衡,從而降低集群的工作效率[2]. 負載均衡算法的主要任務是決定如何選擇下一個集群結點,將一個用戶的服務請求轉發給它. 當前,主要的負載均衡算法有隨機算法、輪轉算法、加權輪轉算法等.
隨機分配算法(random allocation)依賴于相應的隨機函數,在一個服務器負載成員隊列里,隊列的每個負載成員都具有相同的地位,網絡用戶請求通過隨機函數在這組成員中隨機地選擇進行任務分配. 隨機算法在一定程度上具有盲目性,在某一時刻選中的結點恰好是……