20

デジタルオーシャンでホストされている実稼働サーバーでは、それが役立つ場合、Ubuntu 12.04、RoR 4 と rake 10.1.1 があります。

展開するときに を実行すると、これを実行するときにセッションを開いていると、次の出力が得られるrake assets:precompileという奇妙な問題に気付きましたrails console

~# rake assets:precompile
~# Killed

それは主に厄介ですが、解決したい理由は、新しい開発者を雇うときに、デプロイ/コンソールの競合の悪夢が発生するためです.

ありがとう、

ブライアン

4

5 に答える 5

63

RAMが不足しているため、プリコンパイルプロセスが強制終了されている可能性があります。topこれは、別の ssh セッションで実行することで確認できます。これを修正するには、RAM がいっぱいになったときに使用されるスワップ ファイルを作成します。

Ubuntu で SWAP スペースを作成 する Digital Ocean の 512MB RAM ドロップレットで Rails を使用する予定がある場合は、おそらくいくらかのスワップ スペースが必要になるでしょう。具体的には、アセットをコンパイルするときに RAM が不足し、その結果、プロセスが静かに強制終了され、デプロイの成功が妨げられます。

スワップ ファイルがあるかどうかを確認するには:

sudo swapon -s

スワップファイルが表示されませんか? ディスク容量を確認します。

 df

スワップ ファイルを作成するには:

ステップ 1: スワップ用のファイルを割り当てる

sudo fallocate -l 2048m /mnt/swap_file.swap

ステップ 2: 権限を変更する

sudo chmod 600 /mnt/swap_file.swap

ステップ 3: スワップ デバイス用にファイルをフォーマットする

sudo mkswap /mnt/swap_file.swap

ステップ 4: スワップを有効にする

sudo swapon /mnt/swap_file.swap

ステップ 5: 再起動時にスワップがマウントされていることを確認します。まず、fstab を開きます

sudo nano /etc/fstab

最後に、fstab にエントリを追加します (自動的に追加されなかった場合のみ)。

# /etc/fstab
/mnt/swap_file.swap none swap sw 0 0 

保存して終了。スワップの追加が完了しました。rake assets:precompileこれで、殺されることなく完了するはずです。

于 2014-03-08T17:19:15.633 に答える
0

aws に opsworks スタックがあり、インスタンス タイプを変更したいと考えています。私は t1.micro を使用していましたが、それを t1.small に変更しました

どうもありがとう。

于 2015-09-03T22:30:28.557 に答える
0

これは大量の RAM を使用します。使用可能な RAM メモリの空き容量を確認するには、次のコマンドを使用します。

free -m

これにより、使用可能なRAMがMB単位で表示されます

一時的な解決策は、スワップ領域を作成することです。

RAM リソースの問題であることを確認するために、彼の手順に入る前に、上記の Jason R の投稿にこれをコメントとして追加するつもりでした。

実行することもできます

echo {1,2,3} > /proc/sys/vm/drop_caches

キャッシュ メモリをクリーンアップしますが、十分に解放されない可能性があります。

于 2016-01-17T03:22:10.900 に答える
0

これは誰かを助けるかもしれません。私にとっては、「fallocate」コマンドを使用できなかったため、次のことを行う必要がありました。

sudo dd if=/dev/zero of=/mnt/4GB.swap bs=4096 count=1048576
sudo chmod 600 /mnt/4GBB.swap
sudo mkswap /mnt/4GB.swap
sudo swapon /mnt/4GB.swap
于 2018-06-13T12:52:19.553 に答える