AWS EC2 диск заполнен, не может освободить место - PullRequest
1 голос
/ 06 апреля 2020

Я использую экземпляр EC2 для запуска приложения узла. Я вошел на сервер через некоторое время, только чтобы понять, что серверу не хватило места на диске. После отладки я понял, что журналы занимают место. Я удалил файл журнала 3.3Gb. Однако даже после уборки места нет. Что мне делать?

Вот команды, которые я выполнил:

ubuntu@app1:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            488M     0  488M   0% /dev
tmpfs           100M   11M   89M  11% /run
/dev/xvda1      7.7G  7.7G     0 100% /
tmpfs           496M  8.0K  496M   1% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           496M     0  496M   0% /sys/fs/cgroup
tmpfs           100M     0  100M   0% /run/user/1001
tmpfs           100M     0  100M   0% /run/user/1000

ubuntu@app1:~$ sudo du -h --max-depth=1 / | sort -n
0   /proc
0   /sys
4.0K    /lib64
4.0K    /media
4.0K    /mnt
4.0K    /srv
8.0K    /dev
8.0K    /snap
16K /lost+found
24K /root
800K    /tmp
6.4M    /etc
11M /run
14M /sbin
16M /bin
246M    /boot
331M    /home
397M    /opt
429M    /var
538M    /lib
2.1G    /usr
3.7G    /data
7.7G    /

Я удалил файл журнала 3.3G в /data и снова запустил du

ubuntu@app1:~$ sudo du -h --max-depth=1 / | sort -h
0   /proc
0   /sys
4.0K    /lib64
4.0K    /media
4.0K    /mnt
4.0K    /srv
8.0K    /dev
8.0K    /snap
16K /lost+found
24K /root
800K    /tmp
6.4M    /etc
11M /run
14M /sbin
16M /bin
246M    /boot
331M    /home
352M    /data
397M    /opt
429M    /var
538M    /lib
2.1G    /usr
4.4G    /

ubuntu@app1:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            488M     0  488M   0% /dev
tmpfs           100M   11M   89M  11% /run
/dev/xvda1      7.7G  7.7G     0 100% /
tmpfs           496M  8.0K  496M   1% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           496M     0  496M   0% /sys/fs/cgroup
tmpfs           100M     0  100M   0% /run/user/1001
tmpfs           100M     0  100M   0% /run/user/1000

Несмотря на то, что каталог /data теперь уменьшен до 352M, все еще df по-прежнему показывает 100% использования диска. Чего мне не хватает?

Ссылаясь на этот ответ https://unix.stackexchange.com/a/253655/47050, здесь выводится strace

ubuntu@app1:~$ strace -e statfs df /
statfs("/", {f_type="EXT2_SUPER_MAGIC", f_bsize=4096, f_blocks=2016361, f_bfree=4096, f_bavail=0, f_files=1024000, f_ffree=617995, f_fsid={2136106470, -680157247}, f_namelen=255, f_frsize=4096, f_flags=4128}) = 0
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/xvda1       8065444 8049060         0 100% /
+++ exited with 0 +++

ОБНОВЛЕНИЕ

Я запустил

sudo lsof | grep deleted

и нашел

node\x20/ 22318           deploy   12w      REG              202,1 3541729280     791684 /data/app/shared/logs/production.log (deleted)
node\x20/ 22318           deploy   13w      REG              202,1 3541729280     791684 /data/app/shared/logs/production.log (deleted)
node\x20/ 22318           deploy   14w      REG              202,1 3541729280     791684 /data/app/shared/logs/production.log (deleted)
node\x20/ 22318           deploy   15w      REG              202,1 3541729280     791684 /data/app/shared/logs/production.log (deleted)
node\x20/ 22318           deploy   16w      REG              202,1 3541729280     791684 /data/app/shared/logs/production.log (deleted)

Как мне выпустить эти файлы?

Обновление 2

ubuntu@app1:~$ sudo ls -l /proc/22318/fd
total 0
lrwx------ 1 deploy deploy 64 Apr  6 10:05 0 -> socket:[74749956]
lrwx------ 1 deploy deploy 64 Apr  6 10:05 1 -> socket:[74749958]
lr-x------ 1 deploy deploy 64 Apr  6 10:05 10 -> /dev/null
l-wx------ 1 deploy deploy 64 Apr  6 10:05 12 -> /data/app/shared/logs/production.log (deleted)
l-wx------ 1 deploy deploy 64 Apr  6 10:05 13 -> /data/app/shared/logs/production.log (deleted)
l-wx------ 1 deploy deploy 64 Apr  6 10:05 14 -> /data/app/shared/logs/production.log (deleted)
l-wx------ 1 deploy deploy 64 Apr  6 10:05 15 -> /data/app/shared/logs/production.log (deleted)
l-wx------ 1 deploy deploy 64 Apr  6 10:05 16 -> /data/app/shared/logs/production.log (deleted)
l-wx------ 1 deploy deploy 64 Apr  6 10:05 17 -> /data/app/shared/logs/production.log (deleted)
l-wx------ 1 deploy deploy 64 Apr  6 10:05 18 -> /data/app/shared/logs/production.log (deleted)
l-wx------ 1 deploy deploy 64 Apr  6 10:05 19 -> /data/app/shared/logs/production.log (deleted)
lrwx------ 1 deploy deploy 64 Apr  6 10:05 2 -> socket:[74749960]
l-wx------ 1 deploy deploy 64 Apr  6 10:05 20 -> /data/app/shared/logs/production.log (deleted)
lrwx------ 1 deploy deploy 64 Apr  6 10:05 21 -> socket:[74750302]
lrwx------ 1 deploy deploy 64 Apr  6 10:05 22 -> socket:[74750303]
lrwx------ 1 deploy deploy 64 Apr  6 10:05 3 -> socket:[74749962]
lrwx------ 1 deploy deploy 64 Apr  6 10:05 4 -> anon_inode:[eventpoll]
lr-x------ 1 deploy deploy 64 Apr  6 10:05 5 -> pipe:[74749978]
l-wx------ 1 deploy deploy 64 Apr  6 10:05 6 -> pipe:[74749978]
lr-x------ 1 deploy deploy 64 Apr  6 10:05 7 -> pipe:[74749979]
l-wx------ 1 deploy deploy 64 Apr  6 10:05 8 -> pipe:[74749979]
lrwx------ 1 deploy deploy 64 Apr  6 10:05 9 -> anon_inode:[eventfd]

ubuntu@app1:~$ ps aux | grep node
deploy   22318  0.0 12.7 1277192 129844 ?      Ssl   2019 173:38 node /data/app/releases/20180904094535/app.js
ubuntu   30665  0.0  0.0  12944   972 pts/0    S+   10:09   0:00 grep --color=auto node

1 Ответ

0 голосов
/ 08 апреля 2020

Файлы были задержаны приложением узла. Определяется с помощью:

sudo lsof | grep deleted

Перезапуск приложения узла решил мою проблему.

Найти идентификатор процесса узла ps aux | grep node. Затем убейте сервер узла, используя kill -9 <process_id>. Наконец перезапустите сервер узла. В моем случае pm2 автоматически перезагружается узел.

...