git 在我的 vagrant centos 机器上很慢
Posted
技术标签:
【中文标题】git 在我的 vagrant centos 机器上很慢【英文标题】:git is slow on my vagrant centos machine 【发布时间】:2017-07-23 21:33:12 【问题描述】:我在我的 Mac 上运行 vagrant CentOS 机器。由于某种原因,git 需要很长时间才能做出响应。例如git status
需要 2 分钟才能回复。请告知可能是什么问题。
这是我的设置
【问题讨论】:
回购有多大?git init
在新目录上需要那么长时间吗?
在您的主机上运行是否也很慢或运行git status
相同的存储库要快得多 - 您能否给出从主机到虚拟机的数量级以查看它是否真的是虚拟机的问题
该存储库位于什么类型的文件系统上?
尝试git gc
。那是很多可修剪的对象。我希望它在 gc'd 后运行得更快
在你的 git 工作目录中执行df --output=fstype .
来找出文件系统的类型。
【参考方案1】:
根据您的 cmets,您的存储库有很多松散的对象。您的存储库拥有的松散对象越多,它在横向运行您的 git 命令时执行的速度就越慢。
运行git gc
将有助于清理这些松散的文件,并且可能会使您的存储库的运行速度比目前快得多。
来自git docs...
鼓励用户在每个 存储库以保持良好的磁盘空间利用率和良好的运行 性能
【讨论】:
【参考方案2】:来自主机的 Vagrant 挂载通常比常规的来宾文件系统慢。从主机挂载的方式不同,性能也不同。
如果您将存储库从已从主机挂载的 FS 移动到未挂载的 FS,其性能应该会大大提高。
正如 cmets 中所指出的,减少 git 需要做的工作的一种方法是通过运行 git-gc 来降低松散对象的数量。作为不需要手动运行它的解决方法,您可以将gc.auto 设置为更低,例如git gc.auto 500
。默认情况下,gc.auto
设置为 6700,这比您在 cmets 中的松散对象数 2225 高得多,因此在正常的本地文件系统上,git 上游会期望它在处理这么多松散对象时运行得很快。
【讨论】:
以上是关于git 在我的 vagrant centos 机器上很慢的主要内容,如果未能解决你的问题,请参考以下文章
如何从 vagrant virtualbox 机器连接主机 PostgreSQL
无法通过 SSH 连接到 Windows 8 上的 vagrant CentOS box
Elastic:在 CentOS 上一步一步安装 Elastic Stack