TW202101242A - 用於管理輸入輸出佇列對的系統及方法 - Google Patents

用於管理輸入輸出佇列對的系統及方法 Download PDF

Info

Publication number
TW202101242A
TW202101242A TW109119135A TW109119135A TW202101242A TW 202101242 A TW202101242 A TW 202101242A TW 109119135 A TW109119135 A TW 109119135A TW 109119135 A TW109119135 A TW 109119135A TW 202101242 A TW202101242 A TW 202101242A
Authority
TW
Taiwan
Prior art keywords
queue
threshold
utilization rate
pairs
input
Prior art date
Application number
TW109119135A
Other languages
English (en)
Other versions
TWI828917B (zh
Inventor
楊征宇
艾倫 羅素 安德魯斯
尼希亞 齊特 拉瑪克瑞希南
蘇欣德拉 格雷馬 桑帕斯
克雷 邁爾斯
湯瑪斯 大衛 艾文斯
Original Assignee
南韓商三星電子股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 南韓商三星電子股份有限公司 filed Critical 南韓商三星電子股份有限公司
Publication of TW202101242A publication Critical patent/TW202101242A/zh
Application granted granted Critical
Publication of TWI828917B publication Critical patent/TWI828917B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4291Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Abstract

一種用於管理輸入輸出佇列對的系統及方法。在一些實施例中,所述方法包括:計算系統利用率,所述系統利用率是以下二者之比率:輸入輸出請求的到達速率對服務速率;判斷是否:系統利用率已在超過第一臨限長度的時間週期期間超過第一臨限利用率且預期添加新的佇列對會提高系統效能;以及因應於確定:系統利用率已在超過第一臨限長度的時間週期期間超過第一臨限利用率且預期添加新的佇列對會提高系統效能,添加新的佇列對。

Description

用於管理輸入輸出佇列對的系統及方法
根據本發明的實施例的一或多個態樣是有關於使用組構上非揮發性記憶體快速的資料儲存系統,且更具體而言,是有關於一種用於提高此類資料儲存系統的效能的系統及方法。
在一些情況下,現有的組構上非揮發性記憶體快速(non-volatile memory express over fabrics,NVMeoF)系統可能展現出較差的效能。此可能是由以下問題中的一或二者引起。首先,一些NVMeoF實施方案由於以下原因而可能浪費系統資源:(i)維持額外的空閒佇列對,或者(ii)因未維持足夠的佇列對而對系統利用不足。其次,一些NVMeoF實施方案可能不具有合適的流量控制方案來防止佇列對服務速率(queue pair service rate)因高輸入/輸出(input/output,I/O)壓力(例如,佇列對中大量的經排入佇列I/O作業)而變慢。
因此,需要一種用於提高組構上非揮發性記憶體快速資料儲存系統的效能的系統及方法。
根據本發明的實施例,提供一種用於管理輸入輸出佇列對的方法,所述方法包括:計算系統利用率,所述系統利用率是以下二者之比率:輸入輸出請求的到達速率對服務速率;確定:所述系統利用率已在超過第一臨限長度的時間週期期間超過第一臨限利用率,且預期添加新的佇列對會提高系統效能;以及添加所述新的佇列對。
在一些實施例中,所述方法更包括:確定:所述系統利用率已在超過所述第一臨限長度的時間週期期間保持低於第二臨限利用率,第二臨限利用率低於第一臨限利用率,且預期刪除佇列對會提高系統效能;以及刪除所述佇列對。
在一些實施例中,所述方法更包括:確定:所述系統利用率低於所述第一臨限利用率且高於第三臨限利用率,第三臨限利用率介於第一臨限利用率與第二臨限利用率之間;以及將佇列高度下臨限值調整成等於服務速率的函數。
在一些實施例中,所述方法更包括:確定:所述輸入輸出佇列對中的第一佇列對的提交佇列被解鎖,且集中式佇列儲存輸入輸出請求,且所述提交佇列的高度小於佇列高度上臨限值;以及將所述輸入輸出請求排入第一佇列對。
在一些實施例中,所述方法更包括:確定所述提交佇列的當前高度等於所述佇列高度上臨限值;以及鎖定所述提交佇列。
在一些實施例中,所述方法更包括:確定所述提交佇列的所述當前高度不超過所述佇列高度下臨限值;以及將所述提交佇列解鎖。
在一些實施例中,所述函數是每輸入輸出請求的平均處理延遲的模型的在數值上得出的最小值。
在一些實施例中,所述模型是作為所述服務速率及所述佇列高度下臨限值的函數的對每輸入輸出請求的歷史平均處理延遲的多項式擬合。
在一些實施例中,所述方法更包括:確定自最近一次使用數值最小化來確定及設定佇列對數目以來已過去長度超過第二臨限長度的時間間隔;作為所述佇列對數目的函數,執行每輸入輸出請求的平均處理延遲的模型的數值最小化,以計算欲在操作期間使用的佇列對數目;以及添加零或多個新佇列對,或者刪除零或多個佇列對,使得所述佇列對數目等於所計算的所述欲在操作期間使用的佇列對數目。
根據本發明的實施例,提供一種系統,包括:處理電路以及一或多個持久性儲存裝置,所述處理電路被配置成:實例化一或多個輸入輸出佇列對,用於儲存:欲發送至所述一或多個持久性儲存裝置的輸入輸出請求,以及自所述一或多個持久性儲存裝置接收的命令完成結果;計算系統利用率,所述系統利用率是以下二者之比率:輸入輸出請求的到達速率對服務速率;確定:所述系統利用率已在超過第一臨限長度的時間週期期間超過第一臨限利用率,且預期添加新的佇列對會提高系統效能;以及添加新的佇列對。
在一些實施例中,所述處理電路更被配置成:確定:所述系統利用率已在超過所述第一臨限長度的時間週期期間保持低於第二臨限利用率,第二臨限利用率低於第一臨限利用率,且預期刪除佇列對會提高系統效能;以及刪除佇列對。
在一些實施例中,所述處理電路更被配置成:確定所述系統利用率低於所述第一臨限利用率且高於第三臨限利用率,第三臨限利用率介於第一臨限利用率與第二臨限利用率之間;以及將佇列高度下臨限值調整成等於服務速率的函數。
在一些實施例中,所述處理電路更被配置成:確定:所述輸入輸出佇列對中的第一佇列對的提交佇列被解鎖,且集中式佇列儲存輸入輸出請求,且所述提交佇列的高度小於佇列高度上臨限值;以及將所述輸入輸出請求排入第一佇列對。
在一些實施例中,所述處理電路更被配置成:確定所述提交佇列的當前高度等於所述佇列高度上臨限值;以及鎖定所述提交佇列。
在一些實施例中,所述處理電路更被配置成:確定所述提交佇列的所述當前高度不超過所述佇列高度下臨限值;以及將所述提交佇列解鎖。
在一些實施例中,所述函數是每輸入輸出請求的平均處理延遲的模型的在數值上得出的最小值。
在一些實施例中,所述模型是作為所述服務速率及所述佇列高度下臨限值的函數的對每輸入輸出請求的歷史平均處理延遲的多項式擬合。
在一些實施例中,所述處理電路更被配置成:確定自最近一次使用數值最小化來確定及設定佇列對數目以來已過去長度超過第二臨限長度的時間間隔;作為所述佇列對數目的函數,執行每輸入輸出請求的平均處理延遲的模型的數值最小化,以計算欲在操作期間使用的佇列對數目;以及添加零或多個新佇列對,或者刪除零或多個佇列對,使得所述佇列對數目等於所計算的所述欲在操作期間使用的佇列對數目。
根據本發明的實施例,提供一種系統,包括:用於處理的構件以及一或多個持久性儲存裝置,所述用於處理的構件被配置成:實例化一或多個輸入輸出佇列對,用於儲存:欲發送至所述一或多個持久性儲存裝置的輸入輸出請求,以及自所述一或多個持久性儲存裝置接收的命令完成結果;計算系統利用率,所述系統利用率是以下二者之比率:輸入輸出請求的到達速率對服務速率;確定:所述系統利用率已在超過第一臨限長度的時間週期期間超過第一臨限利用率,且預期添加新的佇列對會提高系統效能;以及添加新的佇列對。
在一些實施例中,所述用於處理的構件更被配置成:確定:所述系統利用率已在超過所述第一臨限長度的時間週期期間保持低於所述第一臨限利用率,且預期刪除佇列對會提高系統效能;以及刪除佇列對。
以下結合附圖闡述的詳細說明旨在作為對根據本發明而提供的用於提高組構上非揮發性記憶體快速資料儲存系統的效能的系統及方法的示例性實施例的說明,且並非旨在表示可在其中構造或利用本發明的唯一形式。所述說明結合所示實施例來闡述本發明的特徵。然而,應理解,藉由亦旨在囊括於本發明的範圍內的不同實施例可達成相同或等效的功能及結構。如本文他處所示,相同的元件編號旨在指示相同的元件或特徵。 1.介紹
本發明大體而言是有關於一種用以藉由以下方式來提高基於佇列對的NVMeoF起始者-目標系統中的I/O傳輸效能的被稱為「NVMe佇列對效能最佳化器(NVMe Queue Pair Performance Optimizer,NVMeQPO)」的效能最佳化器:適應性地調整佇列對數目並控制I/O流量,以相對於不適應性地調整佇列對數目及控制I/O流量的傳統系統在服務速率方面獲得提高的效能。一些實施例是以NVMeoF系統的某些特性為動機,例如用戶端堆疊的整體服務速率取決於佇列對數目以及每一佇列對的平均經排入佇列I/O高度(此可由到達工作負載的分佈型樣(arrival workload's distribution pattern)反映)。
NVMeoF可用於提高計算及儲存的並行性及可縮放性,並將計算與儲存解耦。一些實施例是由NVMeoF中的如下問題所驅動:每一網路介面控制器(Network Interface Controller,NIC)埠中的一些佇列對及目標側中的對應佇列對的整體服務速率可並非與此NIC埠中的集中式佇列(NIC_CQ)中的I/O到達無關。因此,為了藉由最小化系統中每一I/O請求的延遲來提高效能,所揭露系統可藉由在運行時間期間動態調整到達的I/O的參數及佇列對設定來最大化服務速率。
如上所述,一些NVMeoF系統可能具有以下問題:
(1)在不基於工作負載型樣及系統效能變化對NIC中的佇列對數目進行任何適應性調整的情況下,一些NVMeoF實施方案可能會浪費系統資源。此種浪費可能是由以下造成:(i)維持額外的空閒佇列對,或者(ii)因未維持足夠的佇列對而對系統利用不足;
(2)一些NVMeoF實施方案不具有流量控制方案來防止佇列對服務速率在存在高I/O壓力(即,佇列對中大量的經排入佇列I/O作業)時變慢。
為了解決上述問題,一些實施例具有二個組件—「組件1:佇列對數目管理器」及「組件2:基於佇列對深度的流量控制器」,如圖1-1所示。所揭露系統可使用組件1來改變佇列對數目,以提高服務速率。所揭露系統可更實施組件2,用於使用二個水位線來控制到達流量,以調整到達I/O請求串流的分佈。在以下章節中說明其他細節。 2.NVMeQPO的系統概述
在此章節中,介紹一些NVMeoF實施方案中資料路徑的背景及局限性,隨後呈現問題公式化及相關聯演算法。圖2-1T所示表格概述了在此章節中所使用的術語。
2.1 NVMeoF的背景
由於固態驅動機(solid state drive,SSD)的存取速度快且延遲小,隨著SSD的容量增加及SSD的價格下降,SSD正在某些市場(例如,資料中心市場)中逐漸取代傳統的硬碟驅動機(Hard Disk Drive,HDD)。傳統上,SSD在進階主機控制器介面(Advanced Host Controller Interface,AHCI)機制下藉由串列進階技術附件(Serial Advanced Technology Attachment,SATA)或串列附接小型電腦系統(Serial Attached Small Computer System,SAS)介面規範連接至伺服器主機板。然而,可能存在二個瓶頸限制了上述實施方案的效能:
(1)瓶頸1:缺乏並行性。
SSD的高I/O速度可受到SATA介面的阻礙。SATA最初是為傳統HDD而設計的,且其只能提供最高達600百萬位元組/秒(MB/sec)的頻寬,此可顯著低於SSD的頻寬。被稱為非揮發性記憶體快速(Non-Volatile Memory Express,NVMe)的介面規範闡述了克服瓶頸的並行性及直接存取。
NVMe闡述了藉由使用周邊組件互連快速(Peripheral Component Interconnect Express,PCIe)匯流排通道並支援最高達64k個命令佇列及每佇列最高達64個命令來增加SSD頻寬的使用。相較之下,SATA只能支援最高達32個命令佇列及每佇列僅1個命令。
NVMe藉由在PCIe匯流排通道上並行處理大量I/O操作來提高整體計算效能,此可有助於使用多核心處理器資源。
此外,與SATA及SAS不同,NVMe裝置可使用相對高速的PCIe連接直接與系統中央處理單元(central processing unit,CPU)進行通訊,此可起到繞過中間堆疊層並減少I/O延遲時間的作用。
(2)瓶頸2:因相對緊密的計算-儲存耦合所致的可縮放性問題:
一種SSD部署方法可包括將SSD放置於伺服器中,其中用戶端實例(instance)(例如,虛擬機、多克爾容器(docker container)或其他應用)在同一伺服器中運行並使用相關聯的SSD資源。然而,由於儲存資源與計算資源可能耦合,因此此種架構可能無法縮放。例如,儲存可能受到伺服器中磁碟插槽數目的限制,且計算及儲存可能被過度利用或利用不足。此種過度利用或利用不足可導致低效能效率(例如,較差的資源管理)及低財務效率(例如,高的總擁有成本)。
為了克服此種局限性,NVMeoF可起到藉由將NVMe SSD(容納於一些專用的僅儲存式主機/伺服器中)直接連接至叢集而非將其鎖定至固定的伺服器來將儲存與計算解耦的作用。此種解耦可起到便於將許多(例如,數千個或更多)NVMe SSD連接至集群中同時將計算任務留在其他伺服器上的作用。因此,可達成各種與可縮放性相關的功能(例如資料的複製及遷移)。
圖2-1示出NVMeoF系統中不同層(例如由NVMeoF支援的不同輸送模式)的實例。NVMeoF是基於NVMe 1.2協定,且包括對NVMe輸送層的改變。NVMeoF支援三種輸送模式:「記憶體」、「訊息」以及「記憶體及訊息」。NVMe(藉由PCIe)與NVMeoF之間的一個差異可為:NVMeoF可在組構上運行,即基於訊息的輸送,而NVMe PCIe可使用共享記憶體。
此繪示於圖2-1中,其中NVMeoF亦依賴於並使用遠端直接記憶體存取(remote direct memory access,RDMA),包括InfiniBand(具有大約40十億位元/秒(Gbps)的頻寬)、融合乙太網路上RDMA(RDMA over Converged Ethernet,RoCE)及網際網路廣域RDMA協定(Internet Wide Area RDMA Protocol,iWARP)(RoCE及iWARP是藉由頻寬為約25 Gbps或甚至100 Gbps的乙太網路來達成)。與網際網路小型電腦系統介面(Internet Small Computer System Interface,iSCSI)相較,NVMeoF可具有更低的延遲。此可能會在訊務跨越網路時減少某一延遲(例如,幾微秒)。NVMeoF可達成主機與儲存系統之間的更快存取。
雖然可使用NVMe及NVMeoF來克服上述局限性,然而在NVMeoF中所使用的服務速率可能並非與例如到達I/O請求串流及用戶端堆疊中的佇列對數目等各種因素無關。
在以下小節中,提供實施方案細節。
2.2問題公式化
圖2-2示出示例性NVMeoF環境中的I/O路徑的實例。如上所述,NVMeoF可用於將計算與儲存分離。因此,圖2-2示出二個堆疊:用戶端堆疊(資料處理伺服器)及目標堆疊(儲存池)。用戶端堆疊中的「使用者應用」(在圖2-2的左側上)可產生I/O請求。作業系統調度器(不同於圖2-2的右側上所示的將I/O分佈至佇列對的調度器)可基於NUMA的較佳目標清單為每一I/O請求選擇NUMA(例如,處理電路自採用非一致記憶體存取的幾個NUMA中進行選擇)。一旦選擇了路徑(例如,NUMA 1的NIC 3被選擇來與目標群組2中的目標1進行通訊),便可將此I/O請求及其對應的計算任務指派給此NUMA(例如,可使用CPU及記憶體資源)。
I/O存取操作可藉由網路交換機轉發至目標堆疊。每一NUMA內的記憶體可進一步被劃分成二個部分:「使用者緩衝器」及「直接記憶體存取(Direct Memory Access,DMA)」。使用者緩衝器是儲存自目標堆疊返回的I/O結果的記憶體區。DMA可專用於向及自NVMeoF目標傳送I/O。可使用此種DMA部分地是由於相關聯的RDMA輸送協定可能需要釘選(pinning)記憶體區,以便獲得連續的實體記憶體來執行直接記憶體存取。
一些實施例起到藉由調諧用戶端堆疊中的參數來提高效能的作用。
如圖2-2的右側上所示,可藉由伺服器佇列模型來進一步闡述I/O路徑。每一NIC埠可具有其自己的集中式佇列(即,NIC_CQ),且指派給給定NIC埠的I/O可首先被排入佇列於NIC_CQ中。然後,調度器可將經排入佇列I/O逐一分佈至對應的佇列對(NIC_QP)。每一佇列對可連接至目標堆疊中的對應佇列對(TAR_QP)。調度器可在用戶端堆疊中的各佇列對之間平衡負載。
NIC_QP及TAR_QP被建模為單個伺服器(例如,黑箱)。可觀察到:
(1)NIC_QP的數目可影響服務速率,且其之間的關係可並非為線性的;
(2)NIC_QP中的經排入佇列I/O請求數目亦可影響服務速率,且其之間的關係可並非為線性的;
(3)系統可確保NIC_CQ中的經排入佇列I/O的數目是有限的,即,到達速率小於或等於伺服器的服務速率。
為了最小化每一I/O請求的延遲,可使用以下最佳化框架:
Figure 02_image001
Figure 02_image003
Figure 02_image005
Figure 02_image007
Figure 02_image009
Figure 02_image011
方程式2-1
方程式2-1中的目標函數可根據M/M/1排入佇列模型表示I/O請求的平均延遲,所述M/M/1排入佇列模型表示大體闡述佇列行為的模型。第二個方程式表示確保系統穩定的約束。第三個方程式反映服務速率可被表達(或「迴歸」,即,使用迴歸技術建模)為以下二個輸入參數的函數—用戶端堆疊中的佇列對數目及平均經排入佇列I/O請求高度。方程式2-1的最後一行表明所揭露系統可使用較低水位線(以下更詳細地論述)來控制平均經排入佇列I/O請求高度。
在第4章節中闡述用於調整佇列對深度的方法的細節及驗證。
換言之,所揭露系統可採用一種機制來確保到達速率小於或等於服務速率。
一旦
Figure 02_image013
目標則變成如何最大化服務速率
Figure 02_image015
,即:
Figure 02_image017
Figure 02_image009
Figure 02_image005
Figure 02_image019
Figure 02_image021
Figure 02_image007
Figure 02_image023
方程式2-2
圖2-3示出說明此種域的示例性圖—藉由調諧低水位線
Figure 02_image025
及佇列對數目
Figure 02_image027
來最大化
Figure 02_image015
。所揭露系統可能不能直接控制平均經排入佇列I/O高度(
Figure 02_image029
),但所揭露系統可藉由調諧低水位線
Figure 02_image025
來間接對其進行控制。以下第4章節包含關於此的更多細節。
例如,在運行時間期間,在圖2-3中所表示的3D表面中得出最大點可為計算密集型的,乃因可能未嚴格保證所述表面是凹的。此外,與改變佇列對數目及調整低水位線相關聯的操作可具有不同的相關聯開銷(overhead)。一般而言,調整佇列對數目可具較高計算成本,乃因佇列對可包括消耗CPU及記憶體資源的執行緒。因此,在一個態樣中,所揭露系統可基於哪個變數更影響服務速率而在不同的情景下固定一個變數並調整另一變數。換言之,所揭露系統可採用二種方法:
方法1:若所揭露系統固定了水位線,則所揭露系統可調諧
Figure 02_image027
以最佳化(最大化)服務速率
Figure 02_image015
Figure 02_image031
Figure 02_image033
方程式2-3
方法2:若所揭露系統固定了佇列對數目,則所揭露系統可調諧
Figure 02_image025
以最佳化(最大化)服務速率
Figure 02_image015
Figure 02_image035
Figure 02_image037
方程式2-4
方法1可由組件1執行,且方法2可由組件2執行。以下章節論述何時使用哪種方法。 3.組件1:佇列對數目管理器
本章節首先論述用戶端堆疊中佇列對數目的界限。然後,本章節闡述用以基於不同的目的並在不同的相關聯情景下調整佇列對數目的二種不同途徑。本章節亦說明NVMeQPO在上述的途徑1與途徑2之間進行切換的解決方案。
3.1對佇列對數目的界限的論述
圖3-1示出集中式佇列及多個佇列對的實例,所述多個佇列對中的每一者的完整部分以交叉影線示出。在用戶端堆疊及目標堆疊中可存在多個佇列對。對於每一堆疊中的每一佇列對,所揭露系統可為佇列對中的每一者創建單獨的執行緒,且藉由每一佇列對來配置欲被操作的軟體先進先出(first in, first out,FIFO)佇列。
由於主機系統可能不能容易地調整目標堆疊的配置,因此一些實施例闡述調整用戶端堆疊中的佇列對數目。在雲端計算基礎設施的各種實施方案中,可能無法獲得目標堆疊的其他詳細知識。
可需要考量與不同佇列對配置相關的幾點:
(1)此二個堆疊中的佇列對數目可相同或不同。
(2)用戶端堆疊中的每一佇列對連接至目標堆疊中的一個佇列對。
(3)具有不同數目的佇列對(queue pair,QP)可具有不同的整體服務速率
Figure 02_image015
,且此關係可能未必是線性的。
(4)NVMe中的目標宣告可被連接的佇列對的最大數目(
Figure 02_image040
)。
(5)可存在對QP數目的限制。此外,所揭露系統可將用戶端堆疊中佇列對的上界與目標堆疊中的佇列對數目進行匹配。
(6)若目標具有單個欲寫入的SSD,則單個佇列對可足以達成給定線路速率,且目標亦可宣告每佇列對的佇列深度(
Figure 02_image042
)。
因此,可獲得以下結果:
Figure 02_image044
方程式3-1
為什麼不使用最大佇列對數目?
根據經驗,所揭露系統可發送最大工作負載,並確定可用於幫助提高服務速率的最大佇列對數目。例如,主機系統可被配置成在用戶端堆疊中使用與目標供應商所宣告的目標堆疊相同的最大佇列對數目。
然而,使用目標所宣告的最大佇列對數目可能並非是最佳的。例如,維持附加數目的佇列對亦可能成為用戶端側處的開銷,且對較小的工作負載使用大量佇列對亦可不利地影響效能(例如,使佇列對空閒可浪費資源)。
換言之,在用戶端堆疊中具有更多佇列對可藉由允許在用戶端堆疊及目標堆疊中增加網路頻寬及CPU資源的使用而提高效能。然而,具有佇列對可能會帶來成本。成本的原因可為:建立佇列對可創建會消耗託管NUMA(在用戶端堆疊中)的CPU及記憶體資源的執行緒。實務上,NUMA的CPU及記憶體資源可為有限及昂貴的,且可不期望具有數目超過預定臨限值的空閒佇列對。
本發明首先在第3.2小節中呈現「保守途徑(conservative approach)」,所述保守途徑基於系統利用率而適應性地迭代增加及減少佇列對數目(每單位時間一個)。本發明更在第3.3小節中呈現被稱為「激進途徑(aggressive approach)」的第二種途徑,以藉由使用運行時間監視及迴歸將佇列對數目直接改變成預定操作點來週期性地進行更準確的效能最佳化。
3.2保守途徑
系統利用率可用於藉由指示系統被利用的「程度」來確定何時切換方法。圖3-1T所示表格概述此二種方法之間的一些差異。圖3-2T所示表格進一步概述為方法1開發的二種途徑。本發明在本小節中介紹「保守途徑」,並在第3.3小節中闡述「激進途徑」。
方法1可立即且顯著地改變服務速率,然而其可能觸發顯著的開銷,而方法2可以低開銷緩慢地收斂至服務速率的預定操作點。
如此,在一些實施例中,例如,若系統利用率低於利用不足臨限值(underutilization threshold),則系統可移除(禁用)佇列對以節省資源並提高剩餘佇列對的服務速率。
類似地,若系統利用率高於過度利用臨限值(overutilization threshold),則系統可創建(啟用)新的佇列對,以避免產生不穩定的系統。
此二種情形可表示未必能在相對短的時間週期內藉由改變水位線而得到改良的相對極端的操作情況。
同時,在非利用不足週期及非過度利用週期的範圍內,所揭露系統可使用水位線來提高服務速率。
圖3-2示出如何在運行時間期間基於系統利用率來切換二種途徑的實例。圖3-3T所示表格亦闡述在此圖中所使用的符號。在一些實例中,限制佇列對數目的改變頻率可為有利的,乃因佇列對數目的改變可具高計算成本。為了達成此種限制,所揭露系統引入二個附加條件來判斷在達到二個臨限值時是否改變佇列對數目。
條件1:藉由將過度利用週期或利用不足週期與預設定臨限時間窗(或「第一臨限長度」)
Figure 02_image046
進行比較來判斷所述過度利用週期或利用不足週期是否足夠長。
條件2:判斷增加或減少佇列對是否可提高服務速率(在第3.3小節及圖3-5T所示表格中論述)。
基於該些條件,對於圖3-4T所示表格中所示的7種不同情景,可採用以下操作。詳細而言,情形1及情形2是其中系統利用率大於「過度利用臨限值」(或「第一臨限利用率」)的情況,且所揭露系統可立即提高服務速率。情形1表示其中未完全滿足所述二個條件的情況,且所揭露系統將其視為暫時性叢發或者改變
Figure 02_image027
沒有用的情形,且所揭露系統不進行任何操作。情形2表示其中完全滿足所述二個條件的情況,則所揭露系統可觸發組件1來進行途徑1以立即提高服務速率。
可對系統利用率低於「利用不足臨限值」(或「第二臨限利用率」)時的情形3及情形4使用類似的設計。當系統利用率既非過度利用亦非利用不足(即,「安全區」)時,所揭露系統可起到藉由調諧水位線而最大化服務速率的作用(在以下第4章節中闡述附加細節)。
所揭露系統可進一步利用大的窗(或「第二臨限長度」,
Figure 02_image049
)進行基於迴歸的最佳化(例如,數值最小化)(亦由組件1達成),以藉由在所有數目的佇列對資料點中得出最佳服務速率來進一步提高效能。此被稱為「激進途徑」,且在圖3-4T所示表格中被列示為情形7,其中所揭露系統可在不考量條件1及條件2的情況下直接將佇列對數目調整至預定操作點,而非逐一緩慢地調整其值。在第3.3小節中闡述細節。當自最近一次使用數值最小化來確定及設定佇列對數目以來已過去長度超過第二臨限長度的時間間隔時,可執行此種數值最小化。
為了進一步減少頻繁改變設定的開銷,所揭露系統可被配置成收斂至目標系統利用率,而非最大化服務速率。
詳細而言,所揭露系統可提高服務速率
Figure 02_image015
,然而一旦達到目標(或「第三臨限利用率」)
Figure 02_image051
(注意,根據
Figure 02_image053
的定義,在相同的到達速率
Figure 02_image055
下,提高服務速率可降低
Figure 02_image057
),所揭露系統不需要作出進一步調整來進一步接近最大服務速率,乃因頻繁的調整可具高計算成本。
因此,所揭露系統可將系統利用率配置為在欲不同地處置的情況之間進行區分的指示符(與圖3-5T中所示的其他條件一起),且所揭露系統使用不同的途徑及對應的操作來提高效能。如此,一些實施例能夠適應操作中變化的情況,且能夠將由某些參數變化招致的系統開銷成本考量在內。
詳細而言,情形5表示其中系統利用率高於目標但低於過度利用臨限值的情況。在此情形中,系統可藉由使用組件2收斂至目標。一旦達到目標,且系統利用率在[
Figure 02_image059
)的範圍內,所揭露系統便可不需要調用組件1及2,如情形6所示。
圖3-3更示出該些途徑切換操作的主要程序。
3.3激進途徑
儘管佇列對數目的保守調整可以相對漸進的方式處置效能提高任務,然而對於其中保守途徑太慢的情形,所揭露系統亦可激進地將佇列對數目調整至計算上相對高效的數目。
圖3-5T所示表格示出在組件1中所使用的三個子組件,所述三個子組件既可在保守途徑中使用(用於檢查條件2,即,增加/減少一個佇列對之後的所估計效能變化)又可在激進途徑中使用(用以得出最大服務速率的預定操作點)。
對該些子組件的使用在此二種方法之間的一個差異在於,保守途徑可在子組件2中調用「模式1:粗略預測」,此可與子組件3中的「模式1:粗略迴歸」通訊,而激進途徑可在子組件2中調用「模式2:準確預測」,此可與子組件3中的「模式2:準確迴歸」通訊。
因此,與保守途徑相較,激進途徑可具更高計算成本,且出於此種原因,所揭露系統可能不頻繁地進行調用(即,圖3-3T所示表格中的
Figure 02_image049
應為相對長的時間間隔,例如,介於1.0秒與100.0秒之間(例如,10秒))。
圖3-4亦示出組件1中的子組件之間的關係。
一旦所揭露系統具有效能預測功能,所揭露系統便可進行以下最佳化框架:在
Figure 02_image029
Figure 02_image025
固定的情況下,所揭露系統可嘗試藉由最大化服務速率
Figure 02_image063
來最小化
Figure 02_image065
,如方程式3-2所示:
Figure 02_image067
Figure 02_image069
Figure 02_image005
Figure 02_image072
Figure 02_image074
Figure 02_image076
Figure 02_image007
方程式3-2
其中:第一個方程式表明框架的目標是得出可達成相對低延遲的佇列對數目(例如,所述延遲是基於M/M/1排入佇列理論而計算);第二個方程式表明,假定
Figure 02_image025
,所揭露系統可使佇列對數目迭代;第三個方程式是
Figure 02_image027
的界限;第四個方程式表明,上界應與目標堆疊中的所宣告最大佇列對數目對齊;且最後一個方程式確保系統穩定。
然後,所揭露系統可在圖3-5中形成陰影曲面上界限的線中搜尋最小
Figure 02_image065
點。函數
Figure 02_image015
與佇列對數目的曲線可並非是線性曲線,即,其可具有一個預定操作點。所揭露系統可週期性地監視及迴歸所述曲線,並使用演算法(例如,貪婪演算法(greedy algorithm)、梯度下降法(gradient descent method)、A*搜尋演算法或其他機器學習方法等)來得出預定操作點。 4.組件2:基於佇列對深度的流量控制器
除了佇列對數目之外,佇列對深度亦可影響系統的效能。換言之,服務速率可取決於用戶端堆疊的佇列對中的平均經排入佇列I/O請求高度(即,佇列深度)。佇列深度控制I/O流量及各I/O請求之間的延遲(或間隙),且具有合適的延遲(或間隙)可容許目標堆疊資源有機會更好地對欲並行運行的背景過程進行排程。
然而,在計算上可能難以直接控制佇列深度。因此,NVMeQPO的組件2可藉由調諧與佇列深度相關的二個水位線(例如,藉由控制到達型樣(arrival pattern),而非到達速率)來提高服務速率。
4.1與工作負載有關的服務速率排入佇列模型
如圖4-1所示及以下進一步闡述,可使用模型來闡述儲存控制器佇列對。圖4-1T所示表格概述在本章節中所使用的一些術語。
自主機的起始者主機匯流排配接器(host bus adapter,HBA)至儲存控制器的目標配接器的I/O請求(SCSi命令)可首先被排入佇列於NIC埠集中式佇列(NIC_CQ)中。I/O請求的到達速率
Figure 02_image055
的單位為I/O/秒(I/O per second,IOPS)。然後,NIC_CQ將其I/O發送至調度器,所述調度器努力將該些I/O均勻地分佈至與其相關聯的
Figure 02_image027
個佇列對(NIC_QP)(
Figure 02_image027
是NIC中的佇列對數目)。與同一NIC_CQ相關聯的該些佇列對可具有相同的配置。此外,在相對長的時間間隔內,佇列對可得到到達速率
Figure 02_image079
,且佇列對具有以IOPS為單位的服務速率
Figure 02_image015
NIC_QP不是無限佇列,並且與一個CQ相關聯的NIC_QP可具有相同且固定的最大深度
Figure 02_image081
,即目標可在所述QP中排入佇列及處理的最大I/O數目。
在一些實施例中,服務速率不是固定的,且與經排入佇列I/O的數目相關:當NIC_QP已滿時,分配給此NIC_QP的任何新的I/O(即,該些未完成的I/O正達到埠上限)可藉由自儲存埠發送的「QFULL」(即,佇列已滿)錯誤訊息而被拒絕。一旦將QFULL訊息發送至起始者,HBA便可在不久之後暫停I/O,然後緩慢地嘗試開始再次聯繫儲存埠。將I/O發送至滿的QP可觸發「QFULL」錯誤,且可降低效能。
除了QFULL錯誤之外,服務速率亦可與經排入佇列I/O的高度相關。如圖4-2所示,當存在「無推入(no push)」及「推入(push)」時,三個具有窄交叉影線的I/O請求的服務速率是不同的—小高度可具有大的服務速率。此乃因後一種情形更有可能自用戶端堆疊的佇列對及目標堆疊的佇列對得到「QFULL」錯誤,且「QFULL」錯誤及其對應的重試可顯著減慢服務速率。
然而,經排入佇列高度與服務速率之間可不存在線性關係,即,並非是「高度愈低,服務速率愈好」。例如,對於NIC_QP中非常低的佇列高度,則TAR_QP資源可能未被充分利用,且因此服務速率可能未被最大化。因此,可在「佇列對溢出:太多QFULL」與「佇列對利用不足:QFULL較少但資源空閒」之間進行折衷。平均經排入佇列I/O請求可存在預定操作點(即,使所揭露系統可達成最佳服務速率的合適壓力值)。圖4-3中示出此情形的實例,其中h=5具有最佳服務速率10。
此種預定操作點可由於以下二個原因而存在:
(1)預定操作點藉由以下方式來平衡上述折衷:(i)降低高度以減少「QFULL」,以及(ii)藉由不具有太低的佇列高度來努力充分利用資源;
(2)預定操作點亦容許有一些空閑時間,以確保使目標堆疊對欲並行執行的背景操作(例如,像「記憶體複製」那樣的系統中斷)進行排程,並使I/O堆疊的活動(heartbeat)對齊及同步。
因此,所揭露系統可嘗試將平均佇列高度與此預定操作點對齊,以獲得最佳服務速率。
4.2藉由二個水位線來控制服務速率
所揭露系統不能直接控制平均佇列高度來提高效能,但所揭露系統可藉由使用二個水位線來間接控制平均佇列高度:高水位線(或「佇列高度上臨限值」)
Figure 02_image083
及低水位線
Figure 02_image025
(或「佇列高度下臨限值」)。具體而言,
Figure 02_image083
可用於與上界進行匹配以防止QFULL,且
Figure 02_image025
可用於控制高度並得出最佳服務速率。
圖4-4概述對每一佇列對的基於水位線的最佳化的條件及對應操作。圖4-5及圖4-6更示出基於水位線的最佳化的基本方案。在一些實施例中,NVMeQPO使用I/O流量控制方法,而非負載平衡或調度器。事實上,此處可實施任何負載平衡演算法,甚至是非常簡單的循環演算法(round robin algorithm)。
詳細而言,對於每一佇列對,可存在被稱為「locked」的鎖定旗標,如圖4-5中的第1行所示。此旗標指示是否容許調度器將新的I/O指派給一單個NIC_QP。I/O是以一個接一個的次序被指派給每一NIC_QP,且所揭露系統可將所有可能的情景分解成以下四種情形:
情形1:若NIC_QP未鎖定且未滿(「滿」(亦即"WH QueueFull”的旗標為真)意指達到
Figure 02_image083
),則所揭露系統將I/O排入佇列至NIC_QP。可調用NIC_QP的「enqueue()」程序來將新來的I/O添加至此NIC_QP,如圖4-4(1)中及圖4-5中的第11行至第18行中所示。
情形2:在新的I/O繼續被排入佇列於此NIC_QP中時,NVMeQPO亦檢查NIC_QP是否已滿。一旦NIC_QP已滿,則此NIC_QP可被鎖定,且不再容許新的I/O請求被排入佇列於此NIC_QP中(即,可調用「wait()」程序),如圖4-4(2)中及圖4-5的第17行中所示。此NIC_QP可等待
Figure 02_image085
個經排入佇列I/O被完成。
情形3:若NIC_QP被鎖定,但NIC_QP已完成數目為
Figure 02_image085
的經排入佇列I/O(即,「WLTriggered」旗標為真),則此NIC_QP可被解鎖(圖4-5中的第8行),且可容許新的I/O被排入佇列(圖4-5中的第9行),亦如在圖4-4(3)中所見。
情形4:類似於情形2,若NIC_QP未鎖定但已滿,則可鎖定NVMeQPO且可調用「wait()」函數。此NIC_QP可等待
Figure 02_image085
個經排入佇列I/O被完成。
綜上所述,NVMeQP的基於水位線的流量控制容許主機向NIC_QP添加I/O,直至NIC_QP已滿(即,達到
Figure 02_image083
)為止。一旦NIC_QP已滿,其便可被鎖定,直至完成
Figure 02_image085
個I/O為止。如此一來,NVMeQP可間接減少「QFULL」錯誤數目且控制壓力(即,在長時間間隔內的平均經排入佇列I/O請求高度)。
以下小節示出如何調整此二個水位線的值以及如何動態調諧
Figure 02_image025
以控制I/O流量(到達型樣),進而獲得高服務速率。
4.2.1高水位線:與目標堆疊佇列對最大深度的上界進行匹配
在一些實施例中,用戶端堆疊中佇列對的佇列深度被配置成具有與目標堆疊中佇列對的佇列深度相同的值。原因是用戶端堆疊與目標堆疊中不等的佇列很有可能觸發來自目標堆疊的許多「QFULL」拒絕,此可顯著使效能劣化。例如,假設
Figure 02_image081
大於
Figure 02_image087
。然後,在長的時間間隔內,一旦達到目標控制器的最大佇列深度,目標儲存控制器便必須藉由向用戶端堆疊返回高成本的「QFULL」回應來拒絕更多的傳入命令。該些「QFULL」拒絕會顯著使系統效能劣化,且可導致一些系統出錯。
最終,自調度器的視角來看,用戶端堆疊中每一QP的服務速率降低。為了避免此種「QFULL」拒絕,所揭露系統可調整可控上界
Figure 02_image083
以與目標堆疊中的QP進行匹配。此種「匹配」過程可藉由簡單的配置來完成,乃因(i)用戶端堆疊中的佇列對最大值(
Figure 02_image081
);有時在用戶端堆疊中亦存在預設定限制及(ii)目標堆疊中的佇列對最大值(
Figure 02_image087
)在連接建立期間被宣告(即,用戶端堆疊中的每一QP可連接至目標堆疊中的對應QP)。
因此:
Figure 02_image089
方程式4-1
圖4-1中示出第一個方程式的實例,其中
Figure 02_image083
被限制於8,此為
Figure 02_image081
Figure 02_image087
中的較小值。
4.2.2低水位線:控制佇列高度並得出最佳服務速率
如上所述,可能難以直接控制NIC_QP中的平均經排入佇列I/O請求高度,因此所揭露系統可使用低水位線來間接達成此種對NIC_QP中平均經排入佇列I/O請求高度的控制。
本小節首先闡述如此做的可行性,然後介紹幫助得出最佳服務速率的最佳化框架。證明了
Figure 02_image029
Figure 02_image025
之間的正相關關係。
在一些實施例中,所揭露系統可將函數迴歸為單調遞增函數
Figure 02_image091
或直接迴歸為
Figure 02_image093
4.2.2.1基於正相關性的間接控制
假定固定的
Figure 02_image027
Figure 02_image083
,函數
Figure 02_image095
可為固定的,且所揭露系統可如下將平均高度作為
Figure 02_image025
的函數來估計。
對於在某一QP的經排入佇列I/O的數目以1為增量自
Figure 02_image083
下降至
Figure 02_image025
時的情況,可計算所述經排入佇列I/O的平均高度。
直觀上,所述平均高度可為每一高度在以每一高度的時間長度為權重時的總和除以自
Figure 02_image083
Figure 02_image025
的總時間,如下所示:
Figure 02_image097
方程式4-2
基於方程式4-2,可計算在二個不同輸入
Figure 02_image099
Figure 02_image101
Figure 02_image103
)的情況下平均高度之間的關係,假定相同的
Figure 02_image027
Figure 02_image083
Figure 02_image101
情形的過程可被分為二個部分:第一部分是自
Figure 02_image083
Figure 02_image099
,且第二部分是自
Figure 02_image099
Figure 02_image101
設:
Figure 02_image105
Figure 02_image107
Figure 02_image109
Figure 02_image111
方程式4-3
因此:
Figure 02_image113
,且
Figure 02_image115
方程式4-4
如圖4-7所示:
Figure 02_image117
方程式4-5
因此:
Figure 02_image119
方程式4-6
基於方程式4-2及方程式4-6:
Figure 02_image121
方程式4-7
因此,只要
Figure 02_image123
Figure 02_image125
就成立。亦即,
Figure 02_image029
Figure 02_image025
正相關,即,
Figure 02_image127
NVMeOQP可在運行時間期間將單調遞增函數迴歸為
Figure 02_image128
,以引導如何使用
Figure 02_image025
來控制平均高度。
4.2.2.2最佳化框架
所揭露系統可最佳化(最小化)
Figure 02_image129
,即,最佳化目標可為最小化系統中的I/O(即,NIC_CQ及NIC_QP)的平均潛時:
Figure 02_image131
Figure 02_image133
Figure 02_image135
Figure 02_image137
Figure 02_image139
Figure 02_image007
Figure 02_image141
Figure 02_image143
方程式4-8
圖4-8是目標函數的實例的曲線圖。雙曲面
Figure 02_image145
的交點與服務速率相對於水位線
Figure 02_image025
之函數
Figure 02_image147
可為相關的,如圖4-8中形成陰影曲面上界限的曲線所示。由於
Figure 02_image015
應大於
Figure 02_image055
以確保系統穩定,因此可使用
Figure 02_image149
雙曲線。
函數
Figure 02_image151
是凹的,因此圖4-8所示的示例性曲線亦為凹的。事實上,不必限制曲線顯現為何樣,乃因一些實施例並不關注一單個曲線形狀,而是努力得出曲線的全域最小值。類似於第3.3小節,所揭露系統可週期性地監視及迴歸曲線,並使用貪婪演算法、梯度下降法、A*搜尋演算法或另一種機器學習方法來得出預定操作點。例如,所揭露系統可使用作為服務速率及佇列高度下臨限值的函數的對每輸入輸出請求的歷史平均處理延遲的多項式擬合模型。所揭露系統並不限制對用於完成此項工作的技術的使用。
在一些實施例中,用戶端包括被配置成執行本文所述方法中的一些或全部的處理電路。本文中使用用語「處理電路」來意指用於處理資料或數位訊號的硬體、韌體及軟體的任何組合。處理電路硬體可包括例如應用專用積體電路(application specific integrated circuit,ASIC)、通用或專用中央處理單元(central processing unit,CPU)、數位訊號處理器(digital signal processor,DSP)、圖形處理單元(graphics processing unit,GPU)及例如現場可程式化閘陣列(field programmable gate array,FPGA)等可程式化邏輯裝置。在處理電路中,本文中所使用的每一功能均由被配置成(即,被硬佈線成)實行所述功能的硬體或由被配置成執行非暫時性儲存媒體中所儲存的指令的更通用硬體(例如CPU)實行。處理電路可製作於單一印刷電路板(printed circuit board,PCB)上或分佈於若干互連的PCB之上。處理電路可包含其他處理電路;例如,處理電路可包括在PCB上互連的二個處理電路,即FPGA與CPU。
應理解,儘管本文中可能使用用語「第一(first)」、「第二(second)」、「第三(third)」等來闡述各種元件、組件、區、層及/或區段,然而該些元件、組件、區、層及/或區段不應受限於該些用語。該些用語僅用於區分各個元件、組件、區、層或區段。因此,在不背離本發明概念的精神及範圍的條件下,本文中所論述的第一元件、組件、區、層或區段可被稱為第二元件、組件、區、層或區段。
本文中所使用的術語僅用於闡述特定實施例且並非旨在限制本發明概念。本文中所使用的用語「實質上」、「約」及相似用語是作為近似值用語來使用、而並非作為程度用語來使用,並且旨在慮及此項技術中具有通常知識者將認識到的量測值或計算值的固有偏差。
除非上下文中清楚地另外指明,否則本文中所使用的單數形式「一(a及an)」旨在亦包括複數形式。更應理解,當在本說明書中使用用語「包括(comprises及/或comprising)」時,是指明所陳述特徵、整數、步驟、操作、元件及/或組件的存在,但不排除一或多個其他特徵、整數、步驟、操作、元件、組件及/或其群組的存在或添加。本文中所使用的用語「及/或(and/or)」包括相關所列項中一或多個項的任意及所有組合。例如「……中的至少一者(at least one of)」等表達當出現在一系列元件之前時,是修飾整個系列的元件而並非修飾所述系列中的各別元件。此外,當闡述本發明概念的實施例時使用的「可(may)」是指「本發明的一或多個實施例」。此外,用語「示例性(exemplary)」旨在指實例或例證。本文中所使用的用語「使用(use)」、「正使用(using)」及「被使用(used)」可視為分別與用語「利用(utilize)」、「正利用(utilizing)」及「被利用(utilized)」同義。
應理解,當稱一元件或層位於另一元件或層「上(on)」、「連接至(connected to)」、「耦合至(coupled to)」或「相鄰於(adjacent to)」另一元件或層時,所述元件可直接位於所述另一元件或層上、直接連接至、直接耦合至或直接相鄰於所述另一元件或層,或者可存在一或多個中間元件或層。對比之下,當稱一元件或層「直接(directly)」位於另一元件或層「上(on)」,「直接連接至(directly connected to)」、「直接耦合至(directly coupled to)」或「緊鄰於(immediately adjacent to)」另一元件或層時,則不存在中間元件或層。本文中所使用的詞語「或(or)」是包含性,使得例如「A或B」意指(i)A、(ii)B及(iii)A及B中的任一者。
本文中所述的任意數值範圍旨在包括所述範圍內所包含的具有相同數值精度的所有子範圍。例如,範圍「1.0至10.0」或「介於1.0與10.0之間」旨在包括介於所述最小值1.0與所述最大值10.0之間(且包括1.0及10.0)的所有子範圍,即,具有等於或大於1.0的最小值及等於或小於10.0的最大值(例如(例如,2.4至7.6))。本文中所述任意最大數值限制旨在包括其中所包含的所有較低的數值限制,且本說明書中所述的任意最小數值限制旨在包括其中所包含的所有較高的數值限制。
儘管已在本文中具體闡述及說明用於提高組構上非揮發性記憶體快速資料儲存系統的效能的系統及方法的示例性實施例,然而熟習此項技術者將明瞭諸多潤飾及變型。因此,應理解,根據本發明的原理構造的用於提高組構上非揮發性記憶體快速資料儲存系統的效能的系統及方法可被實施成不同於本文中所具體闡述者。亦在以下申請專利範圍及其等效範圍中界定本發明。
NIC_CQ:集中式佇列 NIC_QP、TAR_QP:佇列對
各圖未必是按比例繪製,且出於說明性目的,在所有各圖中,具有相似結構或功能的元件通常由相同的參考編號表示。各圖僅旨在便於闡述本文中所述的各種實施例。各圖並未闡述本文中所揭露教示內容的每一態樣,且不限制申請專利範圍的範疇。參照說明書、申請專利範圍及附圖將領會及理解本發明的該些及其他特徵及優點,在附圖中: 圖1-1是根據本發明一些實施例用於NVMeoF系統的效能最佳化器的組件架構的圖,所述NVMeoF系統基於採用非一致記憶體存取(non-uniform memory access,NUMA)的系統。 圖2-1T是根據本發明一些實施例的術語表格。 圖2-1是根據本發明一些實施例的NVMeoF協定的架構的圖。 圖2-2是根據本發明一些實施例的網路介面卡(network interface card,NIC)埠中的佇列對排入佇列模型的圖。 圖2-2T是根據本發明一些實施例在基於瓶頸的服務速率分析及建模中所使用的符號及說明的表格。 圖2-3是根據本發明一些實施例在得出作為水位線變數(watermark variable)及佇列對數目變數的函數的服務速率的最大值時所使用的示例性三維(3D)表面圖。 圖3-1是根據本發明一些實施例的用戶端堆疊及目標堆疊中的佇列對模型的圖。 圖3-1T是示出根據本發明一些實施例在用於調整佇列對數目及佇列對深度的二種方法(方法1及方法2)之間進行的比較的表格。 圖3-2T是示出根據本發明一些實施例在方法1中用於調整佇列對數目的二種途徑(途徑1及途徑2)之間進行的比較的表格。 圖3-2是示出根據本發明一些實施例與基於不同系統利用率情形而切換最佳化途徑相關的操作態樣的示例性圖。 圖3-3T是示出根據本發明一些實施例的臨限值及目標利用率以及對系統利用率的計算的表格,所述系統利用率可用於調整佇列對數目及佇列對深度。 圖3-4T是根據本發明一些實施例可用於調整佇列對數目及佇列對深度的情形及對應操作的表格。 圖3-3是根據本發明一些實施例可用於調整佇列對數目的二個組件的工作流程圖。 圖3-5T是根據本發明一些實施例可用於調整佇列對數目的組件1中的子組件及其功能的表格。 圖3-4是根據本發明一些實施例可用於調整佇列對數目的組件1中的子組件之間的關係的圖。 圖3-5是示出根據本發明一些實施例在基於迴歸的激進途徑(regression-based aggressive approach)中所使用的示例性目標函數的圖。 圖4-1是根據本發明一些實施例可用於調整佇列對深度的排入佇列模型的實例的圖。 圖4-1T是根據本發明一些實施例與調整佇列對深度相關的術語及對應說明的表格。 圖4-2是根據本發明一些實施例在調整佇列對深度的背景下所使用的經排入佇列輸入/輸出(I/O)高度與服務速率之間的關係的實例的圖。 圖4-3是根據本發明一些實施例在調整佇列對深度的背景下所使用的經排入佇列I/O高度與服務速率之間的關係的附加實例的圖。 圖4-4是根據本發明一些實施例用於調整佇列對深度的基於水位線的最佳化的條件及對應操作的圖。 圖4-5是根據本發明一些實施例與用於調整佇列對深度的基於水位線的最佳化相關聯的一些示例性程序的圖。 圖4-6是根據本發明一些實施例與用於調整佇列對深度的基於水位線的最佳化相關聯的示例性工作流程的圖。 圖4-2T是根據本發明一些實施例與調整佇列對深度相關的術語及對應說明的表格。 圖4-7是示出根據本發明一些實施例與調整佇列對深度相關聯的不同時間週期期間的示例性平均經排入佇列I/O請求高度的圖。 圖4-8是根據本發明一些實施例可由所揭露系統用於選擇較低水位線的三維曲線圖的實例的圖。

Claims (20)

  1. 一種用於管理輸入輸出佇列對的方法,所述方法包括: 計算系統利用率,所述系統利用率是以下二者之比率: 輸入輸出請求的到達速率,對 服務速率; 確定: 所述系統利用率已在超過第一臨限長度的時間週期期間超過第一臨限利用率,且 預期添加新的佇列對會提高系統效能;以及 添加所述新的佇列對。
  2. 如請求項1所述的方法,更包括: 確定: 所述系統利用率已在超過所述第一臨限長度的時間週期期間保持低於第二臨限利用率,所述第二臨限利用率低於所述第一臨限利用率,且 預期刪除佇列對會提高系統效能;以及 刪除所述佇列對。
  3. 如請求項2所述的方法,更包括: 確定: 所述系統利用率低於所述第一臨限利用率且高於第三臨限利用率,所述第三臨限利用率介於所述第一臨限利用率與所述第二臨限利用率之間;以及 將佇列高度下臨限值調整成等於服務速率的函數。
  4. 如請求項3所述的方法,更包括: 確定: 所述輸入輸出佇列對中的第一佇列對的提交佇列被解鎖,且 集中式佇列儲存輸入輸出請求,且 所述提交佇列的高度小於佇列高度上臨限值;以及 將所述輸入輸出請求排入所述第一佇列對。
  5. 如請求項4所述的方法,更包括: 確定所述提交佇列的當前高度等於所述佇列高度上臨限值;以及 鎖定所述提交佇列。
  6. 如請求項5所述的方法,更包括: 確定所述提交佇列的所述當前高度不超過所述佇列高度下臨限值;以及 將所述提交佇列解鎖。
  7. 如請求項3所述的方法,其中所述函數是每輸入輸出請求的平均處理延遲的模型的在數值上得出的最小值。
  8. 如請求項7所述的方法,其中所述模型是作為所述服務速率及所述佇列高度下臨限值的函數的對每輸入輸出請求的歷史平均處理延遲的多項式擬合。
  9. 如請求項2所述的方法,更包括: 確定自最近一次使用數值最小化來確定及設定佇列對數目至已過去長度超過第二臨限長度的時間間隔; 作為所述佇列對數目的函數,執行每輸入輸出請求的平均處理延遲的模型的數值最小化,以計算欲在操作期間使用的佇列對數目;以及 添加零或多個新佇列對,或者刪除零或多個佇列對,使得所述佇列對數目等於所計算的欲在操作期間使用的所述佇列對數目。
  10. 一種用於管理輸入輸出佇列對的系統,包括: 處理電路,以及 一或多個持久性儲存裝置, 所述處理電路被配置成: 實例化一或多個輸入輸出佇列對,用於儲存: 欲發送至所述一或多個持久性儲存裝置的輸入輸出請求,以及 自所述一或多個持久性儲存裝置接收的命令完成結果, 計算系統利用率,所述系統利用率是以下二者之比率: 輸入輸出請求的到達速率,對 服務速率; 確定: 所述系統利用率已在超過第一臨限長度的時間週期期間超過第一臨限利用率,且 預期添加新的佇列對會提高系統效能;以及 添加新的佇列對。
  11. 如請求項10所述的系統,其中所述處理電路更被配置成: 確定: 所述系統利用率已在超過所述第一臨限長度的時間週期期間保持低於第二臨限利用率,所述第二臨限利用率低於所述第一臨限利用率,且 預期刪除佇列對會提高系統效能;以及 刪除佇列對。
  12. 如請求項11所述的系統,其中所述處理電路更被配置成: 確定所述系統利用率低於所述第一臨限利用率且高於第三臨限利用率,所述第三臨限利用率介於所述第一臨限利用率與所述第二臨限利用率之間;以及 將佇列高度下臨限值調整成等於服務速率的函數。
  13. 如請求項12所述的系統,其中所述處理電路更被配置成: 確定: 所述輸入輸出佇列對中的第一佇列對的提交佇列被解鎖,且 集中式佇列儲存輸入輸出請求,且 所述提交佇列的高度小於佇列高度上臨限值;以及 將所述輸入輸出請求排入所述第一佇列對。
  14. 如請求項13所述的系統,其中所述處理電路更被配置成: 確定所述提交佇列的當前高度等於所述佇列高度上臨限值;以及 鎖定所述提交佇列。
  15. 如請求項14所述的系統,其中所述處理電路更被配置成: 確定所述提交佇列的所述當前高度不超過所述佇列高度下臨限值;以及 將所述提交佇列解鎖。
  16. 如請求項12所述的系統,其中所述函數是每輸入輸出請求的平均處理延遲的模型的在數值上得出的最小值。
  17. 如請求項16所述的系統,其中所述模型是作為所述服務速率及所述佇列高度下臨限值的函數的對每輸入輸出請求的歷史平均處理延遲的多項式擬合。
  18. 如請求項11所述的系統,其中所述處理電路更被配置成: 確定自最近一次使用數值最小化來確定及設定佇列對數目至已過去長度超過第二臨限長度的時間間隔; 作為所述佇列對數目的函數,執行每輸入輸出請求的平均處理延遲的模型的數值最小化,以計算欲在操作期間使用的佇列對數目;以及 添加零或多個新佇列對,或者刪除零或多個佇列對,使得所述佇列對數目等於所計算的欲在操作期間使用的所述佇列對數目。
  19. 一種用於管理輸入輸出佇列對的系統,包括: 用於處理的構件,以及 一或多個持久性儲存裝置, 所述用於處理的構件被配置成: 實例化一或多個輸入輸出佇列對,用於儲存: 欲發送至所述一或多個持久性儲存裝置的輸入輸出請求,以及 自所述一或多個持久性儲存裝置接收的命令完成結果, 計算系統利用率,所述系統利用率是以下二者之比率: 輸入輸出請求的到達速率,對 服務速率; 確定: 所述系統利用率已在超過第一臨限長度的時間週期期間超過第一臨限利用率,且 預期添加新的佇列對會提高系統效能;以及 添加新的佇列對。
  20. 如請求項19所述的系統,其中所述用於處理的構件更被配置成: 確定: 所述系統利用率已在超過所述第一臨限長度的時間週期期間保持低於所述第一臨限利用率,且 預期刪除佇列對會提高系統效能;以及 刪除佇列對。
TW109119135A 2019-06-10 2020-06-08 用於管理輸入輸出佇列對的系統及方法 TWI828917B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201962859562P 2019-06-10 2019-06-10
US62/859,562 2019-06-10
US16/536,928 US11216190B2 (en) 2019-06-10 2019-08-09 Systems and methods for I/O transmissions in queue pair-based NVMeoF initiator-target system
US16/536,928 2019-08-09

Publications (2)

Publication Number Publication Date
TW202101242A true TW202101242A (zh) 2021-01-01
TWI828917B TWI828917B (zh) 2024-01-11

Family

ID=73650558

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109119135A TWI828917B (zh) 2019-06-10 2020-06-08 用於管理輸入輸出佇列對的系統及方法

Country Status (5)

Country Link
US (1) US11216190B2 (zh)
JP (1) JP2020201957A (zh)
KR (1) KR102653013B1 (zh)
CN (1) CN112068768B (zh)
TW (1) TWI828917B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI793966B (zh) * 2022-01-10 2023-02-21 群聯電子股份有限公司 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11599271B2 (en) * 2021-02-12 2023-03-07 Hewlett Packard Enterprise Development Lp Controlling I/O Q-connections in NVMe devices
US11429444B1 (en) * 2021-04-29 2022-08-30 Hewlett Packard Enterprise Development Lp Managing distribution of I/O queue pairs of a target among hosts
CN116743673B (zh) * 2023-08-15 2023-11-03 中移(苏州)软件技术有限公司 Rdma工作队列参数的调整方法、装置、设备及存储介质

Family Cites Families (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3465082B2 (ja) 1993-03-31 2003-11-10 株式会社リコー 電子写真感光体の製造装置
US5592672A (en) 1993-11-02 1997-01-07 Bell Communications Research, Inc. System for load balancing between message processors by routing all queued messages to a particular processor selected by a deterministic rule
JP2959539B2 (ja) * 1997-10-01 1999-10-06 日本電気株式会社 バッファ制御方法および装置
JP2001109638A (ja) 1999-10-06 2001-04-20 Nec Corp 推定伸長率に基づくトランザクション負荷分散方法及び方式並びにコンピュータ可読記録媒体
GB2359444B (en) * 2000-02-15 2003-07-09 3Com Corp Network switch including restriction of source address look-ups based on receive queue length
US20020124104A1 (en) 2001-03-01 2002-09-05 Yigal Rappaport Network element and a method for preventing a disorder of a sequence of data packets traversing the network
US20030067874A1 (en) * 2001-10-10 2003-04-10 See Michael B. Central policy based traffic management
US7782776B2 (en) 2002-03-15 2010-08-24 Broadcom Corporation Shared weighted fair queuing (WFQ) shaper
US7289498B2 (en) 2002-06-04 2007-10-30 Lucent Technologies Inc. Classifying and distributing traffic at a network node
WO2004036387A2 (en) 2002-10-18 2004-04-29 Broadcom Corporation System and method for receive queue provisioning
US8145731B2 (en) 2003-12-17 2012-03-27 Hewlett-Packard Development Company, L.P. System and method for determining how many servers of at least one server configuration to be included at a service provider's site for supporting an expected workload
US7836181B2 (en) 2004-09-21 2010-11-16 Alcatel-Lucent Usa Inc. Fairness and load balancing in wireless LANs using association control
DE102004061339A1 (de) 2004-12-20 2006-06-29 Infineon Technologies Ag Scheduling-Verfahren, insbesondere Kontex-Scheduling-Verfahren, und Einrichtung zur Verwendung bei einem Scheduling-Verfahren
US7448044B1 (en) * 2005-02-02 2008-11-04 Sun Microsystems, Inc. Systems and methods for efficient queue pair number re-use
US7277357B1 (en) * 2006-06-05 2007-10-02 Micron Technology, Inc. Method and apparatus for reducing oscillation in synchronous circuits
US7941805B2 (en) 2006-08-15 2011-05-10 International Business Machines Corporation Affinity dispatching load balancer with precise CPU consumption data
US20110044338A1 (en) * 2006-12-20 2011-02-24 Thomas Anthony Stahl Throughput in a lan by managing tcp acks
US8160085B2 (en) * 2007-12-21 2012-04-17 Juniper Networks, Inc. System and method for dynamically allocating buffers based on priority levels
US9237034B2 (en) 2008-10-21 2016-01-12 Iii Holdings 1, Llc Methods and systems for providing network access redundancy
US20100157964A1 (en) 2008-12-18 2010-06-24 Pantech & Curitel Communications, Inc. Server to guide reconnection in mobile internet, method for guiding server reconnection, and server reconnection method
US8346999B2 (en) * 2009-12-15 2013-01-01 Intel Corporation Dynamic receive queue balancing with high and low thresholds
US8446824B2 (en) * 2009-12-17 2013-05-21 Intel Corporation NUMA-aware scaling for network devices
CA2824337C (en) * 2010-02-01 2017-02-28 Miovision Technologies Incorporated System and method for modeling and optimizing the performance of transportation networks
US8413143B2 (en) 2010-04-12 2013-04-02 International Business Machines Corporation Dynamic network adapter queue pair allocation
US8589941B2 (en) * 2010-04-23 2013-11-19 International Business Machines Corporation Resource affinity via dynamic reconfiguration for multi-queue network adapters
US8996756B2 (en) 2010-09-17 2015-03-31 Oracle International Corporation Using process location to bind IO resources on NUMA architectures
US8522250B2 (en) * 2010-09-29 2013-08-27 International Business Machines Corporation Managing access to a shared resource in a data processing system
US9021138B2 (en) 2011-08-26 2015-04-28 Microsoft Technology Licensing, Llc Performance of multi-processor computer systems
US9152448B2 (en) 2012-05-11 2015-10-06 Vmware, Inc. Performance of load balancing modules with migration awareness
WO2014050125A1 (en) 2012-09-28 2014-04-03 Nec Corporation Communication system, control apparatus, terminal, terminal control method, and program
US20140274011A1 (en) * 2013-03-14 2014-09-18 Qualcomm Incorporated Method and apparatus for controlling operation of a user equipment based on physical layer parameters
US10069903B2 (en) 2013-04-16 2018-09-04 Amazon Technologies, Inc. Distributed load balancer
US20140325524A1 (en) * 2013-04-25 2014-10-30 Hewlett-Packard Development Company, L.P. Multilevel load balancing
US9298648B2 (en) 2013-05-08 2016-03-29 Avago Technologies General Ip (Singapore) Pte Ltd Method and system for I/O flow management using RAID controller with DMA capabilitiy to directly send data to PCI-E devices connected to PCI-E switch
US9785356B2 (en) 2013-06-26 2017-10-10 Cnex Labs, Inc. NVM express controller for remote access of memory and I/O over ethernet-type networks
CN103425756B (zh) * 2013-07-31 2016-06-29 西安交通大学 一种hdfs中数据块的副本管理策略
US10027605B2 (en) * 2013-08-26 2018-07-17 Vmware, Inc. Traffic and load aware dynamic queue management
US20150120224A1 (en) 2013-10-29 2015-04-30 C3 Energy, Inc. Systems and methods for processing data relating to energy usage
EP2869514A1 (en) 2013-10-30 2015-05-06 Alcatel Lucent Method and system for queue management in a packet-switched network
JP6299169B2 (ja) 2013-11-14 2018-03-28 富士通株式会社 ストレージ装置、ストレージ装置の制御方法、及びストレージ装置の制御プログラム
WO2016026131A1 (zh) 2014-08-22 2016-02-25 上海交通大学 一种基于 numa 高性能网络缓存资源亲和度的虚拟处理器的调度方法
US9703742B2 (en) 2014-09-26 2017-07-11 Intel Corporation Unified device interface for a multi-bus system
US9495192B2 (en) 2014-09-30 2016-11-15 Vmware, Inc. NUMA I/O aware network queue assignments
WO2016118979A2 (en) 2015-01-23 2016-07-28 C3, Inc. Systems, methods, and devices for an enterprise internet-of-things application development platform
KR102336443B1 (ko) * 2015-02-04 2021-12-08 삼성전자주식회사 가상화 기능을 지원하는 스토리지 장치 및 사용자 장치
US9876698B2 (en) 2015-04-09 2018-01-23 International Business Machines Corporation Interconnect congestion control in a storage grid
KR102403489B1 (ko) 2015-07-10 2022-05-27 삼성전자주식회사 비휘발성 메모리 익스프레스 컨트롤러에 의한 입출력 큐 관리 방법
US9946484B2 (en) 2015-07-31 2018-04-17 Netapp, Inc. Dynamic routing of input/output requests in array systems
US10305814B2 (en) * 2015-08-05 2019-05-28 International Business Machines Corporation Sizing SAN storage migrations
US10241674B2 (en) 2015-12-11 2019-03-26 Vmware, Inc. Workload aware NUMA scheduling
US10795608B2 (en) * 2016-02-19 2020-10-06 Hitachi, Ltd. Computer, communication driver, and communication control method
US10142231B2 (en) 2016-03-31 2018-11-27 Intel Corporation Technologies for network I/O access
CN107301466A (zh) * 2016-04-15 2017-10-27 中国移动通信集团四川有限公司 对业务负载及资源配置与性能关系的预测方法及预测系统
US10394679B2 (en) 2016-04-29 2019-08-27 Nicira, Inc. Locality-aware scheduling for NIC teaming
US11016940B2 (en) 2016-06-02 2021-05-25 International Business Machines Corporation Techniques for improving deduplication efficiency in a storage system with multiple storage nodes
US10089144B1 (en) 2016-06-17 2018-10-02 Nutanix, Inc. Scheduling computing jobs over forecasted demands for computing resources
CN106254272B (zh) 2016-09-05 2019-08-02 盛科网络(苏州)有限公司 基于硬件实现的弹性的加权公平调度方法及调度系统
CN107818056B (zh) * 2016-09-14 2021-09-07 华为技术有限公司 一种队列管理方法及装置
US10637817B2 (en) 2016-11-28 2020-04-28 Amazon Technologies, Inc. Managing messaging protocol communications
US10509569B2 (en) * 2017-03-24 2019-12-17 Western Digital Technologies, Inc. System and method for adaptive command fetch aggregation
US10244048B2 (en) 2017-04-28 2019-03-26 International Business Machines Corporation Sender system status-aware load balancing
US10310996B2 (en) * 2017-05-31 2019-06-04 International Business Machines Corporation Hardware queue manager with water marking
US11102294B2 (en) 2017-06-09 2021-08-24 Samsung Electronics Co., Ltd. System and method for supporting energy and time efficient content distribution and delivery
US10852990B2 (en) * 2017-08-02 2020-12-01 Samsung Electronics Co., Ltd. Hybrid framework of NVMe-based storage system in cloud computing environment
US10698900B2 (en) 2017-09-25 2020-06-30 Splunk Inc. Generating a distributed execution model with untrusted commands
US20190196969A1 (en) 2017-12-22 2019-06-27 Samsung Electronics Co., Ltd. Method and apparatus for adaptive cache load balancing for ssd-based cloud computing storage system
US10599548B2 (en) 2018-06-28 2020-03-24 Intel Corporation Cache monitoring
US11681565B2 (en) 2018-09-13 2023-06-20 Intel Corporation Technologies for hierarchical clustering of hardware resources in network function virtualization deployments
US20190042331A1 (en) 2018-09-14 2019-02-07 Intel Corporation Power aware load balancing using a hardware queue manager
US10671302B1 (en) 2018-10-26 2020-06-02 Pure Storage, Inc. Applying a rate limit across a plurality of storage systems
US10855596B2 (en) 2018-11-20 2020-12-01 Microsoft Technology Licensing, Llc Load balancing among multiple endpoint computing systems of a domain
US11467873B2 (en) * 2019-07-29 2022-10-11 Intel Corporation Technologies for RDMA queue pair QOS management

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI793966B (zh) * 2022-01-10 2023-02-21 群聯電子股份有限公司 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元

Also Published As

Publication number Publication date
KR102653013B1 (ko) 2024-03-29
US11216190B2 (en) 2022-01-04
TWI828917B (zh) 2024-01-11
KR20200141383A (ko) 2020-12-18
CN112068768A (zh) 2020-12-11
JP2020201957A (ja) 2020-12-17
CN112068768B (zh) 2023-03-28
US20200387312A1 (en) 2020-12-10

Similar Documents

Publication Publication Date Title
TWI828917B (zh) 用於管理輸入輸出佇列對的系統及方法
US11221975B2 (en) Management of shared resources in a software-defined storage environment
US10996879B2 (en) Locality-based load balancing of input-output paths
US10728091B2 (en) Topology-aware provisioning of hardware accelerator resources in a distributed environment
US10534542B2 (en) Dynamic core allocation for consistent performance in a non-preemptive scheduling environment
US10817497B2 (en) Migration flow control
US10768823B2 (en) Flow control for unaligned writes in network storage device
CN111813330B (zh) 用于分派输入-输出的系统及方法
US10394606B2 (en) Dynamic weight accumulation for fair allocation of resources in a scheduler hierarchy
US7526552B2 (en) Stable, minimal skew resource flow control technique in large scale enterprise storage systems
US10817348B2 (en) Methods and systems for managing service level objectives in a networked storage environment
JP2001142858A (ja) コンピュータ環境の中央処理装置を管理する方法、システム、およびプログラム製品
CN105511964B (zh) I/o请求的处理方法和装置
US11050825B1 (en) Storage system port usage information sharing between host devices
US20220357998A1 (en) Multiple metric-based workload balancing between storage resources
US7934027B2 (en) Critical resource management
US20230168934A1 (en) Predictable and adaptive quality of service for storage
JP2023539212A (ja) ストレージレベルの負荷分散
US8843671B1 (en) Dynamic resource allocation for serial attached SCSI devices
Liu et al. Computing load aware and long-view load balancing for cluster storage systems
KR102663318B1 (ko) 지능형 경로 선택 및 부하 분산을 위한 시스템 및 방법
Gu et al. A Transformable NVMeoF Queue Design for Better Differentiating Read and Write Request Processing
US20220244885A1 (en) Method and system for maximizing performance of a storage system using normalized tokens based on saturation points
WO2024027395A1 (zh) 一种数据处理方法及装置
KR20240064613A (ko) 지능형 경로 선택 및 부하 분산을 위한 시스템 및 방법