Tal*_*Tal 10 arch-linux vmware btrfs freeze
我在这台机器上运行 Arch:
3.40GHz i7 六核 (4930K)
16GB DDR3 1600MHz 内存
Raid0 中的 2 个三星 840 EVO SSD(使用 BTRFS raid)
当我在我的 Arch 上使用几个虚拟机(2 或 3 个)运行 VMware 时,每个虚拟机大约有 2-4 个内核,每个内核有 2GB 内存,我的系统开始随机冻结。每隔几分钟,系统就会冻结 10 到 30 秒,然后再次开始移动,仅在 30 秒后冻结,直到我关闭虚拟机。当系统冻结时,鼠标仍然可以正常移动,但主机上的应用程序停止响应 - vmware 没有响应,firefox(也在主机上打开)没有响应,等等。
当冻结发生时,如果我正在运行进程监视器,它确实会显示 vmware 使几个内核最大化,但同时,还有其他未使用的内核。我也有足够多的内存——虚拟机总共使用了 6GB,主机还剩下 10GB。我有 0 个交换空间,因此交换不会减慢任何速度。
有报道称,由于 btrfs 导致文件系统级别的文件碎片化,虚拟机可能运行缓慢。然而,据我所知,碎片只是传统硬盘上的一个问题 - SSD 没有可搜索的读头,所以他们不在乎文件是否高度碎片化。
这在我运行 Debian 7 时从未发生过,所以我很确定这不是硬件问题。
我可以运行哪些工具来找出为什么我的系统一直死机?我已经尝试过 top/htop 和 iotop(当系统冻结时,没有过多的写入或读取)。btrfs 似乎没有任何类型的活动监视器来判断它是否在跟上写入/读取任何内容时遇到问题。还有什么我可以尝试的吗?
Ant*_*hon 15
从 btrfs陷阱页面:
具有大量随机写入的文件可能会变得严重碎片化(10000 多个盘区),从而导致 HDD 上的垃圾以及具有 SSD 或大量 RAM 的系统上的 CPU 负载数秒的过多峰值。
在服务器和工作站上,这会影响数据库和虚拟机映像。
- nodatacow 挂载选项可能在这里有用,并带有相关的陷阱。
...
- 症状包括 btrfs-transacti 和 btrfs-endio-wri 占用了大量 CPU 时间(峰值,可能由同步触发)。您可以使用 filefrag 来定位严重碎片化的文件(在压缩时可能无法正常工作)。
我遇到了与您在 Virtualbox 中描述的类似的问题。nodatacowbtrfs的选项对我的系统没有显着帮助。我也尝试了自动碎片整理选项(提到作为桌面环境中应用程序数据库的可能解决方案),也没有使行为可接受的结果。
最后我缩小了我的 btrfs 分区和它所在的逻辑卷,我创建了一个新的 LV 并将其格式化为 ext4,然后将我拥有的 VM 磁盘映像(VirtualBox)放在该“分区”上。