>Обьясняю на пальцах:
{...}
матчасть вами усвоена правильно, а выводы сделаны неверно.
>VM-система активно взаимодействует с FS.
Скажу больше, в FreeBSD кеш VM и кеш буферный объединены в один общей кеш. И это специфично только для FreeBSD (в других *BSD может быть сделано иначе (и так оно на деле и есть)).
>В принципе - почти все vm-обьекты -
>это есть файлы на диске
не все и не так, файлы к VM имеют весьма диагональное отношение
>разбитые по 4К и замапленые на
>физические страницы памяти.
Сетевой пакет тоже должен иметь свой собственный файл? и почему 4К ? почему не 8 или 16?
>Активные страницы не освобождаются, а неактивные - освобождаются
>или высвапливаются чтоб можно было освободить для более эффективного использования. Так
>работает кеширование во многих ОС.
Ядерная память не может быть "высвоплена" по определению. Она либо выделяется и занимает место в ОЗУ, либо помечается как неиспользуемая. Кеширование за счет "высвапливания" работает разве что в каких-нибудь специфических реализациях вроде fusefs, но тут спорить не буду. Ибо про специфику fusefs я не читал. Так что вы тут изобретаете что-то своё.
>Для ZFS не была реализовано взаимодействие с VM.
И через что, по вашему, управляется вся память, используемая в ZFS? собственным менеджером памяти в обход существующей подсистемы? Кстати, вы так и не ответили на этот вопрос.
>ZFS имеет собственный маленький кеш, ограниченный обьемом kmem, с которого копируются данные в юзерленд при чтении.
Вы не поверите, но в той же приснопамятной UFS имеется подобная схема организации кеширования.
>Для ZFS каждый раз файл придется читать из диска - он не
>будет закеширован.
Не смешите, ради бога.
>И если поставить на небюджетный сервер 64Г памяти - то толку от
>ZFS будет ещё меньше - память будет простаивать.
Конечно будет простаивать, ведь в средней конфигурации для работы ZFS требуется на два порядка меньше памяти.
|