1
2

More than 3 years have passed since last update.

EC2・nginxのエラー No space left on deviceの解決法

Last updated at Posted at 2020-05-08

capistranoでデプロイを自動化させようと試していた際に、EC2を再起動したところエラーが表示されました。

cat log/nginx.error.log
2020/05/07 14:00:08 [crit] 3629#0: *2 pwritev() "/var/lib/nginx/tmp/proxy/1/00/0000000001" failed (28: No space left on device) while reading upstream, client: 121.3.47.42, server: 13.115.179.212, request: "GET /assets/application-147cfe69dba92e16c1d4275578eb1221ba9e6dd28140f02fd5d759e2e49bc49a.js HTTP/1.1", upstream: "http://unix:/var/www/rails/Portfolio/tmp/sockets/unicorn.sock:/assets/application-147cfe69dba92e16c1d4275578eb1221ba9e6dd28140f02fd5d759e2e49bc49a.js", host: "13.115.179.212", referrer: "http://13.115.179.212/"

EC2にログインした際も

ヒアドキュメント用一時ファイルを作成できません: No space left on device

と表示された。

unicorn_rails -c /var/www/rails/Portfolio/config/unicorn.conf.rb -D -Eを入力する際にも同じようなエラーがでます。

原因

capistranoのを使ったデプロイの自動化を試していて、失敗を繰り返しEC2内の容量が限界になってしまった可能性。

コマンドを調べつつ、下記のように表示された。

[shogo@ip-10-0-0-193 Portfolio]$ df -h

ファイルシス  サイズ 使用 残り 使用% マウント位置
devtmpfs     475M   0 475M  0% /dev
tmpfs      492M 4.0K 492M  1% /dev/shm
tmpfs      492M  19M 473M  4% /run
tmpfs      492M   0 492M  0% /sys/fs/cgroup
/dev/xvda1    8.0G 8.0G  20K 100% /
tmpfs       99M   0  99M  0% /run/user/1001
[shogo@ip-10-0-0-193 Portfolio]$ df -i
ファイルシス  Iノード I使用 I残り I使用% マウント位置
devtmpfs    121367  281 121086   1% /dev
tmpfs      125870   3 125867   1% /dev/shm
tmpfs      125870  356 125514   1% /run
tmpfs      125870   16 125854   1% /sys/fs/cgroup
/dev/xvda1   247976 247907   69  100% /
tmpfs      125870   1 125869   1% /run/user/1001
[shogo@ip-10-0-0-193 Portfolio]$ sudo find . -xdev -type f | cut -d "/" -f 2 | sort | uniq -c | sort -n
      1 .browserslistrc
      1 .env
      1 .gitignore
      1 .rspec
      1 Dockerfile
      1 Gemfile
      1 Gemfile.lock
      1 Guardfile
      1 Procfile
      1 README.md
      1 Rakefile
      1 babel.config.js
      1 config.ru
      1 docker-compose.yml
      1 entrypoint.sh
      1 package.json
      1 postcss.config.js
      1 storage
      1 yarn.lock
      2 lib
      6 log
      7 bin
      8 .idea
     24 .git
     27 db
     36 test
     40 spec
     47 config
    130 mysql-datavolume
    136 app
    186 repo
    952 pgsql-data
   1979 public
   4933 tmp
  13042 vendor
  43275 releases

releasesはcapistranoでデプロイする際に作成されるファイルなので、消して良い。

[shogo@ip-10-0-0-193 Portfolio]$ rm -rf releases

で、一度EC2をログアウトしてもう一度EC2にログイン。
エラーは出ない。

そして本番環境にデプロイできました。

その後capistranoを使ったデプロイを試していたのですがec2内にsettings.ymlがないと言われたので下記記事を参考にして修正しました。
https://qiita.com/hibriiiiidge/items/9ab230b69454f0c662bb

したがってその後同じ状況になり、releasesを削除したら動きました。releaseだけ削除で良さそう。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2