これは VirtualBox の古いバグ ( #819、#9069、#12597、#14920を参照) で、vboxvfs は同期されたファイルへの mmaped アクセスに問題があるようです。
これは、VM の外部でファイルを編集し、VM 内で同じ変更が行われることを期待している場合に発生する可能性があります。
この問題を回避するには、vhosts ファイル内または vhosts ファイル内のEnableSendfile
オプションを無効にして、クライアントにファイルを配信するカーネル sendfile サポートを無効にする必要があります。httpd.conf
<Directory "/path-to-nfs-files">
EnableSendfile Off
</Directory>
これは、NFS または SMB でマウントされたファイルの場合に特に問題になります。変更後、Apache をリロードします。
Nginx
(で)に似ていnginx.conf
ます、例えば
sendfile off;
その他の回避策として、ホスト上のファイルを編集しないようにするか、VM 内で同じファイルを再編集してみてください。
別の回避策には、Linux ページキャッシュの削除が含まれます。
echo 1 > /proc/sys/vm/drop_caches
または、毎秒キャッシュをクリアするには (この投稿に従って)、試してください:
watch -n 1 $(sync; echo 1 > /proc/sys/vm/drop_caches)
注: 番号 1 はページキャッシュの解放、2 は dentry と inode の解放、3 はページキャッシュ、dentry と inode の解放を表します。
上記の問題は、次の mmap-test プログラムで再現できますmmap-problem.c
。