Назад | Перейти на главную страницу

Максимальный размер файла подкачки

Я занимаюсь обработкой файлов, которая, кажется, требует огромного файла подкачки: даже 20 ГБ недостаточно. Какой теоретический максимум? Бег swapon на файле размером 1 ТБ привело к:

swapon: /mnt/big/swap.swap: swapon failed: Invalid argument

Рассматриваемая система - это виртуальная машина Ubuntu, работающая на OpenStack, а диск смонтирован по NFS. Хотя и более широкие ответы тоже подойдут.

Сообщение об ошибке здесь, вероятно, исходит не из-за размера файла подкачки как такового, а из-за его расположения на монтировании NFS. Нет ничего страшного, верю в файл подкачки размером 1 ТБ. Представьте, какой будет своп на многопроцессорной SMP с 4 ТБ ОЗУ!

Чтобы заменить удаленный файл, вы можете сделать следующее:

  # losetup /dev/loop0 /mnt/big/swap.swap
  # mkswap /dev/loop0
  # swapon /dev/loop0

Microsoft предполагает, что «это в четыре раза больше физического ОЗУ компьютера с округлением до следующих 4 мегабайт (МБ)».

Но я должен согласиться с псуси. Должен быть лучший способ обработки этого файла. Например, если вы можете захватывать его по частям. Таким образом я смог разобрать очень большой XML-файл. А для файлов, в которых вы обращаетесь только к одной строке за раз, использует меньше памяти, чем загрузка всего файла в память с последующим его анализом.