[發明專利]用于具有自調整線程模型的應用服務器的系統和方法無效
| 申請號: | 200580001031.8 | 申請日: | 2005-05-20 |
| 公開(公告)號: | CN101091164A | 公開(公告)日: | 2007-12-19 |
| 發明(設計)人: | 安諾·R·蘭根;納里什·里瓦納魯 | 申請(專利權)人: | BEA系統公司 |
| 主分類號: | G06F9/46 | 分類號: | G06F9/46;G06F9/50;G06F9/54 |
| 代理公司: | 北京市柳沈律師事務所 | 代理人: | 邸萬奎;黃小臨 |
| 地址: | 美國加利*** | 國省代碼: | 美國;US |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 用于 具有 調整 線程 模型 應用 服務器 系統 方法 | ||
技術領域
本發明一般涉及應用服務器和消息傳遞系統,特別涉及一種用于具有自調整線程模型的應用服務器的系統和方法。
背景技術
在可能存在幾百或幾千個并發用戶(客戶端)的典型應用服務器或網絡服務器環境中,這些客戶端中的每個可以將請求發送到服務器。圖1示出了這種環境的示例。現代服務器100可以具有多個處理器以及服務于這些處理器的多個線程102。線程從客戶端104、106、108獲得請求110、112、114,并且以類似于隊列的方式將它們施加到處理器。實際所使用的線程數目對服務器性能及其處理大量用戶的能力具有巨大影響。然而,算出線程的最優數目是復雜的處理。
一種對此問題的解決方案是增加甚至更多的線程,從而線程數大大地超過處理器數。這確保了幾乎立即將請求供應到線程中,但是不確保這些請求迅速地被處理器處理。一種較新的替代方案是創建線程池,其中運行靈活數目的線程。然后,可以由管理員微調實際的線程數目,以便為具體的運行時間環境提供最佳性能。然而,該處理嚴重地取決于管理員的技術,因為它在很大程度上是環境相關的并且是靜態的,并且大多數僅僅用于測試平臺和營銷的目的。在現實生活的情形中,環境如此多變以致于該靜態方案無法令人滿意。
因此,需要一種用于允許服務器基于工作負載的目標預測而自動地確定和實現最優數目的并發線程的裝置。由于應用服務器所處位置(在操作系統之上)的限制,因此不能將該線程控制嵌入到操作系統內,而是必須存在于更高級別。因此,應當存在一種用于控制在應用服務器中的線程的數目和供應它們的隊列的裝置。
發明內容
根據本發明的實施例,提供了一種用于具有自調整線程模型的應用服務器的系統和方法。根據實施例,使用服務器隊列作為優先級方案,其中包括多個與所接收的請求相關聯的條目,并且其允許條目表達比僅僅線程數目更加自然和更接近于商業用戶的優先級。仍然保留靈活性,以在可能希望其的情況下(例如,如果存在除非使得特定數目的線程可用、否則將會死鎖的巳知調用序列)以原始數目表達線程,或者基于全系統范圍或工作負載而表達對要使得可用的線程數目的約束。
根據實施例,可以將優先級指定為“份額”,其是反映將接收請求的實體之間的相稱優先級的抽象概念。由于總數是任意的,并且可能存在大于100的份額,因此盡管份額與百分比線程使用類似,但它們并不相同。份額確定分配給每個實體的線程使用(按照線程數目)。然后,系統(或運行在其上的算法)確保在長期時間內,將根據這些份額分配線程的使用(按照線程時間)。例如使用已經被分配的時間或線程分鐘數的兩倍的任何實體將受到懲罰,以使相對使用比例回到平衡。
根據實施例,在運行時間期間,該算法還可以用來調整線程池的大小,然后在該池內分配線程。
根據實施例,維護優先級隊列。每個請求實體,例如客戶端,可以發布進入隊列、并且根據相對份額而被分隔開的請求。從而,例如,與用盡了其分配或者具有基于較低時間的分配或份額的另一實體相比,如果該實體沒有超過其分配,則可以將其請求放置在隊列中的相對高處,并且將立即開始獲得線程。
根據實施例,對于最大線程約束,系統可以維護獨立的隊列,用于將請求保存在優先級隊列中、以及最大線程約束隊列中。當清除了最大線程約束隊列時,將允許執行優先級隊列中的任何類似項目(即,用于相同約束的某項目)。
根據實施例,線程池的大小調整可以縮減到遞增或遞減一個現有池。這是基于周期性地,例如每一秒或兩秒執行的。
自調整線程模型的總體結果是服務器的盒外(out-of-the?box)性能的大幅度提高。然后,還可以為了適應特定需要而定制線程特征。該特性還允許服務器客戶在設置其系統時具有更大的靈活性,并且向他們提供方法來針對具體的商業邏輯或客戶需求集等來區分其線程模型的優先級。
附圖說明
圖1示出了多個客戶端使用線程訪問服務器的環境的圖解。
圖2示出了根據本發明實施例的、多個客戶端使用線程和優先級隊列來訪問服務器的環境的圖解。
圖3示出了根據本發明實施例的用于使用線程訪問服務器的處理的流程圖。
具體實施方式
目前,應用服務器客戶定義新的線程池并配置其大小,以避免死鎖并提供不同的服務。這是十分困難的處理。有才能的軟件管理團隊可能花費幾天來仔細考慮用于最優性能的配置。
根據本發明的實施例,自調整服務器動態地調整線程數,以避免死鎖并且實現受到并發約束的最優吞吐量。它還滿足用于不同服務的目標。這些目標被表述為響應時間目標、份額和優先級。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于BEA系統公司,未經BEA系統公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200580001031.8/2.html,轉載請聲明來源鉆瓜專利網。





