Как я могу создать файл подкачки?

11

Я знаю, как создать и использовать раздел подкачки, но могу ли я использовать вместо этого файл?

Как я могу создать файл подкачки в системе Linux?

LinuxSecurityFreak
источник

Ответы:

18

Пусть будет ясно, что при работе с файлом вместо раздела возникают небольшие накладные расходы.

Кроме того, у меня на нескольких компьютерах есть файл подкачки на mdadmRAID, поэтому есть еще одна дополнительная нагрузка. Но если вы vm.swappinessправильно настроитесь на более приемлемое значение, чем 60, которое является значением по умолчанию, у вас не должно возникнуть никаких проблем.

Например, у меня есть сервер ОЗУ 32 ГБ с файлом подкачки 32 ГБ на RAID6 с vm.swappiness= 1. Цитируя Википедию:

vm.swappiness = 1: ядро ​​версии 3.5 и выше, а также ядро ​​Red Hat версии 2.6.32-303 и выше: минимальный объем обмена без полного его отключения.

В этом примере мы создаем файл подкачки:

  • 8 ГБ в размере

  • Находится в /raid1/

Измените эти две вещи в соответствии с вашими потребностями.

  1. Откройте терминал и станьте root( su); если вы sudoвключили, вы также можете сделать, например sudo -i; см. man sudoвсе варианты):

    sudo -i
    
  2. Выделите место для файла подкачки:

    dd if=/dev/zero of=/raid1/swapfile bs=1G count=8
    

    При желании, если ваша система поддерживает это, вы можете добавить status=progressк этой командной строке.

    Обратите внимание, что указанный здесь размер указан в GГиБ (кратно 1024).

  3. Измените права доступа к файлу подкачки, чтобы только он rootмог получить к нему доступ:

    chmod 600 /raid1/swapfile
    
  4. Сделайте этот файл файлом подкачки:

    mkswap /raid1/swapfile
    
  5. Включите файл подкачки:

    swapon /raid1/swapfile
    
  6. Проверьте, используется ли файл подкачки:

    cat /proc/swaps
    
  7. Откройте текстовый редактор, в котором вы разбираетесь с этим файлом, например, nanoесли не уверены:

    nano /etc/fstab
    
  8. Чтобы сделать этот файл подкачки доступным после перезагрузки, добавьте следующую строку:

    /raid1/swapfile        none        swap        sw        0        0
    
LinuxSecurityFreak
источник