慢流浪盒,怎么改善这个?

LEM*_*M01 6 php performance symfony vagrant

我们为我们的开发盒构建了一个流浪盒,我们面临着一些延迟问题.

问题:

  • 资产:手表很慢
  • (app_dev.php)中的整体应用程序访问速度很慢
  • 在vagrant box的共享文件夹中使用"find"命令是非常慢的

关于包装盒:

  • 在virtualbox上运行(在Mac和Linux上运行)
  • LAMP env(ubuntu)
  • 大代码库(10K +文件)
  • Symfony 2应用程序

为提高性能所做的事情:

  • 使用NTFS(使用bindfs)
  • 流浪汉配置:

config.vm.synced_folder"#{folder ['source']}","/ mnt/vagrant - #{i}",id:"#{i}",输入:'nfs',mount_options:['rw' ,'vers = 3','tcp','fsc','actimeo = 2']

  • 将缓存和日志移出共享文件夹(AppKernel更新)

我们可以清楚地看到,只要访问共享文件夹中的文件,"bindfs"进程就会占用大量的cpu.

首先是正常吗?当这些文件被访问时,我期待vagrant复制盒子上的文件.

我们可以看到盒子本身工作正常,因为当访问缓存数据(共享文件夹之外)时,事情进展得足够快,那么我该怎么做才能提高盒子性能并避免这些延迟问题呢?

Bla*_*t77 10

比赛迟到了。对于新手来说,有 2 个插件可以提高蝙蝠右侧流浪盒的速度。

流浪者

安装确保你有 Vagrant 1.4+ 并运行: vagrant plugin install vagrant-cachier

流浪更快

vagrant plugin install vagrant-faster
Run Code Online (Sandbox Code Playgroud)

我也在使用MySQL-tuner-perl,它非常适合 MySQL 微调。

我希望它有帮助

  • 如果您能简要解释一下为什么这些很好以及它们的作用,将会很有帮助 (3认同)

Nik*_*car 5

如果您这样做,您还需要不要在主机和流浪者之间共享供应商文件夹。因为读取共享文件很慢。看看这个链接。为此,您需要更改 symfony2 项目中的 composer.json 文件:

"config": {
  ...,
  "vendor-dir": "/some_new_location/vendor"
},
Run Code Online (Sandbox Code Playgroud)

并且也改变了app/autoload.php

$loader = require '/some_new_location/vendor/autoload.php';
Run Code Online (Sandbox Code Playgroud)

完成后运行composer install。

还有一些资源可供阅读:

  1. http://www.erikaheidi.com/blog/optimizing-symfony-applications-on-vagrant-boxes/
  2. http://www.whitewashing.de/2013/08/19/speedup_symfony2_on_vagrant_boxes.html
  3. Symfony2 缓慢的初始化时间


小智 0

  • 考虑允许虚拟机使用一两个额外的 CPU 核心。这可以通过 virtualbox gui 界面或使用 vagrant 配置进行控制。请参阅本页底部https://www.vagrantup.com/docs/virtualbox/configuration.html

  • 确保您的虚拟机在 SSD 驱动器上运行(如果预算可以的话)

  • 如果您在 php.ini 中启用了 xdebug 或 xdebug 分析,它会减慢 php 的速度。当在我工作的 vagrant 盒子上禁用 xdebug.remote_autostart 时,我们注意到真正的性能改进。但这确实会迫使您以不同的方式启动调试会话。