Linux 如何在stdout中管理内存?

Linux 如何在stdout中管理内存?,linux,stdout,wget,pg-restore,Linux,Stdout,Wget,Pg Restore,示例是如何从s3恢复postgres转储: wget -O - 'https://s3.amazonaws.com/database.dump' | pg_restore -h somedomain.us-east-1.rds.amazonaws.com -p 5432 -d databasename -U username 但如果文件太大,预期的行为是什么?比如说1Tb。如何同步wget和pg\u restore?例如,当wget读取速度快于pg_restore消耗时?写入过程必须(并且将自

示例是如何从s3恢复postgres转储:

wget -O - 'https://s3.amazonaws.com/database.dump' | pg_restore -h somedomain.us-east-1.rds.amazonaws.com -p 5432 -d databasename -U username

但如果文件太大,预期的行为是什么?比如说1Tb。如何同步
wget
pg\u restore
?例如,当
wget
读取速度快于
pg_restore
消耗时?

写入过程必须(并且将自动进行阻塞写入)等待管道再次有空间写入,就像读取过程必须等待有东西要读取一样。这实际上可能是暂停进程的一种方式:例如,通过在终端中按ctrl-s键,阻止读取端读取。讨论了管道缓冲区的大小。数据是流式传输的,我很确定这与I/O块大小或内存页大小有关,但我一直想知道这方面的细节。好问题。这里回答:有了这个参考:(但不是很详细)这回答了你的问题吗?