小编Use*_*ank的帖子

使用Paperclip将小文件上传到s3挂起,CPU使用率为100%

我在AWS EC2大型实例上有一个<20MB pdf文件的目录(每个pdf代表一个广告).我正在尝试使用ruby和DM-Paperclip将每个pdf文件上传到S3.

大多数文件上传成功,但有些文件似乎需要数小时才能将CPU挂起100%.我通过在相关部分中打印调试语句找到了导致问题的代码行.

 # Takes an array of pdf file paths and uploads each to S3 using dm-paperclip
 def save_pdfs(pdfs_files)
  pdf_files.each do |path|
  pdf = File.open(path)
  ad = Ad.new
  ad.pdf.assign(pdf) # <= Last debug statment is printed before this line
  begin
    ad.save
  rescue => e
    # log error
  ensure
    pdf.close
  end
 end
Run Code Online (Sandbox Code Playgroud)

为了帮助解决问题,我将过程固定在100%的过程中.结果是数十万行像这样:

 ...
 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=3543, ...}) = 0
 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=3543, ...}) = 0
 stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=3543, ...}) = 0
 ... 500K lines
Run Code Online (Sandbox Code Playgroud)

接下来几千:

 ...
 brk(0x1224d0000)                        = …
Run Code Online (Sandbox Code Playgroud)

cpu upload amazon-s3 paperclip

19
推荐指数
1
解决办法
558
查看次数

标签 统计

amazon-s3 ×1

cpu ×1

paperclip ×1

upload ×1