1

我在运行我的 Rails 网站时遇到以下错误,我相信它会导致它崩溃。我正在使用Passenger,我的网站流量很大。当我试图让它重新上线时,Apache 产生了大量的子节点,机器上的负载飙升到 50 左右,网站变得非常缓慢。我不缺磁盘。

PGError (FATAL:  could not access status of transaction 0
DETAIL:  could not write to file "pg_subtrans/009B" at offset 8192: No space left on device):
    /vendor/rails/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb:876:in `initialize'
    /vendor/rails/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb:876:in `connect'
    /vendor/rails/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb:876:in `connect'
    /vendor/rails/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb:276:in `initialize'
    /vendor/rails/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb:37:in `new'
    /vendor/rails/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb:37:in `postgresql_connection'
    /vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_specification.rb:292:in `send'
    /vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_specification.rb:292:in `connection='
    /vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_specification.rb:260:in `retrieve_connection'
    /vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_specification.rb:78:in `connection'
    /vendor/rails/activerecord/lib/active_record/query_ca
4

2 回答 2

1

“设备上没有剩余空间”错误不一定是由空间不足引起的。它也可能是由文件系统的 inode 表填满引起的 - 换句话说,您的文件系统只能容纳这么多文件,而您已经达到了这个限制。

如果您有大量小文件,则可能会发生这种情况。在这些情况下,通常会使用大型 inode 表构建新文件系统,以允许更多数量的小文件。

于 2009-09-03T21:38:51.497 回答
0

Another possibility would be per-user disk quotas - see http://www.postgresql.org/docs/8.4/static/disk-full.html

于 2009-09-03T21:44:58.033 回答