1.一种分布式存储系统的负载监控方法,其中,该方法包括:
确定分布式存储系统中每台服务器上所有负载压力超标的线程池;
对每个负载压力超标的线程池进行报警或负载均衡。
2.如权利要求1所述的方法,其中,确定分布式存储系统中每台服务器上所有负载压力超标的线程池,包括:
获取每台服务器上的每个线程池的队列中一个请求的等待时间与逗留时间的比值,所述逗留时间为每个线程池的队列中一个请求的等待时间与实际处理时间之和;
当所述等待时间与逗留时间的比值超过预设超标阈值时,确定该请求所在的服务器上的线程池的负载压力超标。
3.如权利要求2所述的方法,其中,所述预设超标阈值根据线程池的请求到达率的预设阈值确定,其中,所述线程池的请求到达率为请求到达线程池的队列的速率与该线程池的单位时间的服务能力的比值,当线程池的请求到达率超过线程池的请求到达率的预设阈值时,对应的等待时间与逗留时间的比值开始急剧上升,所述预设超标阈值超过所述开始急剧上升时等待时间与逗留时间的比值。
4.如权利要求1至3任一项所述的方法,其中,对每个负载压力超标的线程池进行负载均衡,包括:
将经过每个负载压力超标的线程池的请求按照分区进行统计,统计出该线程池中隶属于不同分区的请求的个数,并将分区按请求的个数降序排列;
判断请求个数最多的分区的请求数量是否超过该线程池的所有分区的请 求的总数的一半,
若是,对该请求个数最多的分区进行分裂操作。
5.如权利要求4所述的方法,其中,对该请求个数最多的分区进行分裂操作,包括:
将该分区分成若干个子分区,将子分区分散到其它服务器上,其中,每个子分区对应该分区的键码范围内的一个子键码范围,每个子分区隶属的请求个数基本相等。
6.如权利要求4所述的方法,其中,判断请求个数最多的分区的请求数量是否超过该线程池的所有分区的请求的总数的一半之后,还包括:
若否,在所述降序排列的分区中从第一分区开始依次选择一个或多个分区,直至未选择的剩余的分区所隶属的请求的总数小于该线程池的所有分区的请求的总数的一半;
对选择的分区进行迁移操作。
7.如权利要求6所述的方法,其中,将选择的分区进行迁移操作,包括:
将每个选择的分区迁移到没有负载压力超标的线程池的服务器上。
8.如权利要求7所述的方法,其中,将每个选择的分区迁移到没有负载压力超标的线程池的服务器上,包括:
查找符合条件的没有负载压力超标的线程池的服务器,若查找到,将该选择的分区迁移到该查找到的服务器上。
9.如权利要求8所述的方法,其中,所述符合条件的没有负载压力超标的线程池的服务器包括:
若将某个选择的分区迁移到某个没有负载压力超标的线程池的服务器的对应线程池上后,当该迁移到的目标服务器的每个对应线程池的线程平均使用率均没有超过预设使用率阈值,则该服务器为符合条件的没有负载压力超标的线程池的服务器。
10.如权利要求9所述的方法,其中,每个线程池的线程平均使用率通过如下公式(λ1+λ)*B/n获取,其中,
λ1表示在迁移前服务器上的某个线程池中的请求到达线程池的队列的速率;
λ表示待迁移到的目标服务器在迁移前其上的某个对应线程池中的请求到达线程池的队列的速率;
B表示待迁移到的目标服务器的某个对应线程池中的每个线程对一个请求的实际处理时间;
n表示待迁移到的目标服务器的某个对应线程池中的线程个数。
11.一种设备分布式存储系统的负载监控设备,其中,该设备包括:
负载监控装置,用于确定分布式存储系统中每台服务器上所有负载压力超标的线程池;
报警或负载均衡装置,用于对每个负载压力超标的线程池进行报警或负载均衡。
12.如权利要求11所述的设备,其中,所述负载监控装置,用于获取每台服务器上的每个线程池的队列中一个请求的等待时间与逗留时间的比值,所述逗留时间为每个线程池的队列中一个请求的等待时间与实际处理时间之和;当所述等待时间与逗留时间的比值超过预设超标阈值时,确定 该请求所在的服务器上的线程池的负载压力超标。
13.如权利要求12所述的设备,其中,所述预设超标阈值根据线程池的请求到达率的预设阈值确定,其中,所述线程池的请求到达率为请求到达线程池的队列的速率与该线程池的单位时间的服务能力的比值,当线程池的请求到达率超过线程池的请求到达率的预设阈值时,对应的等待时间与逗留时间的比值开始急剧上升,所述预设超标阈值超过所述开始急剧上升时等待时间与逗留时间的比值。
14.如权利要求11至13任一项所述的设备,其中,所述报警或负载均衡装置,用于将经过每个负载压力超标的线程池的请求按照分区进行统计,统计出该线程池中隶属于不同分区的请求的个数,并将分区按请求的个数降序排列;判断请求个数最多的分区的请求数量是否超过该线程池的所有分区的请求的总数的一半,若是,对该请求个数最多的分区进行分裂操作。
15.如权利要求14所述的设备,其中,所述报警或负载均衡装置,用于将该分区分成若干个子分区,将子分区分散到其它服务器上,其中,每个子分区对应该分区的键码范围内的一个子键码范围,每个子分区隶属的请求个数基本相等。
16.如权利要求14所述的设备,其中,所述报警或负载均衡装置,用于判断请求个数最多的分区的请求数量是否超过该线程池的所有分区的请求的总数的一半,若否,在所述降序排列的分区中从第一分区开始依次选择一个或多个分区,直至未选择的剩余的分区所隶属的请求的总数小于该线程池的所有分区的请求的总数的一半;对选择的分区进行迁移操作。
17.如权利要求16所述的设备,其中,所述报警或负载均衡装置,用于 将每个选择的分区迁移到没有负载压力超标的线程池的服务器上。
18.如权利要求17所述的设备,其中,所述报警或负载均衡装置,用于查找符合条件的没有负载压力超标的线程池的服务器,若查找到,将该选择的分区迁移到该查找到的服务器上。
19.如权利要求18所述的设备,其中,所述符合条件的没有负载压力超标的线程池的服务器包括:
若将某个选择的分区迁移到某个没有负载压力超标的线程池的服务器的对应线程池上后,当该迁移到的目标服务器的每个对应线程池的线程平均使用率均没有超过预设使用率阈值,则该服务器为符合条件的没有负载压力超标的线程池的服务器。
20.如权利要求19所述的设备,其中,每个线程池的线程平均使用率通过如下公式(λ1+λ)*B/n获取,其中,
λ1表示在迁移前服务器上的某个线程池中的请求到达线程池的队列的速率;
λ表示待迁移到的目标服务器在迁移前其上的某个对应线程池中的请求到达线程池的队列的速率;
B表示待迁移到的目标服务器的某个对应线程池中的每个线程对一个请求的实际处理时间;
n表示待迁移到的目标服务器的某个对应线程池中的线程个数。