Linux — использовать диск как оперативную память

Linux — использовать диск как оперативную память

У меня есть виртуальная машина, а в ней процесс, который потребляет много памяти (~200 ГБ). Какая-то in-memory DB. Мне нужно запустить ее на стандартном ноутбуке, и я не могу ее перекомпилировать или посмотреть код.

Я добавил 256 ГБ пространства подкачки с pri=32767 в /etc/fstab и vm.swappiness=100 в /etc/sysctl.conf, но это просто не позволяет достаточно быстро загружать базу данных (застряло на 4 ГБ через 24 часа; похоже, больше не растет).

(ПРАВКА: Я клонировал машину, увеличил объем оперативной памяти с 256 ГБ до 4 ГБ, добавил жесткий диск, отформатировал его как ext4 и создал файл подкачки размером 256 ГБ (dd -> mkswap -> swapon...))

Почему он перестал расти?

Я подозреваю, что замедление вызвано тем, что это пространство подкачки, поэтому ОС занята «подкачкой» (загрузка -> недостаточно места -> решение, что именно подкачивать...).

Я ищу способ "добавить больше памяти", но заставить ОС воспринимать ее как обычную память. Или, может быть, моя конфигурация подкачки неверна?

Я знаю, что это скажется на производительности, но для меня это приемлемо.

Виртуальная машина — CentOS 6.

решение1

Вы пробовали несколько файлов подкачки? 4 гигабайта — похоже, вы достигли предела размера файла для 32-битной системы.

Я нашел этот урок наcentos.orgв котором довольно четко изложено, как вручную создавать файлы подкачки.

Чтобы добавить файл подкачки:

  1. Определите размер нового файла подкачки в мегабайтах и ​​умножьте на 1024, чтобы определить количество блоков. Например, размер блока файла подкачки размером 64 МБ составляет 65536.
  2. В командной строке от имени пользователя root введите следующую команду, указав count, равный желаемому размеру блока:

dd if=/dev/zero of=/swapfile bs=1024 count=65536

  1. Настройте файл подкачки с помощью команды:

mkswap /swapfile

  1. Чтобы включить файл подкачки немедленно, а не автоматически во время загрузки:

swapon /swapfile

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

/swapfile swap swap defaults 0 0

При следующей загрузке системы будет включен новый файл подкачки.

После добавления нового файла подкачки и его включения убедитесь, что он включен, просмотрев вывод команды cat /proc/swapsили free.

решение2

В конце концов мне удалось преобразовать данные в базу данных SQLite и написатьhttps://github.com/assafmo/SQLiteQueryServerчтобы иметь возможность получить к нему удаленный доступ. Он работал безупречно и был очень быстрым.

Связанный контент