如何在Linux中找到磁盘写缓冲区大小?
write
系统调用通常只是将您的数据复制到页面缓存中,然后稍后将其刷新到磁盘。页面缓存的大小是动态的,内核会尝试使用所有空闲内存。
有关更多详细信息,请参见页面缓存和页面写回。
write(2)
,进行基准测试以获得最佳数字(我认为这并不重要!)。 - Basile Starynkevitch在将文件复制到USB等操作时,存储在缓冲区中的数据处于“脏”内存。
尝试挂载您的USB闪存驱动器, #pv file.5GB.. > /media/.../diskname/ 它会快速运行一段时间,然后停止。因为它填满了脏内存中的缓冲区
在另一个终端中 #cat /proc/meminfo | grep Dirty 脏内存占用了很多空间。 pv使传输量达到100%并停止运行时, 脏内存达到最大值,然后慢慢降至零。当发生这种情况时,pv成功完成。