У меня здесь виртуальная машина ubuntu linux, и я думаю, что нет дискового кеша.
Например, это результат работы free -m
:
total used free shared buffers cached
Mem: 512 98 413 0 0 0
-/+ buffers/cache: 98 413
Swap: 0 0 0
Если я создаю большие файлы, читаю большие файлы, читаю все файлы в моем домашнем каталоге (2,2 ГБ файлов), я всегда вижу 0 для «буферов», «кэшированных», а строка «буферы / кеш» всегда такая же, как линия над ним.
Аналогично, top и htop показывают, что дисковый кеш не используется.
Я пытался сбросить все кеши с помощью:
echo 3 > /proc/sys/vm/drop_caches
и я получаю сообщение об ошибке echo: write error: Operation not permitted
(даже при запуске от имени root).
Похоже, кеш отключен, но я думал, что это невозможно. Можно ли отключить кеш диска? Есть ли способ подтвердить, есть ли у меня дисковый кеш или нет? Может, мне просто не повезло и я еще не видел использования дискового кеша.
Примечание. Это размещенный VPS / виртуальная машина. Некоторые вещи отключены, например, своп (верно, я не могу поменять местами, системный вызов свопона возвращает EPERM). Можно ли это сделать с дисковым кешем? Есть ли способ узнать, было ли это сделано?
Ваш VPS работает под управлением Virtuozzo / OpenVZ. В этой настройке это не настоящая полностью сегрегированная виртуальная машина, как в случае, скажем, Xen или VMware. В OpenVZ и Virtuozzo работает только один экземпляр ядра (вместо одного на каждую виртуальную машину), и это ядро отвечает за поддержание разделения между всеми процессами, запущенными на разных гостевых виртуальных машинах. Это включает в себя управление слоем кэширования диска. Поскольку эта функция работает за пределами вашей виртуальной машины, вы не можете видеть, как выглядит ваш кеш.
Я не уверен, что это проблема конкретно в реализации OpenVZ на вашем хосте или это просто побочный эффект того, как OpenVZ выполняет виртуализацию.
Кстати, я проверил одну виртуальную машину OpenVZ, к которой у меня есть доступ, и не смог увидеть там информацию о кеше. Если вам нужен доступ к этой информации, я бы рекомендовал перейти к провайдеру VPS, который использует Xen или какой-либо другой реальный гипервизор.