php – NFS从Vagrant客户端挂起到OSX
我有一个Vagrant客户,我正在使用它在本地运行Symfony 2应用程序进行开发.一般来说这工作正常,但是,我经常发现进程锁定在’D’状态(等待I / O).
例如.我尝试运行我的单元测试:
任务启动,但永远不会退出.在进程列表中,我看到:
任务是不可杀戮的.我需要重新启动Vagrant客户,让它再次恢复.这似乎主要发生在PHP命令行应用程序中(但它也是我执行的主要命令行任务,因此它可能不相关). syslog报告挂起的任务: Aug 20 03:04:40 precise64 kernel: [ 6240.210396] INFO: task php:3279 blocked for more than 120 seconds. Aug 20 03:04:40 precise64 kernel: [ 6240.211920] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. Aug 20 03:04:40 precise64 kernel: [ 6240.212843] php D 0000000000000000 0 3279 3091 0x00000004 Aug 20 03:04:40 precise64 kernel: [ 6240.212846] ffff88007aa13c98 0000000000000082 ffff88007aa13c38 ffffffff810830df Aug 20 03:04:40 precise64 kernel: [ 6240.212849] ffff88007aa13fd8 ffff88007aa13fd8 ffff88007aa13fd8 0000000000013780 Aug 20 03:04:40 precise64 kernel: [ 6240.212851] ffff88007aa9c4d0 ffff880079e596f0 ffff88007aa13c78 ffff88007fc14040 Aug 20 03:04:40 precise64 kernel: [ 6240.212853] Call Trace: Aug 20 03:04:40 precise64 kernel: [ 6240.212859] [<ffffffff810830df>] ? queue_work+0x1f/0x30 Aug 20 03:04:40 precise64 kernel: [ 6240.212863] [<ffffffff811170e0>] ? __lock_page+0x70/0x70 Aug 20 03:04:40 precise64 kernel: [ 6240.212866] [<ffffffff8165a55f>] schedule+0x3f/0x60 Aug 20 03:04:40 precise64 kernel: [ 6240.212867] [<ffffffff8165a60f>] io_schedule+0x8f/0xd0 Aug 20 03:04:40 precise64 kernel: [ 6240.212869] [<ffffffff811170ee>] sleep_on_page+0xe/0x20 Aug 20 03:04:40 precise64 kernel: [ 6240.212871] [<ffffffff8165ae2f>] __wait_on_bit+0x5f/0x90 Aug 20 03:04:40 precise64 kernel: [ 6240.212873] [<ffffffff81117258>] wait_on_page_bit+0x78/0x80 Aug 20 03:04:40 precise64 kernel: [ 6240.212875] [<ffffffff8108af00>] ? autoremove_wake_function+0x40/0x40 Aug 20 03:04:40 precise64 kernel: [ 6240.212877] [<ffffffff8111736c>] filemap_fdatawait_range+0x10c/0x1a0 Aug 20 03:04:40 precise64 kernel: [ 6240.212882] [<ffffffff81122a01>] ? do_writepages+0x21/0x40 Aug 20 03:04:40 precise64 kernel: [ 6240.212884] [<ffffffff81118da8>] filemap_write_and_wait_range+0x68/0x80 Aug 20 03:04:40 precise64 kernel: [ 6240.212892] [<ffffffffa01269fe>] nfs_file_fsync+0x5e/0x130 [nfs] Aug 20 03:04:40 precise64 kernel: [ 6240.212896] [<ffffffff811a632b>] vfs_fsync+0x2b/0x40 Aug 20 03:04:40 precise64 kernel: [ 6240.212900] [<ffffffffa01272c3>] nfs_file_flush+0x53/0x80 [nfs] Aug 20 03:04:40 precise64 kernel: [ 6240.212903] [<ffffffff81175d6f>] filp_close+0x3f/0x90 Aug 20 03:04:40 precise64 kernel: [ 6240.212905] [<ffffffff81175e72>] sys_close+0xb2/0x120 Aug 20 03:04:40 precise64 kernel: [ 6240.212907] [<ffffffff81664a82>] system_call_fastpath+0x16/0x1b` 要配置该框,我将使用以下方式共享本地文件夹:
Vagrant在OSX主机上创建以下/ etc / exports文件: # VAGRANT-BEGIN: c7d0c56a-a126-46f5-a293-605bf554bc9a "/Users/djdrey-local/Sites/oddswop.dev" 192.168.33.101 -mapall=501:20 # VAGRANT-END: c7d0c56a-a126-46f5-a293-605bf554bc9a 流浪客人的nfsstat输出 Server rpc stats: calls badcalls badclnt badauth xdrcall 0 0 0 0 0 Client rpc stats: calls retrans authrefrsh 87751 0 87751 Client nfs v3: null getattr setattr lookup access readlink 0 0% 35018 39% 1110 1% 8756 9% 19086 21% 0 0% read write create mkdir symlink mknod 5100 5% 7059 8% 4603 5% 192 0% 0 0% 0 0% remove rmdir rename link readdir readdirplus 4962 5% 262 0% 313 0% 0 0% 0 0% 1056 1% fsstat fsinfo pathconf commit 1 0% 2 0% 1 0% 229 0% 我确保使用插件:guestrant添加的访客添加内容是最新的:vagrant-vbguest 我不知道如何调试这个.我很清楚这是guest虚拟机和Mac OSX主机之间的NFS问题.如果我使用NFS Manager在OSX上尝试启动NFS的调试日志记录,我会在OSX中遇到内核恐慌. 有没有其他人有类似的问题?任何有关前进道路的建议都将受到赞赏 – 因为每天多次为客人提供电力循环是不可行的. 环境 > OSX 10.8.4 解决方法
在共享的nfs文件夹中运行npm install时遇到了类似的问题,随后发现禁用nfs_udp修复了悬挂问题:
config.vm.synced_folder ".","/vagrant",type: "nfs",nfs_udp: false (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |