CN110069340A - 线程数评估方法及装置 - Google Patents

线程数评估方法及装置 Download PDF

Info

Publication number
CN110069340A
CN110069340A CN201910258028.8A CN201910258028A CN110069340A CN 110069340 A CN110069340 A CN 110069340A CN 201910258028 A CN201910258028 A CN 201910258028A CN 110069340 A CN110069340 A CN 110069340A
Authority
CN
China
Prior art keywords
thread count
server
average
parameter information
time
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.)
Granted
Application number
CN201910258028.8A
Other languages
English (en)
Other versions
CN110069340B (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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201910258028.8A priority Critical patent/CN110069340B/zh
Publication of CN110069340A publication Critical patent/CN110069340A/zh
Application granted granted Critical
Publication of CN110069340B publication Critical patent/CN110069340B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提出一种线程数评估方法及装置,其中方法包括:获取检索系统中待评估的服务器的参数信息,参数信息包括:平均流量、平均处理时间;建立参数信息与性能参数信息之间的关系式;性能参数信息包括:服务器上的请求总数、等待处理的请求个数、平均等待时间、平均响应时间;性能参数信息与服务器的线程数存在关联关系,随服务器的线程数的变化而变化;结合关系式、参数信息以及排队模型,获取平均响应时间满足预期响应时间时的线程数;将线程数确定为服务器的线程数,从而能够结合服务器的参数信息、参数信息与性能参数信息之间的关系式以及排队模型,确定线程数,不需要对线程数进行多次调整,且时间周期短,能够确保检索系统的稳定性要求。

Description

线程数评估方法及装置
技术领域
本发明涉及检索技术领域,尤其涉及一种线程数评估方法及装置。
背景技术
目前,超大规模检索系统,例如谷歌、百度等,通常是由数目众多的服务器组成集群来提供信息检索服务,每台服务器上部署相应功能的检索程序。而检索程序的线程数直接影响检索系统对用户请求的响应速度。目前对检索程序的线程数的设置方法是,先设定一个初始线程数,之后根据检索系统的实际运行情况,对初始线程数进行多次调整,直至响应速度符合预期为止。
上述方案中,对线程数的多次调整,难以确保检索系统的稳定性要求,迭代周期长,且在调整线程数的过程中,如果调整不合理,会导致响应速度变慢。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的第一个目的在于提出一种线程数评估方法,用于解决现有技术中线程数需要经过多次调整,效率差,且检索系统稳定性难以确保的问题。
本发明的第二个目的在于提出一种线程数评估装置。
本发明的第三个目的在于提出另一种线程数评估装置。
本发明的第四个目的在于提出一种非临时性计算机可读存储介质。
本发明的第五个目的在于提出一种计算机程序产品。
为达上述目的,本发明第一方面实施例提出了一种线程数评估方法,包括:
获取检索系统中待评估的服务器的参数信息,所述参数信息包括:平均流量、平均处理时间;
建立所述参数信息与性能参数信息之间的关系式;所述性能参数信息包括:所述服务器上的请求总数、等待处理的请求个数、平均等待时间、平均响应时间;所述性能参数信息与所述服务器的线程数存在关联关系,随所述服务器的线程数的变化而变化;
结合所述关系式、所述参数信息以及排队模型,获取平均响应时间满足预期响应时间时的线程数;
将所述线程数确定为所述服务器的线程数。
进一步地,所述获取检索系统中待评估的服务器的参数信息,包括:
获取所述服务器在第一单位时间段内的流量;
根据所述流量,以及所述流量所服从的泊松分布,确定所述平均流量;
获取所述服务器对第一请求的处理时间;
根据所述处理时间,以及所述处理时间所服从的负指数分布,确定所述平均处理时间。
进一步地,所述根据所述流量,以及所述流量所服从的泊松分布,确定所述平均流量之后,还包括:
根据第一系数对所述平均流量进行处理,得到处理后平均流量;所述第一系数根据流量高峰情况确定;所述第一系数大于1;
采用所述处理后平均流量对所述平均流量进行更新。
进一步地,所述排队模型获取平均响应时间满足预期响应时间时的线程数的过程为,
设定初始线程数;
根据初始线程数、所述关系式以及所述参数信息,确定平均响应时间;
判断所述平均响应时间是否满足预期响应时间;
若所述平均响应时间不满足预期响应时间,则对所述初始线程数进行调整,直至所述平均响应时间满足预期响应时间;
将调整后的线程数,确定为平均响应时间满足预期响应时间时的线程数。
进一步地,所述将所述线程数确定为所述服务器的线程数之前,还包括:
根据第二系数对所述线程数进行处理,得到处理后线程数;所述第二系数根据处于工作状态的线程的占比确定;所述第二系数大于1;
采用所述处理后线程数对所述线程数进行更新。
进一步地,所述将所述线程数确定为所述服务器的线程数之后,还包括:
获取所述服务器所部署的检索程序的类型;
获取所述检索系统中部署有所述类型的检索程序的第一服务器;
根据所述线程数,对所述第一服务器中所述类型的检索程序的线程数进行更新。
进一步地,所述待评估的服务器,为所述检索系统中部署有各个类型的检索程序的服务器。
本发明实施例的线程数评估方法,通过获取检索系统中待评估的服务器的参数信息,参数信息包括:平均流量、平均处理时间;建立参数信息与性能参数信息之间的关系式;性能参数信息包括:服务器上的请求总数、等待处理的请求个数、平均等待时间、平均响应时间;性能参数信息与服务器的线程数存在关联关系,随服务器的线程数的变化而变化;结合关系式、参数信息以及排队模型,获取平均响应时间满足预期响应时间时的线程数;将线程数确定为服务器的线程数,从而能够结合待评估的服务器的参数信息、参数信息与性能参数信息之间的关系式以及排队模型,确定线程数,然后将服务器中检索程序的线程数更新为该线程数,不需要对线程数进行多次调整,且时间周期短,能够确保检索系统的稳定性要求。
为达上述目的,本发明第二方面实施例提出了一种线程数评估装置,包括:
获取模块,用于获取检索系统中待评估的服务器的参数信息,所述参数信息包括:平均流量、平均处理时间;
建立模块,用于建立所述参数信息与性能参数信息之间的关系式;所述性能参数信息包括:所述服务器上的请求总数、等待处理的请求个数、平均等待时间、平均响应时间;所述性能参数信息与所述服务器的线程数存在关联关系,随所述服务器的线程数的变化而变化;
所述获取模块,还用于结合所述关系式、所述参数信息以及排队模型,获取平均响应时间满足预期响应时间时的线程数;
确定模块,用于将所述线程数确定为所述服务器的线程数。
进一步地,所述获取模块具体用于,
获取所述服务器在第一单位时间段内的流量;
根据所述流量,以及所述流量所服从的泊松分布,确定所述平均流量;
获取所述服务器对第一请求的处理时间;
根据所述处理时间,以及所述处理时间所服从的负指数分布,确定所述平均处理时间。
进一步地,所述获取模块具体还用于,
根据第一系数对所述平均流量进行处理,得到处理后平均流量;所述第一系数根据流量高峰情况确定;所述第一系数大于1;
采用所述处理后平均流量对所述平均流量进行更新。
进一步地,所述排队模型获取平均响应时间满足预期响应时间时的线程数的过程为,
设定初始线程数;
根据初始线程数、所述关系式以及所述参数信息,计算确定平均响应时间;
判断所述平均响应时间是否满足预期响应时间;
若所述平均响应时间不满足预期响应时间,则对所述初始线程数进行调整,直至所述平均响应时间满足预期响应时间;
将调整后的线程数,确定为平均响应时间满足预期响应时间时的线程数。
进一步地,所述排队模型获取平均响应时间满足预期响应时间时的线程数的过程还包括:
根据第二系数对所述线程数进行处理,得到处理后线程数;所述第二系数根据处于工作状态的线程的占比确定;所述第二系数大于1;
采用所述处理后线程数对所述线程数进行更新。
进一步地,所述的装置还包括:更新模块;
所述获取模块,还用于获取所述服务器所部署的检索程序的类型;
所述获取模块,还用于获取所述检索系统中部署有所述类型的检索程序的第一服务器;
所述更新模块,用于根据所述线程数,对所述第一服务器中所述类型的检索程序的线程数进行更新。
进一步地,所述待评估的服务器,为所述检索系统中部署有各个类型的检索程序的服务器。
本发明实施例的线程数评估装置,通过获取检索系统中待评估的服务器的参数信息,参数信息包括:平均流量、平均处理时间;建立参数信息与性能参数信息之间的关系式;性能参数信息包括:服务器上的请求总数、等待处理的请求个数、平均等待时间、平均响应时间;性能参数信息与服务器的线程数存在关联关系,随服务器的线程数的变化而变化;结合关系式、参数信息以及排队模型,获取平均响应时间满足预期响应时间时的线程数;将线程数确定为服务器的线程数,从而能够结合待评估的服务器的参数信息、参数信息与性能参数信息之间的关系式以及排队模型,确定线程数,然后将服务器中检索程序的线程数更新为该线程数,不需要对线程数进行多次调整,且时间周期短,能够确保检索系统的稳定性要求。
为达上述目的,本发明第三方面实施例提出了另一种线程数评估装置,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如上所述的线程数评估方法。
为了实现上述目的,本发明第四方面实施例提出了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的线程数评估方法。
为了实现上述目的,本发明第五方面实施例提出了一种计算机程序产品,当所述计算机程序产品中的指令处理器执行时,实现如上所述的线程数评估方法。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明实施例提供的一种线程数评估方法的流程示意图;
图2为本发明实施例提供的一种线程数评估装置的结构示意图;
图3为本发明实施例提供的另一种线程数评估装置的结构示意图;
图4为本发明实施例提供的另一种线程数评估装置的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参考附图描述本发明实施例的线程数评估方法及装置。
图1为本发明实施例提供的一种线程数评估方法的流程示意图。如图1所示,该线程数评估方法包括以下步骤:
S101、获取检索系统中待评估的服务器的参数信息,参数信息包括:平均流量、平均处理时间。
本发明提供的线程数评估方法的执行主体为线程数评估装置,线程数评估装置可以为终端设备、服务器等硬件设备,或者为硬件设备上安装的软件。本实施例中,检索系统例如可以为百度检索系统、谷歌检索系统等。以百度检索系统为例,待评估的服务器可以为流量分发服务器AC、中转服务器BC、基础检索服务器BS等。其中,流量分发服务器AC用于接收各个用户的请求,将请求分发至各个中转服务器BC;中转服务器BC用于将请求转发至各个基础检索服务器BS;基础检索服务器BS,根据请求查询数据库,获取检索结果。其中,流量分发服务器AC、中转服务器BC、基础检索服务器BS上部署有实现不同功能的检索程序。不同功能的检索程序的类型例如可以为分发、中转、检索等。其中,请求指的是,用户在检索系统提供的界面中输入检索词后提交的检索请求。
本实施例中,平均流量,指的是服务器在单位时间内收到的平均请求数量。平均处理时间,指的是单个请求的平均处理时间,指的是从服务器接收到单个请求到最后获取到检索结果所需要的时间。以百度检索系统中的流量分发服务器AC为例,平均处理时间可以为流量分发时间+中转时间+基础检索时间。以百度检索系统中的中转服务器BC为例,平均处理时间可以为中转时间+基础检索时间。以百度检索系统中的基础检索服务器BS为例,平均处理时间可以为基础检索时间。
本实施例中,线程数评估装置执行步骤101的过程具体可以为,获取服务器在第一单位时间段内的流量;根据流量,以及流量所服从的泊松分布,确定平均流量;获取服务器对第一请求的处理时间;根据处理时间,以及处理时间所服从的负指数分布,确定平均处理时间。
其中,考虑到流量高峰情况,确定平均流量后,线程数评估装置还可以执行以下过程:根据第一系数对平均流量进行处理,得到处理后平均流量;第一系数根据流量高峰情况确定;第一系数大于1;采用处理后平均流量对平均流量进行更新。其中,第一系数例如可以为1.6等。根据第一系数对平均流量的处理可以为,在平均流量的基础上乘以第一系数,得到处理后平均流量。
S102、建立参数信息与性能参数信息之间的关系式;性能参数信息包括:服务器上的请求总数、等待处理的请求个数、平均等待时间、平均响应时间;性能参数信息与服务器的线程数存在关联关系,随服务器的线程数的变化而变化。
本实施例中,参数信息与性能参数信息之间的关系式可以如以下公式(1)至公式(4)所示。
Ls=Fw×Ws (1)
Lq=Fw×Wq (2)
Ws=Wq+Tm (3)
Ls=Lq+Tm×Fw (4)
其中,Ls表示服务器上的请求总数;Lq表示等待处理的请求个数;Ws表示平均响应时间;Wq表示平均等待时间;Fw表示平均流量;Tm表示平均处理时间。
S103、结合关系式、参数信息以及排队模型,获取平均响应时间满足预期响应时间时的线程数。
本实施例中,排队模型获取平均响应时间满足预期响应时间时的线程数的过程为,设定初始线程数;根据初始线程数、关系式以及参数信息,确定平均响应时间;判断平均响应时间是否满足预期响应时间;若平均响应时间不满足预期响应时间,则对初始线程数进行调整,直至平均响应时间满足预期响应时间;将调整后的线程数,确定为平均响应时间满足预期响应时间时的线程数。
本实施例中,排队模型的结构与检索系统的结构类似。其中,排队模型中的银行相当于检索系统;排队模型中的银行分店相当于服务器;排队模型中的柜台相当于服务器中部署的检索程序的线程;排队模型中柜台对业务的处理相当于检索程序对请求的处理;排队模型中客户的取号等待相当于请求的排队等待。因此,排队模型基于初始线程数、关系式以及参数信息,可以在初始线程数、参数信息的情况下,模拟获取各个性能参数的模拟值,即在初始线程数情况下各个性能参数的数值;然后判断其中平均响应时间的数值是否满足预期响应时间的数值;若是,则将此时的线程数确定为平均响应时间满足预期响应时间时的线程数;若否,则对线程数进行调整,直至平均响应时间满足预期响应时间为止。从而能够通过排队模型的模拟操作,获取到平均响应时间满足预期响应时间时的线程数,而不需要在检索系统中对线程数进行多次实际调整。
本实施例中,预期响应时间例如可以为0.5s(500ms)等。平均响应时间满足预期响应时间,指的是平均响应时间小于预期响应时间。其中,平均响应时间满足预期响应时间时的线程数例如可以为27等,当线程数为27时,平均响应时间为0.3s,平均等待时间为0s。
进一步地,在上述实施例的基础上,考虑到处于工作状态的线程的占比情况,将调整后的线程数,确定为平均响应时间满足预期响应时间时的线程数之前,线程数评估装置还可以执行以下过程:根据第二系数对线程数进行处理,得到处理后线程数;第二系数根据处于工作状态的线程的占比确定;第二系数大于1;采用处理后线程数对线程数进行更新。其中,第二系数例如可以为占比的倒数,例如1/0.8等。根据第二系数对线程数的处理可以为,在线程数的基础上乘以第二系数,得到处理后线程数。
S104、将线程数确定为服务器的线程数。
本实施例中,步骤104之后,线程数评估装置还可以执行以下过程:获取服务器所部署的检索程序的类型;获取检索系统中部署有类型的检索程序的第一服务器;根据线程数,对第一服务器中类型的检索程序的线程数进行更新。
本实施例中,以百度检索系统为例,服务器所部署的检索程序的类型例如可以为分发、中转、检索等。若待评估的服务器所部署的检索程序的类型为分发,则待评估的服务器为流量分发服务器AC,则根据线程数,对检索系统中的所有流程分发服务器AC中检索程序的线程数进行更新。
本发明实施例的线程数评估方法,通过获取检索系统中待评估的服务器的参数信息,参数信息包括:平均流量、平均处理时间;建立参数信息与性能参数信息之间的关系式;性能参数信息包括:服务器上的请求总数、等待处理的请求个数、平均等待时间、平均响应时间;性能参数信息与服务器的线程数存在关联关系,随服务器的线程数的变化而变化;结合关系式、参数信息以及排队模型,获取平均响应时间满足预期响应时间时的线程数;将线程数确定为服务器的线程数,从而能够结合待评估的服务器的参数信息、参数信息与性能参数信息之间的关系式以及排队模型,确定线程数,然后将服务器中检索程序的线程数更新为该线程数,不需要对线程数进行多次调整,且时间周期短,能够确保检索系统的稳定性要求。
图2为本发明实施例提供的一种线程数评估装置的结构示意图。如图2所示,包括:获取模块21、建立模块22和确定模块23。
其中,获取模块21,用于获取检索系统中待评估的服务器的参数信息,所述参数信息包括:平均流量、平均处理时间;
建立模块22,用于建立所述参数信息与性能参数信息之间的关系式;所述性能参数信息包括:所述服务器上的请求总数、等待处理的请求个数、平均等待时间、平均响应时间;所述性能参数信息与所述服务器的线程数存在关联关系,随所述服务器的线程数的变化而变化;
所述获取模块21,还用于结合所述关系式、所述参数信息以及排队模型,获取平均响应时间满足预期响应时间时的线程数;
确定模块23,用于将所述线程数确定为所述服务器的线程数。
本发明提供的线程数评估装置可以为终端设备、服务器等硬件设备,或者为硬件设备上安装的软件。本实施例中,检索系统例如可以为百度检索系统、谷歌检索系统等。以百度检索系统为例,待评估的服务器可以为流量分发服务器AC、中转服务器BC、基础检索服务器BS等。其中,流量分发服务器AC用于接收各个用户的请求,将请求分发至各个中转服务器BC;中转服务器BC用于将请求转发至各个基础检索服务器BS;基础检索服务器BS,根据请求查询数据库,获取检索结果。其中,流量分发服务器AC、中转服务器BC、基础检索服务器BS上部署有实现不同功能的检索程序。不同功能的检索程序的类型例如可以为分发、中转、检索等。其中,请求指的是,用户在检索系统提供的界面中输入检索词后提交的检索请求。
本实施例中,平均流量,指的是服务器在单位时间内收到的平均请求数量。平均处理时间,指的是单个请求的平均处理时间,指的是从服务器接收到单个请求到最后获取到检索结果所需要的时间。以百度检索系统中的流量分发服务器AC为例,平均处理时间可以为流量分发时间+中转时间+基础检索时间。以百度检索系统中的中转服务器BC为例,平均处理时间可以为中转时间+基础检索时间。以百度检索系统中的基础检索服务器BS为例,平均处理时间可以为基础检索时间。
本实施例中,所述获取模块21具体可以用于,获取所述服务器在第一单位时间段内的流量;根据所述流量,以及所述流量所服从的泊松分布,确定所述平均流量;获取所述服务器对第一请求的处理时间;根据所述处理时间,以及所述处理时间所服从的负指数分布,确定所述平均处理时间。
其中,考虑到流量高峰情况,确定平均流量后,获取模块21还可以执行以下过程:根据第一系数对平均流量进行处理,得到处理后平均流量;第一系数根据流量高峰情况确定;第一系数大于1;采用处理后平均流量对平均流量进行更新。其中,第一系数例如可以为1.6等。根据第一系数对平均流量的处理可以为,在平均流量的基础上乘以第一系数,得到处理后平均流量。
本实施例中,参数信息与性能参数信息之间的关系式可以如以下公式(1)至公式(4)所示。
Ls=Fw×Ws (1)
Lq=Fw×Wq (2)
Ws=Wq+Tm (3)
Ls=Lq+Tm×Fw (4)
其中,Ls表示服务器上的请求总数;Lq表示等待处理的请求个数;Ws表示平均响应时间;Wq表示平均等待时间;Fw表示平均流量;Tm表示平均处理时间。
本实施例中,排队模型获取平均响应时间满足预期响应时间时的线程数的过程为,设定初始线程数;根据初始线程数、关系式以及参数信息,确定平均响应时间;判断平均响应时间是否满足预期响应时间;若平均响应时间不满足预期响应时间,则对初始线程数进行调整,直至平均响应时间满足预期响应时间;将调整后的线程数,确定为平均响应时间满足预期响应时间时的线程数。
本实施例中,排队模型的结构与检索系统的结构类似。其中,排队模型中的银行相当于检索系统;排队模型中的银行分店相当于服务器;排队模型中的柜台相当于服务器中部署的检索程序的线程;排队模型中柜台对业务的处理相当于检索程序对请求的处理;排队模型中客户的取号等待相当于请求的排队等待。因此,排队模型基于初始线程数、关系式以及参数信息,可以在初始线程数、参数信息的情况下,模拟获取各个性能参数的模拟值,即在初始线程数情况下各个性能参数的数值;然后判断其中平均响应时间的数值是否满足预期响应时间的数值;若是,则将此时的线程数确定为平均响应时间满足预期响应时间时的线程数;若否,则对线程数进行调整,直至平均响应时间满足预期响应时间为止。从而能够通过排队模型的模拟操作,获取到平均响应时间满足预期响应时间时的线程数,而不需要在检索系统中对线程数进行多次实际调整。
本实施例中,预期响应时间例如可以为0.5s(500ms)等。平均响应时间满足预期响应时间,指的是平均响应时间小于预期响应时间。其中,平均响应时间满足预期响应时间时的线程数例如可以为27等,当线程数为27时,平均响应时间为0.3s,平均等待时间为0s。
进一步地,在上述实施例的基础上,考虑到处于工作状态的线程的占比情况,排队模型获取平均响应时间满足预期响应时间时的线程数的过程还包括:根据第二系数对线程数进行处理,得到处理后线程数;第二系数根据处于工作状态的线程的占比确定;第二系数大于1;采用处理后线程数对线程数进行更新。其中,第二系数例如可以为占比的倒数,例如1/0.8等。根据第二系数对线程数的处理可以为,在线程数的基础上乘以第二系数,得到处理后线程数。
进一步地,结合参考图3,在图2所示实施例的基础上,所述的装置还可以包括:更新模块24;
其中,所述获取模块21,还用于获取所述服务器所部署的检索程序的类型;
所述获取模块21,还用于获取所述检索系统中部署有所述类型的检索程序的第一服务器;
所述更新模块24,用于根据所述线程数,对所述第一服务器中所述类型的检索程序的线程数进行更新。
本实施例中,以百度检索系统为例,服务器所部署的检索程序的类型例如可以为分发、中转、检索等。若待评估的服务器所部署的检索程序的类型为分发,则待评估的服务器为流量分发服务器AC,则根据线程数,对检索系统中的所有流程分发服务器AC中检索程序的线程数进行更新。
本发明实施例的线程数评估装置,通过获取检索系统中待评估的服务器的参数信息,参数信息包括:平均流量、平均处理时间;建立参数信息与性能参数信息之间的关系式;性能参数信息包括:服务器上的请求总数、等待处理的请求个数、平均等待时间、平均响应时间;性能参数信息与服务器的线程数存在关联关系,随服务器的线程数的变化而变化;结合关系式、参数信息以及排队模型,获取平均响应时间满足预期响应时间时的线程数;将线程数确定为服务器的线程数,从而能够结合待评估的服务器的参数信息、参数信息与性能参数信息之间的关系式以及排队模型,确定线程数,然后将服务器中检索程序的线程数更新为该线程数,不需要对线程数进行多次调整,且时间周期短,能够确保检索系统的稳定性要求。
图4为本发明实施例提供的另一种线程数评估装置的结构示意图。该线程数评估装置包括:
存储器1001、处理器1002及存储在存储器1001上并可在处理器1002上运行的计算机程序。
处理器1002执行所述程序时实现上述实施例中提供的线程数评估方法。
进一步地,线程数评估装置还包括:
通信接口1003,用于存储器1001和处理器1002之间的通信。
存储器1001,用于存放可在处理器1002上运行的计算机程序。
存储器1001可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
处理器1002,用于执行所述程序时实现上述实施例所述的线程数评估方法。
如果存储器1001、处理器1002和通信接口1003独立实现,则通信接口1003、存储器1001和处理器1002可以通过总线相互连接并完成相互间的通信。所述总线可以是工业标准体系结构(Industry Standard Architecture,简称为ISA)总线、外部设备互连(Peripheral Component,简称为PCI)总线或扩展工业标准体系结构(Extended IndustryStandard Architecture,简称为EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果存储器1001、处理器1002及通信接口1003,集成在一块芯片上实现,则存储器1001、处理器1002及通信接口1003可以通过内部接口完成相互间的通信。
处理器1002可能是一个中央处理器(Central Processing Unit,简称为CPU),或者是特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。
本发明还提供一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的线程数评估方法。
本发明还提供一种计算机程序产品,当所述计算机程序产品中的指令处理器执行时,实现如上所述的线程数评估方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (17)

1.一种线程数评估方法,其特征在于,包括:
获取检索系统中待评估的服务器的参数信息,所述参数信息包括:平均流量、平均处理时间;
建立所述参数信息与性能参数信息之间的关系式;所述性能参数信息包括:所述服务器上的请求总数、等待处理的请求个数、平均等待时间、平均响应时间;所述性能参数信息与所述服务器的线程数存在关联关系,随所述服务器的线程数的变化而变化;
结合所述关系式、所述参数信息以及排队模型,获取平均响应时间满足预期响应时间时的线程数;
将所述线程数确定为所述服务器的线程数。
2.根据权利要求1所述的方法,其特征在于,所述获取检索系统中待评估的服务器的参数信息,包括:
获取所述服务器在第一单位时间段内的流量;
根据所述流量,以及所述流量所服从的泊松分布,确定所述平均流量;
获取所述服务器对第一请求的处理时间;
根据所述处理时间,以及所述处理时间所服从的负指数分布,确定所述平均处理时间。
3.根据权利要求2所述的方法,其特征在于,所述根据所述流量,以及所述流量所服从的泊松分布,确定所述平均流量之后,还包括:
根据第一系数对所述平均流量进行处理,得到处理后平均流量;所述第一系数根据流量高峰情况确定;所述第一系数大于1;
采用所述处理后平均流量对所述平均流量进行更新。
4.根据权利要求1所述的方法,其特征在于,所述排队模型获取平均响应时间满足预期响应时间时的线程数的过程为,
设定初始线程数;
根据初始线程数、所述关系式以及所述参数信息,确定平均响应时间;
判断所述平均响应时间是否满足预期响应时间;
若所述平均响应时间不满足预期响应时间,则对所述初始线程数进行调整,直至所述平均响应时间满足预期响应时间;
将调整后的线程数,确定为平均响应时间满足预期响应时间时的线程数。
5.根据权利要求1所述的方法,其特征在于,所述将所述线程数确定为所述服务器的线程数之前,还包括:
根据第二系数对所述线程数进行处理,得到处理后线程数;所述第二系数根据处于工作状态的线程的占比确定;所述第二系数大于1;
采用所述处理后线程数对所述线程数进行更新。
6.根据权利要求1所述的方法,其特征在于,所述将所述线程数确定为所述服务器的线程数之后,还包括:
获取所述服务器所部署的检索程序的类型;
获取所述检索系统中部署有所述类型的检索程序的第一服务器;
根据所述线程数,对所述第一服务器中所述类型的检索程序的线程数进行更新。
7.根据权利要求1所述的方法,其特征在于,所述待评估的服务器,为所述检索系统中部署有各个类型的检索程序的服务器。
8.一种线程数评估装置,其特征在于,包括:
获取模块,用于获取检索系统中待评估的服务器的参数信息,所述参数信息包括:平均流量、平均处理时间;
建立模块,用于建立所述参数信息与性能参数信息之间的关系式;所述性能参数信息包括:所述服务器上的请求总数、等待处理的请求个数、平均等待时间、平均响应时间;所述性能参数信息与所述服务器的线程数存在关联关系,随所述服务器的线程数的变化而变化;
所述获取模块,还用于结合所述关系式、所述参数信息以及排队模型,获取平均响应时间满足预期响应时间时的线程数;
确定模块,用于将所述线程数确定为所述服务器的线程数。
9.根据权利要求8所述的装置,其特征在于,所述获取模块具体用于,
获取所述服务器在第一单位时间段内的流量;
根据所述流量,以及所述流量所服从的泊松分布,确定所述平均流量;
获取所述服务器对第一请求的处理时间;
根据所述处理时间,以及所述处理时间所服从的负指数分布,确定所述平均处理时间。
10.根据权利要求9所述的装置,其特征在于,所述获取模块具体还用于,
根据第一系数对所述平均流量进行处理,得到处理后平均流量;所述第一系数根据流量高峰情况确定;所述第一系数大于1;
采用所述处理后平均流量对所述平均流量进行更新。
11.根据权利要求8所述的装置,其特征在于,所述排队模型获取平均响应时间满足预期响应时间时的线程数的过程为,
设定初始线程数;
根据初始线程数、所述关系式以及所述参数信息,确定平均响应时间;
判断所述平均响应时间是否满足预期响应时间;
若所述平均响应时间不满足预期响应时间,则对所述初始线程数进行调整,直至所述平均响应时间满足预期响应时间;
将调整后的线程数,确定为平均响应时间满足预期响应时间时的线程数。
12.根据权利要求8所述的装置,其特征在于,所述排队模型获取平均响应时间满足预期响应时间时的线程数的过程还包括:
根据第二系数对所述线程数进行处理,得到处理后线程数;所述第二系数根据处于工作状态的线程的占比确定;所述第二系数大于1;
采用所述处理后线程数对所述线程数进行更新。
13.根据权利要求8所述的装置,其特征在于,还包括:更新模块;
所述获取模块,还用于获取所述服务器所部署的检索程序的类型;
所述获取模块,还用于获取所述检索系统中部署有所述类型的检索程序的第一服务器;
所述更新模块,用于根据所述线程数,对所述第一服务器中所述类型的检索程序的线程数进行更新。
14.根据权利要求8所述的装置,其特征在于,所述待评估的服务器,为所述检索系统中部署有各个类型的检索程序的服务器。
15.一种线程数评估装置,其特征在于,包括:
存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-7中任一所述的线程数评估方法。
16.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的线程数评估方法。
17.一种计算机程序产品,当所述计算机程序产品中的指令处理器执行时,实现如权利要求1-7中任一所述的线程数评估方法。
CN201910258028.8A 2019-04-01 2019-04-01 线程数评估方法及装置 Active CN110069340B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910258028.8A CN110069340B (zh) 2019-04-01 2019-04-01 线程数评估方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910258028.8A CN110069340B (zh) 2019-04-01 2019-04-01 线程数评估方法及装置

Publications (2)

Publication Number Publication Date
CN110069340A true CN110069340A (zh) 2019-07-30
CN110069340B CN110069340B (zh) 2022-09-16

Family

ID=67366801

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910258028.8A Active CN110069340B (zh) 2019-04-01 2019-04-01 线程数评估方法及装置

Country Status (1)

Country Link
CN (1) CN110069340B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111049914A (zh) * 2019-12-18 2020-04-21 珠海格力电器股份有限公司 负载均衡方法、装置和计算机系统

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040139434A1 (en) * 2002-12-31 2004-07-15 International Business Machines Corporation Dynamic thread pool tuning techniques
US20080033900A1 (en) * 2006-08-03 2008-02-07 Yan Zhang System and method for autonomic tuning the number of threads in application server at runtime
US20110040876A1 (en) * 2009-08-12 2011-02-17 Microsoft Corporation Capacity planning for data center services
US8341650B1 (en) * 2010-02-02 2012-12-25 Cellco Partnership High thread count analyzer for web application server environment
US20140280894A1 (en) * 2013-03-15 2014-09-18 Patrick Alexander Reynolds Methods and Computer Program Products for Transaction Relationships Between Application Servers
US20150150020A1 (en) * 2013-11-25 2015-05-28 Tata Consultancy Services Limited System and method facilitating performance prediction of multi-threaded application in presence of resource bottlenecks
US20160036656A1 (en) * 2014-07-31 2016-02-04 International Business Machines Corporation Monitoring device usage
CN105429818A (zh) * 2015-10-30 2016-03-23 努比亚技术有限公司 一种实现负载测试的方法和系统
CN106572159A (zh) * 2016-11-01 2017-04-19 阜阳师范学院 基于复杂排队系统的三值光学计算机服务响应时间的操作方法
CN107402810A (zh) * 2016-05-20 2017-11-28 阿里巴巴集团控股有限公司 线程分配方法及装置
CN108446170A (zh) * 2018-01-24 2018-08-24 北京奇艺世纪科技有限公司 一种基于机器学习的dns线程管理方法、装置和服务器
CN108984288A (zh) * 2018-06-11 2018-12-11 山东中创软件商用中间件股份有限公司 基于系统响应时间的线程池容量调整方法、装置及设备
CN109284950A (zh) * 2017-07-21 2019-01-29 北京三快在线科技有限公司 时间估测方法、装置及电子设备

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040139434A1 (en) * 2002-12-31 2004-07-15 International Business Machines Corporation Dynamic thread pool tuning techniques
US20080033900A1 (en) * 2006-08-03 2008-02-07 Yan Zhang System and method for autonomic tuning the number of threads in application server at runtime
US20110040876A1 (en) * 2009-08-12 2011-02-17 Microsoft Corporation Capacity planning for data center services
US8341650B1 (en) * 2010-02-02 2012-12-25 Cellco Partnership High thread count analyzer for web application server environment
US20140280894A1 (en) * 2013-03-15 2014-09-18 Patrick Alexander Reynolds Methods and Computer Program Products for Transaction Relationships Between Application Servers
US20150150020A1 (en) * 2013-11-25 2015-05-28 Tata Consultancy Services Limited System and method facilitating performance prediction of multi-threaded application in presence of resource bottlenecks
US20160036656A1 (en) * 2014-07-31 2016-02-04 International Business Machines Corporation Monitoring device usage
CN105429818A (zh) * 2015-10-30 2016-03-23 努比亚技术有限公司 一种实现负载测试的方法和系统
CN107402810A (zh) * 2016-05-20 2017-11-28 阿里巴巴集团控股有限公司 线程分配方法及装置
CN106572159A (zh) * 2016-11-01 2017-04-19 阜阳师范学院 基于复杂排队系统的三值光学计算机服务响应时间的操作方法
CN109284950A (zh) * 2017-07-21 2019-01-29 北京三快在线科技有限公司 时间估测方法、装置及电子设备
CN108446170A (zh) * 2018-01-24 2018-08-24 北京奇艺世纪科技有限公司 一种基于机器学习的dns线程管理方法、装置和服务器
CN108984288A (zh) * 2018-06-11 2018-12-11 山东中创软件商用中间件股份有限公司 基于系统响应时间的线程池容量调整方法、装置及设备

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
KANG-LYUL LEE 等: "A Novel Predictive and Self -- Adaptive Dynamic Thread Pool Management", 《2011 IEEE NINTH INTERNATIONAL SYMPOSIUM ON PARALLEL AND DISTRIBUTED PROCESSING WITH APPLICATIONS》 *
NING-JIANG CHEN 等: "A Dynamic Adjustment Mechanism with Heuristic for Thread Pool in Middleware", 《2010 THIRD INTERNATIONAL JOINT CONFERENCE ON COMPUTATIONAL SCIENCE AND OPTIMIZATION》 *
何怀文 等: "基于M/M/n/n+ r 排队模型的云计算中心服务性能分析", 《计算机应用》 *
吉利 等: "线程池技术在网络服务器中的应用", 《计算机技术与发展》 *
胡剑军 等: "一种基于性能模型的中间件自配置框架", 《软件学报》 *
谢鹏 等: "基于PS排队模型的单台流媒体服务器性能分析", 《中国科学技术大学学报 》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111049914A (zh) * 2019-12-18 2020-04-21 珠海格力电器股份有限公司 负载均衡方法、装置和计算机系统
CN111049914B (zh) * 2019-12-18 2021-02-09 珠海格力电器股份有限公司 负载均衡方法、装置和计算机系统

Also Published As

Publication number Publication date
CN110069340B (zh) 2022-09-16

Similar Documents

Publication Publication Date Title
CN104317650B (zh) 一种面向Map/Reduce型海量数据处理平台的作业调度方法
CN107705183A (zh) 一种商品的推荐方法、装置、存储介质及服务器
CN108090225A (zh) 数据库实例的运行方法、装置、系统及计算机可读存储介质
CN107688423A (zh) 一种系统上菜单选项的管理方法和处理设备
CN107231264A (zh) 用于管理云服务器的容量的方法和装置
CN108615119A (zh) 一种异常用户的识别方法及设备
CN106130972B (zh) 资源访问控制方法和装置
CN108171528A (zh) 一种归因方法及归因系统
CN110008246A (zh) 元数据管理方法及装置
CN108597564A (zh) 医疗信息共享方法和系统
CN107346267A (zh) 一种基于numa架构的cpu性能优化方法和装置
CN108520471A (zh) 重叠社区发现方法、装置、设备及存储介质
CN107784596A (zh) 保单的险种状态信息统计方法、终端设备及存储介质
CN110222790A (zh) 用户身份识别方法、装置及服务器
CN109587072A (zh) 分布式系统全局限速系统及方法
CN109446225A (zh) 数据缓存方法、装置、计算机设备及存储介质
CN110069340A (zh) 线程数评估方法及装置
CN104123303B (zh) 一种提供数据的方法及装置
CN108932241A (zh) 日志数据统计方法、装置及节点
CN106911772A (zh) 服务器分配方法、服务器分配装置以及电子设备
CN110347698A (zh) 报表数据处理方法及装置
CN110298666A (zh) 交易处理过程中的异常处理方法及装置
CN109034955A (zh) 账单生成方法及装置
CN107797832A (zh) 应用清理方法、装置、存储介质及电子设备
CN107680149A (zh) 项目走势图绘制方法、装置和服务器

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