раздел /tmp в оперативной памяти


В 21 веке оперативная память стоит копейки, и зачастую у читателя стоит не меньше 4ГБ RAM.

Можно с большой вероятностью сказать, что она мало когда полностью используется, и начинает заполняться swap раздел. Почему бы не использовать оперативку еще больше?

ram

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

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

Воспользуемся утилитой, для просмотра информации из таблицы DMI(SMBIOS).

sudo dmidecode --type 17

У меня получилось что-то, вроде:

# dmidecode 2.9
SMBIOS 2.6 present.

Handle 0x0024, DMI type 17, 28 bytes
Memory Device
    Array Handle: 0x0023
    Error Information Handle: 0x0025
    Total Width: 64 bits
    Data Width: 8 bits
    Size: 2048 MB
    Form Factor: DIMM
    Set: None
    Locator: DIMM0
    Bank Locator: BANK0
    Type: out of spec
    Type Detail: Synchronous
    Speed: 1066 MHz (0.9 ns)
    Manufacturer: Samsung
    Serial Number: 641DE5AC
    Asset Tag: Unknown
    Part Number: M471B5773CHS-CH9

Handle 0x0028, DMI type 17, 28 bytes
Memory Device
    Array Handle: 0x0023
    Error Information Handle: 0x0029
    Total Width: 64 bits
    Data Width: 8 bits
    Size: 4096 MB
    Form Factor: DIMM
    Set: None
    Locator: DIMM1
    Bank Locator: BANK0
    Type: out of spec
    Type Detail: Synchronous
    Speed: 1066 MHz (0.9 ns)
    Manufacturer: Unknown
    Serial Number: 00000000
    Asset Tag: Unknown
    Part Number: GR1333S364L9/4G

Сложив колонки Size мы получим итоговый размер памяти.

Вы наверняка знаете, что в Linux используется устройство /dev/shm, которое представляет собой оперативную память. Обычно размер /dev/shm в два раза меньше размера RAM памяти

df -h /dev/shm
Filesystem            Size  Used Avail Use% Mounted on
tmpfs                 3.0G  212K  3.0G   1% /dev/shm

Но его можно изменить. Для временного изменения размера, воспользуйтесь командой mount:

mount -o remount,size=4G /dev/shm

Для постоянного, воспользуйтесь изменением /etc/fstab. Нужны рутовые привилегии.

echo 'tmpfs /dev/shm tmpfs defaults,size=2g 0 0' >> /etc/fstab

С размером доступной для оперирования оперативной памяти мы определились, осталось использовать её по назначению. Я монтирую RAM на /tmp и \$HOME/.cache Вот образец моего /etc/fstab:

tmpfs       /tmp        tmpfs   defaults    0   0
tmpfs       /home/insider/.cache    tmpfs   size=256M   0   0

После изменения fstab перезагружаемся или выполняем

mount -a

и радуемся жизни, но всё же лучше перезагрузиться, т.к. монтирование потрет файлы в /tmp, что может привести к некорректной работе системы.

Работа системы должна немного ускориться.

comments powered by Disqus