Базы данных

Работа с дисковым пространством

При использовании сервера важно контролировать дисковую подсистему. Для приложений и файлов всегда должно оставаться свободное место.

Если место на диске закончится – при работе будут возникать ошибки, также могут повреждаться файлы и базы данных. Какие есть базы данных?

В случае нехватки свободного места – удаляйте ненужные файлы. При увеличении масштаба проектов или их количества Вы можете расширить диск или перейти на новый тариф.

Команды df, lsblk, parted, fdisk позволяют узнать объем дисков и количество свободного места. Для того чтобы определить, чем именно заняты диски, Вы можете воспользоваться утилитами du и ncdu.

Также при анализе дисковой подсистемы рекомендуется проверить inodes.

du

du (disk usage) есть во всех ОС семейства UNIX и не требует установки. Предоставляет общую информацию о занятом месте на дисковой подсистеме.

Также du может использоваться в тех случаях, когда на диске отсутствует свободное место для установки других утилит.

После выполнения команды Вы получите информацию о том, сколько места на диске занимает каждый файл и папка в текущем каталоге.

Основные ключи du

  • -h – вывод занятого места в удобных единицах измерения (Mb, Kb)
  • -s – вывод общего размера указанной папки
  • -c – вывод итоговых значений

Например, для оценки размера всех папок в корневом каталоге введем:

du -shc /*
  • -a – позволяет оценить занятое место на диске всеми файлами
  • -k – позволяет оценить использование диска деревом директории (в килобайтах)
  • --exclude – исключает из оценки использования диска файлы определенного формата. Например, если нужно убрать из вывода файлы формата jpeg:
du -ah --exclude="*. jpeg "

--time – отображает дату последнего изменения файлов.

Например, для того чтобы определить занимаемое файлами место и даты их последних изменений введите:

du -ah --time

ncdu

ncdu – одна из самых распространенных утилит для контроля дисковой подсистемы. Благодаря наличию псевдографического интерфейса с ней намного проще и удобнее работать.

Для установки ncdu введите:

Debian, Ubuntu

apt install ncdu

CentOS

yum install ncdu

Чтобы получить сведения об определенной папке введите:

ncdu имя_папки

Для анализа корневой папки:

ncdu /
working-with-disk-space

Количество # показывает, какие файлы и папки занимают больше всего места.

Первый столбец может содержать такие обозначения:

!

ошибка чтения каталога

. 

ошибка чтения подкаталога

< 

не учитывается при подсчете

> 

из другой файловой системы

@

не является файлом или каталогом

H

уже был учтен

e

пустой каталог

 Навигация в ncdu

стрелка вверх, стрелка вниз

перемещение по каталогам

Enter, стрелка вправо

вход в каталог

стрелка влево

возврат в предыдущий каталог

 Функции интерфейса в ncdu

n

упорядочить по имени (по возрастания, по убыванию)

s 

упорядочить по размеру (по возрастания, по убыванию)

g

изменение отображения (в процентах и в #)

a

отображение реального размера или занимаемого пространства на диске

e

показать/скрыть скрытые файлы и каталоги

?

вызов справки

d

удаление (потребуется подтверждение)

i 

информация о выбранном элементе

q 

- выход

Используемые в ncdu ключи

  • -h - краткая справка
  • -q  - обновление производится каждые 2 секунды (по умолчанию 10 раз в секунду).  
  • -x - при сканировании учитываются только каталоги и файлы одной файловой системы. Примонтированные директории не учитываются.
  • -r - режим чтения, недоступно удаление
  • --exclude - исключение из учета файла или типа файлов. То есть файлы будут присутствовать в выводе, но не повлияют на подсчет занятого места.
ncdu --exclude=/путь/к/папке/*исключение*

Например, для исключения файлов с форматом jpeg введите:

ncdu --exclude=/путь/к/папке/*.jpeg

 - сохранение результатов анализа в файл:

ncdu / -o путь/сохранения/файла.txt

Почему не соответствуют данные du, ncdu и ПО ?

1. Если в панели управления, а также при анализе дискового пространства утилитами du, ncdu показано, что есть свободное место, но приложения все равно сообщают о недостатке свободного места - проверьте inodes.

2. Если утилиты du и ncdu показывают меньший объем свободного места, чем в панели управления, либо приложения сообщают о недостатке свободного места даже после удаления файлов – проверьте файловую систему. Запустите команду df:

df -h

Скорее всего, в выводе команды будет информация о полной занятости диска. Утилиты du и ncdu показывают, сколько физически занято места на диске. Если файл после удаления доступен активному процессу – система учитывает его при подсчете.

1.    Определите, какие процессы используют удаленные файлы:

lsof | grep '(deleted)'

2.    Перезапустите эти процессы:

service имя_процесса restart

 Если у Вас остались вопросы - создайте тикет в техподдержку.