gpt4 book ai didi

ruby-on-rails - AWS EC2 Ubuntu 服务器上的 Rails 5 应用程序:Errno::ENOSPC:设备上没有剩余空间

转载 作者:行者123 更新时间:2023-12-04 19:10:04 26 4
gpt4 key购买 nike

我在 Ubuntu 服务器上有一个 Ruby On Rails - 服务器位于 AWS 基础设施中。

该应用程序在那里运行了 4 年,一切都很好,直到上周我开始收到这些(和类似的)错误消息:

Errno::ENOSPC: No space left on device @ io_write - /home/deployer/apps/myapp-production/shared/log/unicorn.stderr.log

我必须登录服务器并清空日志文件 - >unicorn.stderr.log .现在,这个错误每隔一天(或每隔一天)发生一次。

这是我的 Rails 应用程序中的日志文件的样子:
drwxrwxr-x  2 deployer deployer     4096 Sep 28 06:28 .
drwxrwxr-x 11 deployer deployer 4096 Jun 11 2016 ..
-rw-rw-r-- 1 deployer deployer 0 Sep 9 2017 newrelic_agent.log
-rw-rw-r-- 1 deployer deployer 0 Sep 19 16:22 newrelic_agent.log.1
-rw-rw-r-- 1 deployer deployer 0 Sep 19 16:23 newrelic_agent.log.2.gz
-rw-rw-r-- 1 deployer deployer 0 Sep 19 16:23 newrelic_agent.log.3.gz
-rw-rw-r-- 1 deployer deployer 0 Sep 19 16:23 newrelic_agent.log.4.gz
-rw-rw-r-- 1 deployer deployer 0 Sep 19 16:23 newrelic_agent.log.5.gz
-rw-rw-r-- 1 deployer deployer 0 Sep 19 16:23 newrelic_agent.log.6.gz
-rw-rw-r-- 1 deployer deployer 0 Sep 19 16:23 newrelic_agent.log.7.gz
-rw-rw-r-- 1 deployer deployer 0 Feb 20 2018 procat
-rw-rw-r-- 1 deployer deployer 12480512 Sep 28 21:12 production.log
-rw-rw-r-- 1 deployer deployer 71216391 Sep 28 06:28 production.log.1
-rw-rw-r-- 1 deployer deployer 20 Sep 27 12:22 production.log.2.gz
-rw-rw-r-- 1 deployer deployer 20 Sep 26 15:27 production.log.3.gz
-rw-rw-r-- 1 deployer deployer 0 Sep 26 15:28 production.log.4.gz
-rw-rw-r-- 1 deployer deployer 0 Sep 26 15:28 production.log.5.gz
-rw-rw-r-- 1 deployer deployer 0 Sep 26 15:28 production.log.6.gz
-rw-rw-r-- 1 deployer deployer 0 Sep 26 15:28 production.log.7.gz
-rw-rw-r-- 1 deployer deployer 1391716 Sep 28 21:11 skylight.log
-rw-rw-r-- 1 deployer deployer 734536 Sep 28 06:28 skylight.log.1
-rw-rw-r-- 1 deployer deployer 20 Sep 27 12:23 skylight.log.2.gz
-rw-rw-r-- 1 deployer deployer 20 Sep 26 15:28 skylight.log.3.gz
-rw-rw-r-- 1 deployer deployer 0 Sep 26 15:29 skylight.log.4.gz
-rw-rw-r-- 1 deployer deployer 0 Sep 26 15:29 skylight.log.5.gz
-rw-rw-r-- 1 deployer deployer 0 Sep 26 15:29 skylight.log.6.gz
-rw-rw-r-- 1 deployer deployer 0 Sep 26 15:29 skylight.log.7.gz
-rw-rw-r-- 1 deployer deployer 0 May 20 2018 staging.log
-rw-rw-r-- 1 deployer deployer 0 Oct 4 2016 unicorn.log
-rw-rw-r-- 1 deployer deployer 1 Oct 4 2016 unicorn.log.1
-rw-rw-r-- 1 deployer deployer 20480 Sep 28 21:13 unicorn.stderr.log

这就是 df -H在清空日志文件之前说:
Filesystem      Size  Used Avail Use% Mounted on
udev 2.0G 13k 2.0G 1% /dev
tmpfs 395M 373k 395M 1% /run
/dev/xvda1 17G 16G 0 100% /
none 4.1k 0 4.1k 0% /sys/fs/cgroup
none 5.3M 0 5.3M 0% /run/lock
none 2.0G 0 2.0G 0% /run/shm
none 105M 0 105M 0% /run/user

这是在清空它们之后:
Filesystem      Size  Used Avail Use% Mounted on
udev 1.9G 12K 1.9G 1% /dev
tmpfs 377M 364K 377M 1% /run
/dev/xvda1 16G 15G 437M 98% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
none 5.0M 0 5.0M 0% /run/lock
none 1.9G 0 1.9G 0% /run/shm
none 100M 0 100M 0% /run/user

该应用程序非常一致,并不是说最近流量增加了 10 倍。

我还试图查看服务器上最大的文件 - find / -size +100M - 这是输出:
/var/log/nginx/myapp_production.access.log.1
/var/log/nginx/myapp_production.access.log
/var/log/btmp.1
find: `/var/spool/rsyslog': Permission denied
find: `/var/spool/cron/atjobs': Permission denied
find: `/var/spool/cron/crontabs': Permission denied
find: `/var/spool/cron/atspool': Permission denied
find: `/var/cache/ldconfig': Permission denied
find: `/var/lib/polkit-1': Permission denied
find: `/var/lib/monit/events': Permission denied
find: `/var/lib/nginx/scgi': Permission denied
find: `/var/lib/nginx/body': Permission denied
find: `/var/lib/nginx/uwsgi': Permission denied
find: `/var/lib/nginx/fastcgi': Permission denied
find: `/var/lib/nginx/proxy': Permission denied
find: `/var/lib/sudo': Permission denied
find: `/etc/ssl/private': Permission denied
find: `/etc/chatscripts': Permission denied
find: `/etc/polkit-1/localauthority': Permission denied
find: `/etc/ppp/peers': Permission denied
find: `/etc/sudoers.d': Permission denied
find: `/root': Permission denied
find: `/run/user/1003': Permission denied
...

我查看了这两个文件 - /var/log/nginx/myapp_production.access.log.1/var/log/nginx/myapp_production.access.log尺寸为 219M248MB .
/var/log/btmp.1文件有 330MB .我可以删除这个吗?

如果我显示 /var/log/nginx 的大小目录 - du -hs . - 大小为 846MB .我可以在不影响应用程序功能的情况下清空此目录中的日志文件吗?

另外,知道为什么我突然开始用完服务器上的可用磁盘空间吗?我应该如何“调试”这种情况?

先感谢您。

最佳答案

我个人喜欢使用ncdu工具来查找系统中占用空间最多的文件。

安装完成后,只需键入 ncdu <directory>在命令行并获得一个漂亮的界面,其中的目录按您要调查的目录从大到小排序。您可以向下导航到每个目录并找到占用最多空间的文件。

如果您的服务器已经运行了四年,那么 17G 硬盘驱动器最终将不可避免地被服务器日志占用。您可能有一堆可以删除的 nginx 日志和应用程序服务器日志。

正如 Jon 建议的那样,根据您的需要,您可以设置轮换日志以防止服务器填满。如果您想存储所有历史记录,您还可以将存储空间的大小翻倍。

关于ruby-on-rails - AWS EC2 Ubuntu 服务器上的 Rails 5 应用程序:Errno::ENOSPC:设备上没有剩余空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58236764/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com