最近遇到的一個問題,我使用如下代碼對備份文件計算MD5值:linux
# md5file=open("%s" % outputpath, 'rb') # md5=hashlib.md5(md5file.read()).hexdigest() # md5file.close()
致使了部分備份節點的guestagent被kill,發生了oom現象。spa
後來調查緣由:是由於被計算的文件大小過大,上面的代碼須要將文件所有讀到內存中才能計算MD5。當此文件過大時,會致使內存超出配額,觸發了oom。code
如今已經改爲老老實實的用linux命令計算MD5了:blog
md5cmd="md5sum "+ "%s" % outputpath status, output = commands.getstatusoutput(md5cmd) md5 = output.split()[0]