Это старая ошибка в VirtualBox (см .: # 819 , # 9069 , # 12597 , # 14920 ), где vboxvfs Кажется, есть некоторые проблемы с mmapped доступом к файлам, которые синхронизируются.
Это может произойти, когда вы редактируете файл вне виртуальной машины, и вы ожидаете увидеть такое же изменение внутри виртуальной машины.
Чтобы обойти эту проблему, вам необходимо отключить поддержку sendfile ядра для доставки файлов клиенту, отключив параметр EnableSendfile
, либо в httpd.conf
, либо в файле vhosts, например,
<Directory "/path-to-nfs-files">
EnableSendfile Off
</Directory>
Это особенно неприятно для смонтированных файлов NFS или SMB. После изменения перезагрузите Apache.
Аналогично для Nginx
(в nginx.conf
), например,
sendfile off;
Другим обходным решением является не редактировать файлы на хосте или пытаться повторно редактировать тот же файл, но внутри ВМ.
Другой обходной путь включает удаление кэша страниц Linux, например,
echo 1 > /proc/sys/vm/drop_caches
Или очищать кеши каждую секунду (согласно этой записи ), попробуйте:
watch -n 1 $(sync; echo 1 > /proc/sys/vm/drop_caches)
Примечание: номер 1 обозначает освобождение кэша страниц, 2 - зубные и иноды, 3 - кэширование страниц, зубные и иноды.
Указанная проблема может быть воспроизведена следующей программой mmap-test, см. mmap-problem.c
.