Php 慢流浪箱,如何改善这一点?
我们已经为我们的开发箱构建了一个流浪箱,我们面临一些延迟问题 问题:Php 慢流浪箱,如何改善这一点?,php,performance,symfony,vagrant,Php,Performance,Symfony,Vagrant,我们已经为我们的开发箱构建了一个流浪箱,我们面临一些延迟问题 问题: 阿塞提克:手表慢了 (app_dev.php)中的整体应用程序访问速度较慢 在“漫游”框的共享文件夹中使用“查找”命令速度非常慢 关于盒子: 在virtualbox上运行(在Mac和Linux上运行) 灯环境(ubuntu) 大代码库(10K+文件) Symfony 2应用程序 改进性能的措施: NTFS的使用(使用bindfs) 流浪汉: config.vm.synced_文件夹“#{folder['source
- 阿塞提克:手表慢了
- (app_dev.php)中的整体应用程序访问速度较慢
- 在“漫游”框的共享文件夹中使用“查找”命令速度非常慢
- 在virtualbox上运行(在Mac和Linux上运行)
- 灯环境(ubuntu)
- 大代码库(10K+文件)
- Symfony 2应用程序
- NTFS的使用(使用bindfs)
- 流浪汉:
- 将缓存和日志移出共享文件夹(AppKernel更新)
- 考虑允许VM使用一个或两个额外的CPU核心。这可以通过virtualbox gui界面或使用vagrant配置进行控制。见本页底部
- 确保您的虚拟机在SSD驱动器上运行(如果预算允许的话)
- 如果在php.ini中启用了xdebug或xdebug评测,则会降低php的速度。在我工作的“流浪者”对话框上禁用xdebug.remote_autostart时,我们注意到了真正的性能改进。但这确实会迫使您以不同的方式开始调试会话
"config": {
...,
"vendor-dir": "/some_new_location/vendor"
},
还可以更改app/autoload.php
$loader = require '/some_new_location/vendor/autoload.php';
完成此操作后,运行composer安装
还有一些阅读资源:
如果使用Phpstorm,则可以使用Deployment模块将文件从基本计算机同步到虚拟计算机
然后,本地计算机上的每个更改都会将文件上载到虚拟机。这会提高你的表现。我尝试了很多解决方案,但每一个都不足以解决我的问题。移开缓存文件夹,取消共享供应商文件夹 使用NFS时,在共享目录中创建大量文件的速度非常慢。作为解决办法 -将vagrant vendor文件夹更改为非共享文件夹
"config": {
"bin-dir": "bin",
"secure-http" : false,
"vendor-dir" : "/vendor"
},
-在应用程序文件夹中创建符号链接,因为构建过程的某些部分可能通过相对链接引用供应商/bin目录
project-dir$ sudo ln -s /vendor vendor
- 做composer安装,这会快得多
- Zip/vendor文件夹并将Zip复制到NFS共享项目文件夹中
- 通过主机提取zip文件
- 再次运行composer安装以确保其不会再次下载文件
Vagrant插件安装Vagrant cachier
我也在使用它,这对于MySQL的微调是非常好的
我希望它对测试有帮助,您可以尝试在不使用共享文件夹的自动同步选项的情况下启动vagrant,例如:
config.vm.synced_folder "./", "/home/vagrant/APP/", disabled: true
现在你将体验流浪者(网络应用)的最高速度,一切都应该至少快两倍。但是现在主机和虚拟机之间没有同步
现在您只需添加特定文件夹“未禁用:true”,其中正在进行开发“src”、“public”、“tests”等。现在,速度应该与第一次测试非常相似,例如:
config.vm.synced_folder "./src", "/home/vagrant/APP/src", disabled: true
config.vm.synced_folder "./public", "/home/vagrant/APP/public", disabled: true
包含许多文件的文件夹,如“.git”,“供应商”,“节点模块”,等等,确实会降低性能
我的phpunit测试在优化之前持续了12分钟,在优化之后持续了4.5分钟(win主机)
享受
以下是我的宅地配置(laravel),仅供参考:
对于任何谷歌人来说: 在.env文件中
CACHE_DRIVER=memcached
(而不是缓存\驱动程序=阵列)
这些问题主要与VirtualBox中使用的默认文件系统vbfs的性能缓慢有关。根据我的经验,在继续测试NFS之前,加快速度的最佳方法是更新虚拟机中的来宾添加。最简单的方法是使用
vagrant vbguest
插件,它将在后台更新GA。我的汇编速度提高了三倍
要在Vagrant中使用该文件,请编辑该文件并将其添加到开头:
#注意:自动安装vagrant插件
所需插件=%w(vagrant vbguest)
plugins_to_install=必需的_plugins.select{| plugin | not Vagrant.has_plugin?plugin}
如果没有插件,请安装为空?
将“安装插件:{plugins_to_install.join(“”)}”
如果系统“vagrant plugin install#{plugins_to_install.join(“”)}”
执行“流浪者”{ARGV.join(“”)}
其他的
“中止”一个或多个插件的安装失败。正在中止
结束
结束
这个问题与PHP本身无关,更不用说Symfony了。我认为它属于超级用户。你也可以使用它来缓存VMI中的供应商文件夹。将缓存和日志目录移动到ramdisk非常成功将日志和缓存移动到ramdisk非常有帮助,但在app_dev中工作时,你不会访问缓存文件,因此在本例中
folders:
- map: "./"
to: "/home/vagrant/APP"
type: "nfs"
options:
disabled: true
- map: "./app"
to: "/home/vagrant/APP/app"
type: "nfs"
- map: "./resources"
to: "/home/vagrant/APP/resources"
type: "nfs"
- map: "./routes"
to: "/home/vagrant/APP/routes"
type: "nfs"
- map: "./tests"
to: "/home/vagrant/APP/tests"
type: "nfs"
- map: "./public"
to: "/home/vagrant/APP/public"
type: "nfs"
CACHE_DRIVER=memcached