在 linux tcsh 中,如果我创建一个类似这样的日志文件:
CMD > cmd.log
如何使写入缓冲区(在将数据发送到磁盘之前对其进行缓存)大于默认值?如何缓冲更多写入数据cmd.log
并减少写入该文件句柄的频率?
编辑:我还没搞清楚如何做到这一点,但我们发现我们的系统存在问题。有人多次写入相同的数据,破坏了 NFS 磁盘文件管理器。他们甚至没有使用本地磁盘来增量生成文件,然后将结果复制到 NFS。
另外,您可以使用
CMD_BLAH | gzip --stdout > log.gz
这会在主内存中执行一些缓存并减少最终输出文件的大小(通常)。
答案1
您可以使用 '光伏' 来 '限制' 正在传输的内容。
-B BYTES, --buffer-size BYTES
Use a transfer buffer size of BYTES bytes. A suffix of
"k", "m", "g", or "t" can be added to denote kilobytes (*1024),
megabytes, and so on. The default buffer size is the block
size of the input file's filesystem multiplied by 32 (512kb max),
or 400kb if the block size cannot be determined.
应用于您给出的示例它将看起来像:
% CMD | pv -B 1m > cmd.log