一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

系统优化方法及装置与流程

2022-04-16 15:11:04 来源:中国专利 TAG:


1.本公开涉及电子信息技术领域,尤其涉及系统优化方法及装置。


背景技术:

2.随着云计算的普及,openstack云计算平台的应用也越来越广泛。与之相关的性能问题,也就越来越受到关注,现有技术中在对openstack云计算平台的优化处理时,通过某一项单独的优化,无法实现系统整体性能优化的效果。


技术实现要素:

3.本公开实施例提供一种系统优化方法及装置,能够解决在openstack云计算平台中优化效率低的问题。所述技术方案如下:
4.根据本公开实施例的第一方面,提供一种系统优化方法,该方法包括:
5.加载openstack系统中的目标插件,该目标插件包括:镜像缓存插件、镜像转换插件、cpu管理插件、算法插件、依赖项插件、文件句柄插件、调用命令插件、网络接入插件,该目标插件的数量为m,该目标插件是指与openstack系统优化处理相匹配的插件;
6.根据预设检测规则,激活检测接口,检测该目标插件中第n个插件,并获取检测结果,该n大于等于1小于等于m,预设检测规则至少根据openstack系统中从系统层至应用层中各个层级配合的优化逻辑生成;
7.当检测结果指示该第n个插件需要优化时,根据该目标插件相匹配的优化处理规则,优化该目标插件,并检测第n 1个插件,直至所有m个插件均完成优化处理,以使得openstack系统优化。
8.在一个实施例中,该方法中当该第n个插件为镜像缓存插件时,该方法还包括:
9.解析该镜像缓存插件,检查该系统中是否已存储主动缓冲程序;
10.当检测到系统中已存储主动缓冲程序时,确定目标插件无需优化,并检测第n 1个插件;
11.当未在系统中检测到存储主动缓冲程序时,则确定检测结果为该第n个插件需要优化;
12.当检测结果指示该第n个插件需要优化时,获取主动缓冲程序的文件地址;
13.根据该文件地址,获取主动缓冲程序,并在目标存储地址存储该程序,完成第n个插件的优化处理。
14.在一个实施例中,该方法中当该第n个插件为镜像转换插件时,该方法还包括:
15.解析该镜像缓存插件,获取计算节点的配置文件;
16.检测该配置文件中的转换参数是否为真;
17.当该转换参数为假,确定目标插件无需优化,并检测第n 1个插件;
18.当该转换参数为真,则确定检测结果为该第n个插件需要优化;
19.当检测结果指示该第n个插件需要优化时,设置转换参数为假,完成第n个插件的
优化处理。
20.在一个实施例中,该方法中当该第n个插件为cpu管理插件时,该方法还包括:
21.解析该cpu管理插件,获取该系统的cpu频率模式,并检测该cpu频率模式;
22.当该cpu频率模式不是节能模式时,确定第n个插件无需优化,并检测第n 1个插件;
23.当该cpu频率模式是节能模式时,则确定检测结果为该第n个插件需要优化;
24.当检测结果指示该第n个插件需要优化时,根据该方法所支持的模式,设置该cpu的频率模式,完成第n个插件的优化处理。
25.在一个实施例中,该方法中当该第n个插件为算法插件时,该方法还包括:
26.解析该算法插件的配置文件,获取密码轮数值;
27.根据该密码轮数值和密码哈希函数,获取实际密码测算时间;
28.当该实际密码测算实际小于预设测算时间时,确定该第n个插件无需优化,并检测第n 1个插件;
29.当该实际密码测算实际大于或者等于预设测算时间时,则确定检测结果为该第n个插件需要优化;
30.当检测结果指示该第n个插件需要优化时,根据密码哈希函数和测算规则,测算目标密码轮数值,并根据该目标密码轮数值,修改配置文件中的密码轮数值。
31.在一个实施例中,该方法中当该第n个插件为依赖项插件时,该方法还包括:
32.解析该依赖项插件,获取该系统中依赖项的版本信息;
33.若该依赖项的版本信息符合预设参数,则确定第n个插件无需优化,并检测第n 1个插件;
34.当该依赖项的版本信息不符合预设参数,则确定检测结果为该第n个插件需要优化;
35.当检测结果指示该第n个插件需要优化时,则根据预设升级规则,升级依赖项的版本信息,完成第n个插件的优化处理。
36.在一个实施例中,该方法中当该第n个插件为文件句柄插件时,该方法还包括:
37.根据预设检测程序,读取当前系统文件中设置的句柄数量,判断该句柄数量是否设置与预设经验值相匹配;
38.若句柄数量与预设经验值相匹配,则确定目标插件无需优化,并检测第n 1个插件;
39.当该依赖项的参数信息不符合预设参数,则确定检测结果为该第n个插件需要优化;
40.当检测结果指示该第n个插件需要优化时,则设置依赖项的参数信息,完成第n个插件的优化处理。
41.在一个实施例中,该方法中当该第n个插件为调用命令插件时,该方法还包括:
42.根据预设检测程序,单独运行openstack的外部命令调用模块,并执行外部命令,获取执行命令的运行时间;
43.当执行命令的运行时间未超过预设运行时间,则确定该第n个插件无需优化,并检测第n 1个插件;
44.当执行命令的运行时间超过预设运行时间,则确定检测结果为该第n个插件需要优化;
45.当检测结果指示该第n个插件需要优化时,则外部命令调用模块增加补丁程序,以使得进程内文件句柄数量为预设经验值,完成该插件的优化。
46.在一个实施例中,该方法中当该第n个插件为网络接入插件时,该方法还包括:
47.根据预设检测程序,检测neutron配置文件中的超时时间是否超过预设值,该超时时间是指方法处理超时异常的时间;
48.若检测neutron配置文件中的超时时间未超过预设值,则确定目标插件无需优化,并检测第n 1个插件;
49.若检测neutron配置文件中的超时时间超过预设值,则确定检测结果为该第n个插件需要优化;
50.当检测结果指示该第n个插件需要优化时,则修改超时时间参数为预设值,完成该插件的优化。
51.本方法通过加载openstack系统中的目标插件,并逐项对目标插件进行检测并优化,实现openstack系统的优化。
52.根据本公开实施例的第二方面,提供一种计算机可读存储介质,该存储介质中存储有至少一条计算机指令,该指令由处理器加载并执行以实现本公开实施例第一方面所提及的方法。
53.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
54.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
55.图1是本公开实施例提供的一种系统优化方法的流程图;
56.图2是本公开实施例提供的一种系统优化方法的逻辑结构示意图。
具体实施方式
57.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
58.本公开实施例提供一种数据传输方法,如图1所示,该方法包括:
59.101、加载openstack系统中的目标插件。
60.本公开所述方法中的目标插件是基于实践中的系统优化处理过程,在多个插件中确定的插件,该目标插件与openstack系统的优化相匹配,通过逐层优化完毕目标插件能够实现系统的整体优化。
61.该目标插件包括:镜像缓存插件、镜像转换插件、cpu管理插件、认证插件、依赖项插件、文件句柄插件、调用命令插件、网络接入插件,该目标插件的数量为m。
62.本公开所提及的方法可以是基于python语言(但不限于python语言)的动态加载特性,动态加载各个优化点插件的可执行文件,并执行插件各个功能部分的函数。
63.102、根据预设检测规则,激活检测接口,检测该目标插件中第n个插件,并获取检测结果,该n大于等于1小于等于m。
64.具体的,预设检测规则至少可以根据所述openstack系统中从系统层至应用层中各个层级配合的优化逻辑生成。
65.本公开所提供的方法会根据不同插件的种类,从系统层至应用层中各个层级依次进行检测,从而能够完成系统的优化。
66.如图2所示的逻辑示意图,此处阐述本公开所公开方法中的数据处理过程包括以下步骤:
67.步骤一:激活系统,获取目标插件
68.步骤二、根据优化规则,依次检测每个目标插件。
69.步骤三、当确定检测第n个插件时,确定插件相匹配的存储位置,读取各个插件的可执行文件到内存中,解析为可执行对象。
70.步骤四、根据目标插件的可执行对象,确定该目标插件相匹配的检测接口,并通过该检测接口和该目标插件相匹配的测试规则,检测该目标插件是否需要优化。
71.步骤五、当确定该目标插件需要优化时,通过优化规则对该目标插件进行优化;
72.当确定该目标插件不需要优化时,则继续检测第n 1个目标插件,直至所有的目标插件完成检测。
73.103、当检测结果指示该第n个插件需要优化时,根据该目标插件相匹配的优化处理规则,优化该目标插件,并检测第n 1个插件,直至所有m个插件均完成优化处理,以使得openstack系统优化。
74.本公开所提供的方法中从系统到应用、到http请求等各个方面的优化点,通过系统的整体的检测与优化处理,能有效优化openstack整体性能。
75.本公开所提供的方法中,当该第n个插件为镜像缓存插件时,该检测、优化步骤包括:
76.解析该镜像缓存插件,检查该系统中是否已存储主动缓冲程序;
77.当检测到系统中已存储主动缓冲程序时,确定目标插件无需优化,并检测第n 1个插件;
78.当未在系统中检测到存储主动缓冲程序时,则确定检测结果为该第n个插件需要优化;
79.当检测结果指示该第n个插件需要优化时,获取主动缓冲程序的文件地址;
80.根据该文件地址,获取主动缓冲程序,并在目标存储地址存储该程序,完成第n个插件的优化处理。
81.本公开所提供的方法中,当该第n个插件为镜像转换插件时,该检测、优化步骤包括:
82.解析该镜像缓存插件,获取计算节点的配置文件;
83.检测该配置文件中的转换参数是否为真;
84.当该转换参数为假,确定目标插件无需优化,并检测第n 1个插件;
85.当该转换参数为真,则确定检测结果为该第n个插件需要优化;
86.当检测结果指示该第n个插件需要优化时,设置转换参数为假,完成第n个插件的优化处理。
87.本公开所提供的方法中,当该第n个插件为cpu管理插件时,该检测、优化步骤包括:
88.解析该cpu管理插件,获取该系统的cpu频率模式,并检测该cpu频率模式;
89.当该cpu频率模式为节能模式时,确定该第n个插件无需优化,并检测第n 1个插件;
90.当该cpu频率模式不是节能模式时,则确定检测结果为该第n个插件需要优化;
91.当检测结果指示该第n个插件需要优化时,根据该方法所支持的模式,设置该cpu的频率模式,完成第n个插件的优化处理。
92.本公开所提供的方法中,当该第n个插件为算法插件时,该检测、优化步骤包括:
93.解析该算法插件的配置文件,获取密码轮数值;
94.根据该密码轮数值和密码哈希函数,获取实际密码测算时间;
95.当该实际密码测算实际小于预设测算时间时,确定该第n个插件无需优化,并检测第n 1个插件;
96.当该实际密码测算实际大于或者等于预设测算时间时,则确定检测结果为该第n个插件需要优化;
97.当检测结果指示该第n个插件需要优化时,根据密码哈希函数和测算规则,测算目标密码轮数值,并根据该目标密码论数值,修改配置文件中的密码轮数值。
98.本公开所提供的方法中,当该第n个插件为依赖项插件时,该检测、优化步骤还包括:
99.解析该依赖项插件,获取该系统中依赖项的版本信息;
100.若该依赖项的版本信息符合版本参数,则确定第n个插件无需优化,并检测第n 1个插件;
101.当该依赖项的版本信息不符合版本参数,则确定检测结果为该第n个插件需要优化;
102.当检测结果指示该第n个插件需要优化时,则根据预设升级规则,升级依赖项的版本,完成第n个插件的优化处理。
103.本公开所提供的方法中,当该第n个插件为文件句柄插件时,该检测、优化步骤包括:
104.根据预设检测程序,读取当前系统文件中设置的句柄数量,判断该句柄数量是否设置与预设经验值相匹配;
105.若句柄数量与预设经验值相匹配,则确定目标插件无需优化,并检测第n 1个插件;
106.当该依赖项的参数信息不符合预设参数,则确定检测结果为该第n个插件需要优化;
107.当检测结果指示该第n个插件需要优化时,则设置依赖项的参数信息,完成第n个插件的优化处理。
108.本公开所提供的方法中,当该第n个插件为调用命令插件时,该检测、优化步骤还包括:
109.根据预设检测程序,单独运行openstack的外部命令调用模块,并执行外部命令,获取执行命令的运行时间;
110.当执行命令的运行时间未超过预设运行时间,则确定该第n个插件无需优化,并检测第n 1个插件;
111.当执行命令的运行时间超过预设运行时间,则确定检测结果为该第n个插件需要优化;
112.当检测结果指示该第n个插件需要优化时,则外部命令调用模块增加补丁程序,以使得进程内文件句柄数量为预设经验值,完成该插件的优化。
113.本公开所提供的方法中,当该第n个插件为网络接入插件时,该检测、优化步骤还包括:
114.根据预设检测程序,检测neutron配置文件中的超时时间是否超过预设值,该超时时间是指方法处理超时异常的时间;
115.若检测neutron配置文件中的超时时间未超过预设值,则确定目标插件无需优化,并检测第n 1个插件;
116.若检测neutron配置文件中的超时时间超过预设值,则确定检测结果为该第n个插件需要优化;
117.当检测结果指示该第n个插件需要优化时,则修改超时时间参数为预设值,完成该插件的优化。
118.此处针对于本公开所提及的系统,现根据不同插件,具体阐述如何进行优化处理:
119.示例一:计算节点的镜像缓存优化
120.本公开通过添加主动缓冲程序,节省实例启动时的镜像下载时间。其逻辑流程如下:
121.步骤一:检测处理:检查操作系统中是否已经存在该主动缓冲程序,
122.如不存在,返回真;否则返回假。
123.步骤二:当确定系统存在主动缓冲程序时,则继续优化下一个插件;
124.当确定系统未存在主动缓冲程序时,则系统返回主动缓冲程序的文件地址。
125.此地址可以由预设程序编码指定,也可以由用户进行确认。
126.步骤三:将主动缓冲程序,复制文件到指定位置,并添加到系统服务或周期执行工具,如crontab程序,命令上述程序以周期性执行此程序。
127.具体的,周期可以是每天或者每周。其中主动缓冲程序步骤如下:
128.本公开在对缓存优化处理中,通过添加主动缓冲子程序节省镜像下载时间,从而优化了系统。
129.示例二:计算节点的镜像转换优化。
130.本公开通过允许各种类型的镜像做后端,不使用转换,节省了转化时间,提高效率,其逻辑流程如下:
131.步骤一:根据预设检测程序,检测计算节点的配置文件里镜像转换参数值是否为预设值,如检测配置文件里的force_raw_images,是否设置为true。
132.步骤二:镜像转换参数值是预设值时,则继续优化下一个插件;
133.当镜像转换参数值不是预设值时,返回值为真,修改镜像转换参数值,完成该插件的优化处理。
134.如:将计算节点的配置文件里force_raw_images设置为false。
135.本公开在对节点的镜像转换优化处理中,通过允许各种类型的镜像做后端,兼容不同格式的镜像,避免了系统在使用镜像时的类型转换,节省了转化时间,提高效率,从而优化了系统。
136.示例三、cpu管理优化。
137.本公开通过运行计算密集型算法,检查cpu计算速度。通过调整cpu频率设置,提高计算速度。其逻辑流程如下:
138.步骤一:根据预设检测程序,获取当前系统的cpu频率模式设置,判断其是否是节能模式。
139.步骤二:当确定cpu频率模式设置不是节能模式时,则继续优化下一个插件;
140.当确定cpu频率模式设置是节能模式时,获取当前系统支持的频率模式
141.步骤三:根据系统支持的频率模式,修改当前系统的cpu频率模式为上述模式,优先选择ondemand模式,其次是performance模式,并返回模式名称。。
142.上述的ondemand模式,是指的是平时以低速方式运行,当系统负载提高时候自动提高频率。以这种模式运行不会因为降频造成性能降低,同时也能节约电能和降低温度。
143.上述的performance模式,是指满速运行,即使系统负载非常低cpu的频率也为最高。则性能很好,但是电量消耗较快,温度也高一些。
144.上述的userspac模式,是应该是指用户指定居中的频率运行。
145.本公开在对算法效率优化处理中,通过运行认证密码效率检测子程序,通过调整密码轮数,平衡cpu消耗与安全性,同时通过使用网格法测试出系统所能支持的最佳运算速度,从而优化了系统。
146.示例四、认证算法效率优化。
147.本公开通过调整认证算法中的密码轮数,平衡cpu消耗与安全性。其逻辑流程如下:
148.步骤一、根据预设检测程序,从keystone配置文件获取密码轮数参数。根据该参数,运行keystone密码哈希函数,并测算实际运行时间。
149.步骤二、判断实际运行时间是否大于预设运行时间;
150.若实际运行时间大于预设时间,则返回真;
151.若实际运行时间小于等于预设时间,则返回假,继续优化下一个插件;
152.如,耗时大于经验值0.05s,则返回真。
153.步骤三:当确定返回值为真时,根据预设计算规则,重新计算运行实际,直至时间运行实际小于预设运行实际,获取此时的轮数值。
154.此处列举具体示例:从20到4逆序,作为轮数,传入keystone密码哈希函数,计算时间。如果时间低于0.05s,中断循环,并返回此轮数值。如未找到,选择4。返回此轮数。
155.步骤四、根据该轮数值设置系统的认证算法中的密码轮数,完成该插件的优化。
156.即,将keystone配置文件里密码轮数参数设置为上述轮数值。通过修改为相同密
码的方式,更新已有密码为新的轮数。
157.本公开在cpu管理优化处理中,通过运行计算密集型算法,检查cpu计算速度。通过调整cpu频率设置,提高计算速度,从而优化了系统。
158.示例五、检测与更新低效率依赖项。
159.本公开运行各个可能低效依赖项的速度检测程序,检测低效依赖项,更新到高效版本。其逻辑流程如下:
160.步骤一、根据预设检测程序,对系统运行时各个需要更新的依赖中检测版本信息。
161.例如,在python系统中检测依赖中setuptools的版本号是否小于44.1.1,pip是否小于20.3.4。
162.步骤二、若该版本号符合预设要求,则继续优化下一个插件。
163.若该版本号不符合预设要求,则修改依赖版本信息,从而完成该插件的优化。
164.例如,对各个需要更新的依赖中,进行更新。更新setuptools大于等于第一阈值,pip大于等于第二阈值。
165.上述优化的依赖项是根据实践部署中的测试确定的。
166.本公开在检测与更新低效率依赖项的处理中,通过运行各个可能低效依赖项的速度检测程序,检测低效依赖项,更新到高效版本,从而优化了系统。
167.示例六、系统文件句柄数量优化。
168.本公开通过修改系统的文件句柄数量,以达到大量请求优化的目的。其逻辑流程如下:
169.步骤一、根据预设检测程序,读取当前系统文件中设置的句柄数量,判断是否设置的句柄数量与预设经验值相匹配:
170.例如,判断系统中的fs.file-max、soft nofile、hard nofile、mysql hard nofile中的句柄数量。
171.步骤二、若设置的句柄数量与预设经验值相匹配,则继续优化下一个插件。
172.若未设置的句柄数量,则程序编码中读取预设经验值。
173.步骤三、根据预设经验值,修改当前系统文件句柄数量,完成该插件的优化处理。
174.本公开在文件句柄数量优化处理的过程中,通过运行句柄数量检测子程序,网格法寻找更高效的文件句柄上限。既能运行更大的文件句柄数量,又能兼顾性能,从而优化了系统。
175.示例七、openstack调用系统命令效率优化。
176.本公开通过运行openstack命令调用程序效率检测子程序,给低效率的命令执行模块打补丁。其逻辑流程如下:
177.步骤一、根据预设检测程序,单独运行openstack的外部命令调用模块执行外部命令ls,记录其实际运行时间。
178.判断该实际运行时间是否超过预设运行时间,如,实际运行时间大于预设运行时间。则返回真。
179.其中,外部命令调用模块包括nova-rootwrap、privsep-helper、neutron-rootwrap等;
180.步骤二、若运行实际运行时间未超过预设运行时间,则检测下一个插件。
181.若运行实际运行时间超过预设运行时间,则为外部命令调用模块增加补丁程序,设置进程内文件句柄数量为预设经验值,并在头部文件中增加该补丁程序。
182.如,在文件头部增加:
183.import resource;
184.resource.setrlimit(resource.rlimit_nofile,(x,y);
185.其中,x和y的值可以根据具体调试结果配置。
186.本公开在openstack调用系统命令效率优化过程中,通过运行openstack命令调用程序效率检测子程序,给低效率的命令执行模块打补丁改代码,从而优化了系统。
187.示例八
188.本公开通过调整网络接入参数,优化neutron网络接入效率。其逻辑流程如下:
189.步骤一、根据预设检测程序,检测neutron配置文件的超时时间参数是否超过预设值。
190.具体的,如,检测vif_plugging_timeout是否是大于0。处理超时异常vif_plugging_is_fatal是否是真。
191.在nova-compute配置文件中有两个与该事件相关的参数-vif_plugging_timeout、vif_plugging_if_fatal,前者是等待事件的最大时间,后者是处理超时异常的方式。
192.步骤二、若检测neutron配置文件超时时间参数未超过预设值,则检测下一个插件。
193.若检测neutron配置文件超时时间参数超过预设值,则修改配置文件,完成该插件的优化。
194.具体的,修改neutron配置文件超时时间参数vif_plugging_timeout等于0。
195.处理超时异常时,该vif_plugging_is_fatal为false。
196.本公开在网络接入效率优化过程中,通过运行网络接入效率检测子程序,计算出与系统性能相匹配的执行命令时间,设置参数并调整设置参数;最后通过在系统运行补丁代码,提高了网络接入时间的降低,实现了从而优化了系统。
197.本公开所提供的系统通过多个插件的检测与优化处理,从系统到请求的全链路各项优化点互相促进,例如,本公开对openstack的外部命令调用模块效率优化,并基于子程序运行效率计算的,对openstack整体进行自动检测并优化,能够大幅提高系统运行的效率。
198.在实际部署过程中,经过实验测试,采取本公开优化过的虚拟机系统相较于未优化处理的系统至少包括以下优化项:系统启动速度提升10倍左右,请求速度提升5倍左右。虚拟机启动时间,在最初的30-90s,平局65s,提升到了0.3-10s,平均7s左右;系统响应请求的速度,从1.2-2s左右,平均1.9s,提升到了平均0.3s左右。
199.本公开示例提供的数据传输系统,通过加载openstack系统中的目标插件,并逐项对目标插件进行检测并优化,实现openstack系统的优化。
200.基于上述图1及图2对应的示例中所描述的系统优化方法,本公开示例还提供一种计算机可读存储介质,例如,非临时性计算机可读存储介质可以是只读存储器(英文:read only memory,rom)、随机存取存储器(英文:random access memory,ram)、cd-rom、磁带、软
盘和光数据存储装置等。该存储介质上存储有计算机指令,用于执行上述图1及图2对应的示例中所描述的系统优化方法,此处不再赘述。
201.本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和示例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献