0

我正在使用 rails 3 + 回形针来托管我的文件管理应用程序。

但是,回形针似乎无法处理大文件(> = 200 MB)

在开发环境中它给了我:

JVMDUMP006I Processing dump event "systhrow", detail "java/lang/OutOfMemoryError" - please wait.
JVMDUMP032I JVM requested Snap dump using '/home/ubuntu/upload/Snap.20130322.123321.12125.0001.trc' in response to an event
JVMDUMP010I Snap dump written to /home/ubuntu/upload/Snap.20130322.123321.12125.0001.trc
JVMDUMP032I JVM requested Heap dump using '/home/ubuntu/upload/heapdump.20130322.123321.12125.0002.phd' in response to an event
JVMDUMP010I Heap dump written to /home/ubuntu/uploadheapdump.20130322.123321.12125.0002.phd
JVMDUMP032I JVM requested Java dump using '/home/ubuntu/upload/javacore.20130322.123321.12125.0003.txt' in response to an event
JVMDUMP010I Java dump written to /home/ubuntu/upload/javacore.20130322.123321.12125.0003.txt
JVMDUMP013I Processed dump event "systhrow", detail "java/lang/OutOfMemoryError".
[2013-03-22 12:33:42] ERROR

在生产环境中,我将此应用程序部署为WAR文件并上传到 tomcat 服务器,它没有给我任何错误,但上传的文件已损坏。

知道如何解决这个问题吗?

谢谢!

更新

我修改了一些 tomcat 连接器配置并得到了这个错误:

IOError (Disk quota exceeded): app/controllers/submissions_controller.rb:73:in `create'

但我 100% 确定我有足够的空间使用。

4

1 回答 1

1
  • 某些平台可能已经破坏了构建系统没有检测到的 sendfile 支持,特别是如果二进制文件是在另一个机器上构建并移动到这样的机器上时,sendfile 支持被破坏了。

  • 在 Linux 上,当使用 IPv6 时,使用 sendfile 会触发某些网卡上的 TCP 校验和卸载错误。

  • 对于网络挂载的目录(例如 NFS 或 SMB),内核可能无法通过其自己的缓存来提供网络文件。

useSendfile="false"在 Tomcat 连接器中添加server.xml

<Connector  ...
       useSendfile="false"
/>

要检查的其他配置

  1. 体面的内存分配和超时

    JAVA_OPTS="-server -Xms256m -Xmx1024m -XX:MaxPermSize=128m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000"
    
  2. Tomcat 连接器选项

maxPostSize(104857600 == 100 兆字节,默认值 = 2 兆字节)

将由容器 FORM URL 参数解析处理的 POST 的最大大小(以字节为单位)。可以通过将此属性设置为小于或等于 0 的值来禁用该功能。如果未指定,则此属性设置为 2097152(2 兆字节)。要检查的另外两个配置是超时限制和 maxFileSizeLimit

disableUploadTimeout(确保其未设置为 false)

此标志允许 servlet 容器在执行 servlet 时使用不同的、更长的连接超时,这最终允许 servlet 更长的时间来完成其执行,或者在数据上传期间更长的超时。如果未指定,则此属性设置为“true”。

maxHttpHeaderSize(尝试加倍)

请求和响应 HTTP 标头的最大大小,以字节为单位。如果未指定,则此属性设置为 4096 (4 KB)

于 2013-03-22T22:08:28.467 回答