CN109274550B - 一种iSCSI自适应IO队列深度匹配方法 - Google Patents

一种iSCSI自适应IO队列深度匹配方法 Download PDF

Info

Publication number
CN109274550B
CN109274550B CN201811044653.4A CN201811044653A CN109274550B CN 109274550 B CN109274550 B CN 109274550B CN 201811044653 A CN201811044653 A CN 201811044653A CN 109274550 B CN109274550 B CN 109274550B
Authority
CN
China
Prior art keywords
queue depth
current
iscsi
queue
depth
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
CN201811044653.4A
Other languages
English (en)
Other versions
CN109274550A (zh
Inventor
羊舌荣元
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fifth Research Institute Of Telecommunications Technology Co ltd
Original Assignee
Fifth Research Institute Of Telecommunications Technology Co ltd
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 Fifth Research Institute Of Telecommunications Technology Co ltd filed Critical Fifth Research Institute Of Telecommunications Technology Co ltd
Priority to CN201811044653.4A priority Critical patent/CN109274550B/zh
Publication of CN109274550A publication Critical patent/CN109274550A/zh
Application granted granted Critical
Publication of CN109274550B publication Critical patent/CN109274550B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0894Packet rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • H04L43/0829Packet loss
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Small-Scale Networks (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种iSCSI自适应IO队列深度匹配方法,包括:步骤1:iSCSI服务器判断当前以太网速率;步骤2:基于当前以太网速率,自动匹配相应的IO队列深度;步骤3:测试当前CPU负载是否饱和,判断能否增加IO队列深度;步骤4:若当前CPU负载饱和,则增加IO队列深度,然后返回步骤3;若当前CPU负载没有饱和,则判断当前IO队列深度是否存在丢包或延迟现象;若当前IO队列深度存在丢包或延迟现象,则减小IO队列深度,然后返回步骤3;若当前IO队列深度不存在丢包或延迟现象,则执行步骤5;步骤5:保留当前IO队列深度值,并与当前使用的LUN关联存入表中供下次使用;实现了能够实现在服务器与交换器在实现速率协商后自动选择最优IO深度。

Description

一种iSCSI自适应IO队列深度匹配方法
技术领域
本发明涉及网络通信领域,具体地,涉及一种iSCSI自适应IO队列深度匹配方法。
背景技术
iSCSI协议中,iSCSI指令由控制器发出。控制器所发出的批量指令的最大条数由控制器上的队列深度(Queue Depth)决定。假设外部连接独立的磁盘阵列则通常将队列深度设置为64或128。
IO队列深度将确定每一个iSCSI会话中可以发送到队列的iSCSI命令上限。较长的队列深度可以在高速的以太网(诸如10GbE以及40GbE环境)和采用SSD作为存储介质的环境中增加吞吐量,但队列深度过高则将会导致***的延迟增大、同时会降低整个***的稳定性。故不同IO队列深度将会影响到传输速度以及LUN的稳定性,如图1所示。
按图1所示,依据实时***的思想,为了描述和表征不同类型的实时***中调度和资源管理的方法,对计算和通信***所做的各类型的工作采用通用的概括性术语来描述,称能够被***调度和执行的工作单元为作业(job)。称共同提供某种***功能的一组相关作业为任务(Task)。
以太网传输速率的提升以及SSD(固态硬盘)的广泛使用使得IO吞吐速率成为了存储网络速率提升的瓶颈。显然,当IO队列深度越高时,服务器的处理时间轴将会被任务填满,以达到最大带宽。
从图2、图3可以很容易看出,当队列深度提高时,IO的总带宽将最大可能的被不同的作业数填满,已达到最大的IO吞吐率,因此对于高带宽的以太网络和以SSD作为存储介质的RAID来说,高IO队列数将有效提高***传输效率。但同时需要考虑到队列深度对于IO延迟产生的影响。
IO延迟是指控制器将IO指令发出后,直到IO完成的过程所耗费的时间。一般来讲只要IO延迟在20ms以内,对于应用程序来说都是可以接收的。大于20ms则将受到较大的影响。
IO的延迟由队列深度以及IOPS(每秒执行IO数)决定。公式为:
IO Latency=(Queue Depth)/IOPS
根据上式易知,IO队列深度与IO延迟成正相关。而当IO数达到***可以接受的最大IO数后,随着队列深度的增高,延迟将陡增并超过可已接收的20ms。
综上所述,对于IO队列深度的选择、既要考虑到增加队列深度从而尽可能的使用整个服务器的IO性能,也需要考虑到当队列深度过高时,导致的高延迟。
发明内容
本发明提供了一种iSCSI自适应IO队列深度匹配方法,解决了目前中低端的NAS服务器都尚未提供自适应IO深度的技术问题,实现了能够实现在服务器与交换器(或其他中继设备)在实现速率协商后自动选择最优IO深度。
为实现上述发明目的,本申请提供了一种iSCSI自适应IO队列深度匹配方法,所述方法包括:
步骤1:iSCSI服务器判断当前以太网速率;
步骤2:基于当前以太网速率,自动匹配相应的IO队列深度;
步骤3:测试当前CPU负载是否饱和,判断能否增加IO队列深度;
步骤4:若当前CPU负载饱和,则增加IO队列深度,然后返回步骤3;若当前CPU负载没有饱和,则判断当前IO队列深度是否存在丢包或延迟现象;若当前IO队列深度存在丢包或延迟现象,则减小IO队列深度,然后返回步骤3;若当前IO队列深度不存在丢包或延迟现象,则执行步骤5;
步骤5:保留当前IO队列深度值,并与当前使用的LUN关联存入表中供下次使用;然后结束流程或者返回步骤1继续执行本方法流程。
进一步的,所述iSCSI服务器判断当前以太网速率具体包括:首先10M 100M及1000M具有自适应电口,暂不考虑万兆光口的情况。根据iSCSI协议包的格式,所有数据包都是通过TCP/IP传输,设计1个加法器,在每个包的IP头中都有当前IP包的长度,而以太网帧头为固定的14字节。按1秒计算。设TL(1)为开始计数(约在iSCSI连接完成建立后)后第1秒中计算的所有数据包长度,则TL(n)即为当前实际网络的流量(网速)。
进一步的,所述测试当前CPU负载是否饱和,判断能否增加IO队列深度,具体包括:根据当前所有活动的TCP进程的周期T判断(周期可分别建立计数器通过判断TCP报文中计数器增加时间简略算出),得到周期后则可以算出每个活动进程的频率即1/T,将所有频率累加后加上其他任务消耗的CPU固定资源(如管理、新建TCP连接或删除已有的连接)来得到。若占用的CPU负载小于CPU最大负载的50%并且当前测得的实际网络速率TL(n)小于接入的网络的速率的百分之75%的情况下,增加IO队列深度。
进一步的,所述判断当前IO队列深度是否存在丢包或延迟现象,具体包括:通过同一TCP连接收到TCP报文的ACK时间判断,TCP协议中设计有最大维持时间,当两次数据包ACK的时间间隔大于最大维持时间则存在丢包或延迟。
进一步的,在iSCSI的target服务器接入以太网时,本方法首先进行速率协商,并设定一个初始的IO队列深度值。
进一步的,本方法在如下三种情况时开始进行调用:第一种:当服务器稳定运行一段时间;第二种:Target中有新的LUN被调用;第三种:Target中的LUN停止调用。
进一步的,iSCSI Target服务器至少为双核结构,增加或减少IO队列的深度时,总是对双核中的其中1个处理器生效,在生效后重新进行判断,直到当前IO队列深度为最佳值为止。
进一步的,当计算出最佳值后,将其与当前进行数据传输的LUN关联,建立一个二元表;在下次进行相同传输时,直接调用最优的IO队列深度值即可。
进一步的,本方法设定为处理速率优先或***稳定性优先。
本申请提供的一个或多个技术方案,至少具有如下技术效果或优点:
本方法采用软件方式对当前CPU的负载率进行判断后调整IO队列深度;本方法建立target中不同的LUN或LUN的组合与IO队列深度的关系,建立二元表,便于下次工作时直接进行调用;实现了能够实现在服务器与交换器(或其他中继设备)在实现速率协商后自动选择最优IO深度。
附图说明
此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定;
图1是IO队列深度对于***性能的影响示意图;
图2是队列深度低时IO资源占用量示意图;
图3是队列深度高时IO资源占用量示意图;
图4是iSCSI自适应IO队列深度匹配方法流程示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在相互不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述范围内的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
本发明算法实现流程如图4所示,假设iSCSI Target服务器至少为双核结构,定义为CPU1、CPU2:
所述方法包括:
步骤1:iSCSI服务器判断当前以太网速率;
步骤2:基于当前以太网速率,自动匹配相应的IO队列深度;
步骤3:测试当前CPU负载是否饱和,判断能否增加IO队列深度;
步骤4:若当前CPU负载饱和,则增加IO队列深度,然后返回步骤3;若当前CPU负载没有饱和,则判断当前IO队列深度是否存在丢包或延迟现象;若当前IO队列深度存在丢包或延迟现象,则减小IO队列深度,然后返回步骤3;若当前IO队列深度不存在丢包或延迟现象,则执行步骤5;
步骤5:保留当前IO队列深度值,并与当前使用的LUN关联存入表中供下次使用;然后结束流程或者返回步骤1继续执行本方法流程。
在iSCSI的target服务器接入以太网时,首先将会进行速率协商。并设定一个初始的IO队列深度值。本算法在如下三种情况时开始进行调用:
当服务器稳定运行一段时间;
Target中有新的LUN被调用;
Target中的LUN停止调用;
增加或减少IO队列的深度时,总是对双核中的其中1个处理器生效。在生效后重新进行判断,直到当前IO队列深度为最佳值为止。
当计算出最佳值后,将其与当前进行数据传输的LUN关联,建立一个二元表。在下次进行相同传输时,直接调用最优的IO队列深度值即可。同时考虑到不同使用场景可能存在不同的延迟以及丢包率指标,所以可以将本算法设定为处理速率优先或***稳定性优先。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (7)

1.一种iSCSI自适应IO队列深度匹配方法,其特征在于,本方法在如下三种情况时开始进行调用:第一种:当服务器稳定运行一段时间;第二种:Target中有新的LUN被调用;第三种:Target中的LUN停止调用;
所述方法包括:
步骤1:iSCSI服务器判断当前以太网速率;
步骤2:基于当前以太网速率,自动匹配相应的IO队列深度;
步骤3:根据当前所有活动的TCP进程的周期T,得到每个活动进程的频率即1/T,将所有频率累加后加上其他任务消耗的CPU固定资源来获得CPU负载,若占用的CPU负载小于CPU最大负载的50%并且当前测得的实际网络速率TL(n)小于接入的网络的速率的75%的情况下,增加IO队列深度;
步骤4:若当前CPU负载饱和,则增加IO队列深度,然后返回步骤3;若当前CPU负载没有饱和,则判断当前IO队列深度是否存在丢包或延迟现象;若当前IO队列深度存在丢包或延迟现象,则减小IO队列深度,然后返回步骤3;若当前IO队列深度不存在丢包或延迟现象,则执行步骤5;
步骤5:保留当前IO队列深度值,并与当前使用的LUN关联存入表中供下次使用;然后结束流程。
2.根据权利要求1所述的iSCSI自适应IO队列深度匹配方法,其特征在于,所述iSCSI服务器判断当前以太网速率具体包括:根据iSCSI协议包的格式,所有数据包都是通过TCP/IP传输,设计1个加法器,在每个包的IP头中都有当前IP包的长度,以太网帧头为固定的14字节,按1秒计算,设TL(1)为开始计数后第1秒中计算的所有数据包长度,则TL(n)即为当前实际网络的流量。
3.根据权利要求1所述的iSCSI自适应IO队列深度匹配方法,其特征在于,所述判断当前IO队列深度是否存在丢包或延迟现象,具体包括:通过同一TCP连接收到TCP报文的ACK时间判断,TCP协议中设计有最大维持时间,当两次数据包ACK的时间间隔大于最大维持时间则存在丢包或延迟。
4.根据权利要求1所述的iSCSI自适应IO队列深度匹配方法,其特征在于,在iSCSI的target服务器接入以太网时,本方法首先进行速率协商,并设定一个初始的IO队列深度值。
5.根据权利要求1所述的iSCSI自适应IO队列深度匹配方法,其特征在于,iSCSITarget服务器至少为双核结构,增加或减少IO队列的深度时,总是对双核中的其中1个处理器生效,在生效后重新进行判断,直到当前IO队列深度为最佳值为止。
6.根据权利要求5所述的iSCSI自适应IO队列深度匹配方法,其特征在于,当计算出最佳值后,将其与当前进行数据传输的LUN关联,建立一个二元表;在下次进行相同传输时,直接调用最优的IO队列深度值即可。
7.根据权利要求1所述的iSCSI自适应IO队列深度匹配方法,其特征在于,本方法设定为处理速率优先或***稳定性优先。
CN201811044653.4A 2018-09-07 2018-09-07 一种iSCSI自适应IO队列深度匹配方法 Active CN109274550B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811044653.4A CN109274550B (zh) 2018-09-07 2018-09-07 一种iSCSI自适应IO队列深度匹配方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811044653.4A CN109274550B (zh) 2018-09-07 2018-09-07 一种iSCSI自适应IO队列深度匹配方法

Publications (2)

Publication Number Publication Date
CN109274550A CN109274550A (zh) 2019-01-25
CN109274550B true CN109274550B (zh) 2020-07-31

Family

ID=65188839

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811044653.4A Active CN109274550B (zh) 2018-09-07 2018-09-07 一种iSCSI自适应IO队列深度匹配方法

Country Status (1)

Country Link
CN (1) CN109274550B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110099013B (zh) * 2019-04-25 2022-08-09 新华三技术有限公司 一种报文发送控制方法及装置
CN110365607A (zh) * 2019-07-12 2019-10-22 一诺仪器(中国)有限公司 一种缩短仪表采集数据链路延迟的方法及对应仪表
CN111158904A (zh) * 2019-12-14 2020-05-15 珠海金智维信息科技有限公司 一种任务调度方法、装置、服务器及介质

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6421723B1 (en) * 1999-06-11 2002-07-16 Dell Products L.P. Method and system for establishing a storage area network configuration
US7349992B2 (en) * 2002-01-24 2008-03-25 Emulex Design & Manufacturing Corporation System for communication with a storage area network
US6842792B2 (en) * 2002-06-27 2005-01-11 Lsi Logic Corporation Method and/or apparatus to sort request commands for SCSI multi-command packets
US20110246677A1 (en) * 2010-04-05 2011-10-06 Lsi Logic Corporation Systems and methods for controlling commands for target devices
CN102916903B (zh) * 2012-10-25 2015-04-08 华为技术有限公司 缓存调整方法及装置
US10146293B2 (en) * 2014-09-22 2018-12-04 Western Digital Technologies, Inc. Performance-aware power capping control of data storage devices
US9541988B2 (en) * 2014-09-22 2017-01-10 Western Digital Technologies, Inc. Data storage devices with performance-aware power capping
CN105516223B (zh) * 2014-09-25 2019-09-13 中国电信股份有限公司 虚拟存储***及其实现方法、服务器和虚拟机监控器
US9940258B2 (en) * 2015-11-09 2018-04-10 International Business Machines Corporation Implementing hardware accelerator for storage write cache management for merging data with existing data on fast writes to storage write cache
US10346076B1 (en) * 2017-07-03 2019-07-09 EMC IP Holding Company LLC Method and system for data deduplication based on load information associated with different phases in a data deduplication pipeline
CN107479828A (zh) * 2017-07-31 2017-12-15 山东超越数控电子有限公司 一种提高固态硬盘吞吐量性能的方法
CN108182151B (zh) * 2018-01-24 2019-02-01 北京百度网讯科技有限公司 顺序流缓存与检测的方法、装置、存储介质及终端设备

Also Published As

Publication number Publication date
CN109274550A (zh) 2019-01-25

Similar Documents

Publication Publication Date Title
CN109274550B (zh) 一种iSCSI自适应IO队列深度匹配方法
CN110401511B (zh) 一种传输速率的确定方法、装置、设备和存储介质
KR101242954B1 (ko) 저장부로 향하는 입/출력(i/o) 요청을 큐잉할지 여부를 결정하기 위한 우선순위의 이용
CN109672627A (zh) 基于集群服务器的业务处理方法、平台、设备及存储介质
EP2466824A1 (en) Service scheduling method and device
CN109408243B (zh) 一种基于rdma的数据处理方法、装置和介质
CN109218369B (zh) 远程过程调用请求控制方法及装置
US10965613B2 (en) Multi-pipe bandwidth control in hosted systems
CN105978821B (zh) 网络拥塞避免的方法及装置
JP2020080059A (ja) 評価装置、評価方法および評価プログラム
US20220248259A1 (en) Data processing method and apparatus
CN116233018A (zh) 报文处理方法、装置、电子设备及存储介质
CN107395735B (zh) 一种容器集群的延时缩容调度方法及***
CN104052676A (zh) 一种发送通路及发送通路的数据处理方法
CN103152278A (zh) 拥塞确定方法、装置和网络设备
US9363199B1 (en) Bandwidth management for data services operating on a local network
KR20150050085A (ko) 무선 환경에서 usb 통신을 위한 버퍼 관리 방법 및 장치
CN106899510B (zh) 一种基于iSCSI协议的传输速率控制方法和装置
CN112491573A (zh) 一种网络参数配置方法及装置
CN107817944A (zh) 一种数据处理方法及存储设备
Liu et al. Receiving buffer adaptation for high-speed data transfer
CN104468337A (zh) 消息传输方法及装置、消息管理中心设备及数据中心
US20130346701A1 (en) Replacement method and apparatus for cache
JP7255675B2 (ja) 仮想マシン監視装置、仮想マシン監視方法およびプログラム
JP2014112779A (ja) データ送信制御装置、データ送信制御方法、および、コンピュータ・プログラム

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant