每当我们的 A/V 软件尝试扫描大型存档文件(通常是大小 > 1 G 的 tar.gz 文件)时,/ 分区的磁盘空间就会急剧增加。我们怎样才能准确地知道 AV 将临时文件放在哪里呢?
扫描完成后,磁盘空间将恢复正常。由于多个用户同时在此服务器(CentOS 6.8)上上传文件,并且每次上传都会自动启动扫描,因此磁盘空间使用量增长得相当快,有时会达到 / 的 100%。
我可以看到“df”中的磁盘增加,但是当我比较扫描之前和扫描过程中“du -ah --max-depth=1 /”的结果时,我没有看到任何文件夹发生变化。
尽管如此,我确实看到使用 vmstat 缓存大小增加了不少。
尝试使用“strace”检查写入并获得多个类似于以下的条目。不太确定如何解释这些。
9358 write(8, "x\3127\16|.b\245\342^\"\252\5X\323,\3036TP\225\33R_\206**\213\177\3405\250"..., 30720) = 30720
9358 write(8, "l\254\3239\335`\3\344\306w\35D~\227\271d\216\n\272\220\323\211\262\323\220\24\232M\221\305\202F"..., 30720) = 30720
9358 write(8, "\230}YI\324\317\201s\271z\245DJO\336u\225\213\22c\302zEW\270\320\322]WZQ\235"..., 30720) = 30720
9358 write(8, "\252\210H&]q\3309U!\207f\207o?\250l\215\332<\341\335h\245<8.\217\f\241\312C"..., 30720) = 30720
谢谢,
〜阿比
答案1
strace 输出显示“write”正在处理文件句柄 8。要确定文件句柄 8 是什么,您需要查看/proc/
,在本例中为/proc/9358/fd
。 9358 是您正在跟踪的 PID,fd 保存该 PID 的打开文件描述符。
如果您查看以下内容,您可以看到正在运行的 bash 的当前文件描述符:
/proc/$$/fd
因此,如果执行上述操作,您将看到 8 符号链接到正在解压缩的文件。如果您需要更多时间,请SIGSTOP
在执行此工作时向 A/V 流程发送一个消息,一旦您满意,您就可以继续SIGCONT
该流程,以便它可以继续其工作。显然,如果此进程是网络服务(例如 Web/FTP/电子邮件)的一部分,那么您可能不希望中断它,因为这可能会影响用户的 QoS。
如果幸运的话,您可能可以执行类似的操作,这可以节省您计算进程 ID 的时间。
pkill -STOP -f 'av binary name'
/etc 中甚至可能存储有 A/V 软件的配置文件,该文件可能定义工作目录。