Хорошо, проблема решена.
В локальной среде разработки с использованием Docker 1.10 с драйвером VirtualBox и томом, смонтированным на хост-системе (это будет Boot2Docker VM и OSX), производительность невероятно горькая, как описано выше 300ms - 600ms
.
Используйте ту же конфигурацию без смонтированных томов 20ms - 30ms
время ответа. Мое предположение заключается в том, что, поскольку Laravel имеет интенсивный дисковый ввод-вывод из-за большого количества файлов, которые он загружает для каждого запроса, это зависит от того, как VirtualBox совместно использует папки между хостом и виртуальной машиной.
Проблема не является докером или Laravel, его проблемой VM VirtualBox.
ОБНОВЛЕНИЕ:
Сравнивая различные среды в докер
Примечание: ниже указаны без artisan optimize --force
или artisan config:cache
- HHVM 13 мс - 31ms (TCP-порт 9000)
- HHVM 12 мс - 22 мс (гнездо Unix)
- PHP-7 FPM 42ms - 73ms (TCP-порт 9000)
- PHP-7 FPM 38ms - 55ms (Unix сокет)
WOW ...!
HHVM with artisan optimisations + unix sockets: 8ms - 12ms
PHP-7 FPM с ремесленными оптимизаций + UNIX сокеты: 38ms - 42ms
Взгляните на HHVM с оптимизацией и Unix сокетов. Это очень быстро.
VirtualBox на OSX * безумно * медленный для подключенных хостов, если вы не используете для них NFS. Не знаю, почему, но жизнь была намного лучше, когда я понял это. – ceejayoz
как вы это устанавливаете? с Boot2Docker? – AndrewMcLagan
Я использую Vagrant + Virtualbox, а не Docker. 'config.vm.synced_folder". ","/srv/web ", введите:" nfs ",: mount_options => ['nolock, vers = 3, udp, noatime, actimeo = 1']' в моем файле Vagrant трюк, но я понятия не имею о Boot2Docker для передачи данных в Virtualbox. – ceejayoz