Уже существует команда UNIX для этого: du
Просто сделайте:
du -ach
Согласно конвенции можно добавить один или несколько путей файла или каталога в конце команды. -h
расширение должно преобразовать размер в человечески-благоприятный формат, -a
дает Вам "очевидный" размер (размер файла вместо использования диска), и -c
дает общее количество в конце.
Пусть будет ясно, что есть небольшие накладные расходы при работе с файлом вместо раздела.
Далее, у меня самого на нескольких машинах есть файл подкачки на mdadm
RAID, поэтому возникает еще одна накладность. Но если вы настроите vm.swappiness
с умом на более приемлемое значение, чем 60, которое стоит по умолчанию, то у вас не должно быть проблем.
Например, у меня сервер с 32 ГБ RAM и 32 ГБ файла подкачки на RAID6 с vm.swappiness
= 1. Цитирую Википедию:
vm.swappiness
= 1: Ядро версии 3.5 и старше, а также ядро Red Hat версии 2.6.32-303 и старше: Минимальное количество свопинга без его полного отключения.
В этом примере мы создадим файл подкачки:
размером 8GB
Расположенный в /raid1/
Измените эти две вещи соответственно вашим потребностям.
Откройте терминал и станьте root
(su
); если у вас включен sudo
, вы также можете сделать, например, sudo -i
; см. man sudo
для всех опций):
sudo -i
Выделите место для файла подкачки:
dd if=/dev/zero of=/raid1/swapfile bs=1G count=8
По желанию, если ваша система поддерживает это, вы можете добавить status=progress
в эту командную строку.
Обратите внимание, что размер, указанный здесь в G
, указан в гигабайтах (кратных 1024).
Измените права доступа к файлу подкачки, чтобы только root
мог получить к нему доступ:
chmod 600 /raid1/swapfile
Сделайте этот файл файлом подкачки:
mkswap /raid1/swapfile
Включите файл подкачки:
swapon /raid1/swapfile
Проверьте, используется ли файл подкачки:
cat /proc/swaps
Откройте этот файл в текстовом редакторе, которым вы владеете, например, nano
если не уверены:
nano /etc/fstab
Чтобы сделать этот файл подкачки доступным после перезагрузки, добавьте следующую строку:
/raid1/swapfile none swap sw 0 0