Для тестирования мне нужно, чтобы кеш zfs был холодным.
Я могу сбросить кеширование из пула, удалив кеш-диски, экспортируя и импортируя пул. Это дает эффект, который я хочу. Но очень хотелось бы не экспортировать пул.
Есть ли менее радикальный способ добиться того же эффекта?
То, что я ищу, эквивалентно:
эхо 3 > /proc/sys/vm/drop_caches
который делает то, что я хочу для ext4.
Задний план
Я могу запускать свой алгоритм по-разному. Я не забочусь о лучшей производительности. я делать заботиться о производительности в худшем случае. В худшем случае это будут холодные данные (данные были затронуты так давно, что их больше нет в ARC/L2ARC).
Чтобы выбрать оптимальный способ запуска алгоритма, мне нужно иметь возможность работать на одном и том же наборе тестов. И этот тестовый набор должен быть холодным. Это полностью противоречит стратегии кэширования ZFS: если я снова и снова запускаю один и тот же тестовый набор, он помещает данные в ARC, что имеет смысл при нормальных обстоятельствах, но не здесь.
Я могу экспортировать/импортировать на своем компьютере разработчика, но я не могу сделать это в рабочей среде. Очистка кеша, однако, будет быть приемлемым в производстве.
Я бы предпочел, чтобы ARC все еще работал, чтобы холодные данные кэшировались после чтения (опять же аналогично ext4), но я могу жить с полностью отключенным ARC во время теста.