Назад | Перейти на главную страницу

Как узнать, отключен ли кеш на моем диске в Linux?

У меня здесь виртуальная машина 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 или какой-либо другой реальный гипервизор.