Кэширование, на которое вы ссылаетесь, находится не в пользовательском пространстве; это индекс ядра Linux и кэш-память. Вы можете контролировать скорость, с которой ядро освобождает память, используемую в этом кэше, изменяя параметр sysctl vm.vfs_cache_pressure
. Эта статья предложила значение 10000. Что касается самого кеша Linux, я не могу дать вам однозначного ответа, но, скорее всего, это не проблема.
Кроме того, unbuffer
предназначен для буферизации (небуферизованной, блочной или строковой буферизации) стандартных потоков. Скорее всего (но не обязательно) здесь не уместно, если только вы не передаете тарболы по сети и не распаковываете их локально, или перенаправляете выходные данные процесса, подключенного к сети, в файловую систему. Тем не менее, это не должно иметь значения, если эти программы не используют блочную буферизацию с огромным размером или строковую буферизацию для двоичных данных, и вам не повезло, что в ваших данных не было ни одного 0x0d или 0x0a для сколь угодно большого количества данных. Кроме того, это кэширование является библиотечной функцией, а не функцией ядра или программы. Последний может устанавливать параметры.
Netstat также просто перечислит выдающиеся сетевые соединения, а не то, что там происходит.
Вы можете попробовать strace -e trace=file
fileing процесса, чтобы увидеть, что он делает.