Performance 如何调试生成计算机的错误设置的性能?
我们必须有规律地设置新的构建环境,而这个过程似乎并不那么简单。今天我有了一个新的构建机器,第一个Maven构建非常缓慢,我想澄清为什么性能如此糟糕。但如何做到这一点呢 我们的背景是:Performance 如何调试生成计算机的错误设置的性能?,performance,maven,build,hudson,artifactory,Performance,Maven,Build,Hudson,Artifactory,我们必须有规律地设置新的构建环境,而这个过程似乎并不那么简单。今天我有了一个新的构建机器,第一个Maven构建非常缓慢,我想澄清为什么性能如此糟糕。但如何做到这一点呢 我们的背景是: 我们使用多个构建机器,每个项目都有自己的构建机器 每个构建机器都有类似的设置,因此项目可以立即启动,而不需要进行大量配置 我们预先配置了以下工具: 哈德逊(目前为2.1.1,但将有所改变) 人工2.3.3.1 声纳 Hudson、Artifactory和Sonar都有自己的Tomcat配置 Maven 2.2.
- 我们使用多个构建机器,每个项目都有自己的构建机器
- 每个构建机器都有类似的设置,因此项目可以立即启动,而不需要进行大量配置
- 我们预先配置了以下工具:
- 哈德逊(目前为2.1.1,但将有所改变)
- 人工2.3.3.1
- 声纳
- Hudson、Artifactory和Sonar都有自己的Tomcat配置
- Maven 2.2.1和Maven 3.0.3(没有用户配置,只有安装有
)settings.xml
- Ant 1.7.1和Ant 1.8.2(此处不相关)
- Subversion 1.6客户端
如何调试这样的环境?我可以访问构建机器(如sudo)和中央存储库,但我不知道如何开始、证明什么、在哪里查找。那么,您的经验是什么,您想分享哪些技巧和窍门呢?以下是我迄今为止所做的几件事。如果您有其他建议,欢迎光临 我怀疑存储库链是邪恶的源头,所以我首先解决了这个问题。原因是:
- 本地计算机(hello world程序)上的实际构建可能以毫秒为单位,但以分钟为单位
- 网络起着重要作用,所以首先攻击它
- 对于Maven,删除本地缓存的内容。如果本地缓存已填充,则不知道是否在本地缓存或其他位置找到资源。(如果其他一切都恢复正常,至少在最后这样做。)
- 对于Artifactory,也可以找到该缓存,并通过删除其内容来清理它。它只是一个缓存,因此将以新的方式填充
- 如果使用智能浏览器测量查找,请确保您请求的内容不在浏览器的缓存中
- 否则,使用类似于
的工具请求资源wget
- 尽量减少故障源。因此,尝试将长距离的查找划分为您控制的较小部分
- 不要使用Maven进行查找,首先从Artifactory存储库开始(仅限),然后再使用Maven
https:///repo/
。期望:
- 本地查找将失败,因此必须在中心公司Artifactory的远程存储库中查找资源
- 可能的影响可能来自代理、人工查找
wget
,有一个选项——无代理
,它就可以做到这一点。期望:
- 更快的查找
https:///libs-snapshots-company/
。因此,将虚拟存储库更改为真正的远程存储库。期望:
- Artifactory知道在哪里进行查找,因此速度会快得多
https:///repo/
。期望:
- Artifactory将更快地找到存储库
所以我想我现在更好地理解了什么会出错,还有很多问题要问。请添加您的想法作为答案,您将因此获得声誉 当通过虚拟存储库引用时,Artifactory解析项目所需的时间取决于所请求的工件以及所述虚拟聚合的真实存储库。例如,当请求maven元数据时,Artifactory必须迭代所有嵌套的真实存储库,并合并它找到的所有相关元数据,这可能需要一点时间。添加一些远程存储库,从中解析需要时间;也许您的远程存储库链包括一些较慢的存储库?如前所述,远程存储库可能会延迟解析时间。要解决这个问题,你可以做以下几件事