LINUX.ORG.RU
ФорумTalks

ram - tmpfs ?= ram

 ,


0

1

Давно уже пользуюсь tmpfs для /tmp. С первых дней не дает покоя, почему в системном мониторе RAM отображается сколько есть, а не сколько доступно?

Я про то, что ведь выделили /tmp(fs) скажем 2 Гб, RAM у нас 6 Гб; если перевалит за 4, то ведь в SWAP полезит система или не?
Да и в обще вопрос, в системных мониторах как я понимаю отображается емкость самой планки, а которая доступна как ее посмотреть или не так все?

★★★★★

Последнее исправление: NK (всего исправлений: 1)

man tmpfs ^_^

Tmpfs (так же известная как shmfs) отличается от Linux RAM диска динамическим выделением памяти и перемещением неиспользуемых страниц в swap.

tazhate ★★★★★
()

tmpfs выбросят на мороз в своп наравне со всеми.

aidaho ★★★★★
()
Ответ на: комментарий от tazhate

Хмм, спасибо)

И вопрос тогда, значит в RAM не используются страницы, так и здесь они перемещаются в свап, если так то это можно как-то отключить?
исходя из того же рам я имею в виду про vm.swappines= , а для tmpfs как?

NK ★★★★★
() автор топика
Ответ на: комментарий от tazhate

Спасибо понял,

Ой, а у меня нету(

# man tmpfs
Нет справочной страницы для tmpfs
но все ж...

отличается от Linux RAM диска динамическим выделением памяти

выходит, память хоть и динамическая , но допустим 1Гб занято на tmp уже, значит значение RAM на 1Гб должно же меньше отобразиться или как посмотреть можно точно посмотреть сколько еще memory осталось? Исхожу понятию динамическая, как VBox (дин.диск)

NK ★★★★★
() автор топика
Ответ на: комментарий от Manhunt

На счет ramfs , кстати не слышал, спасибо

Сейчас посмотрел, как понял выделять размер ramfs , в обще смысла никакого нет? Если раздел заполнится он в память полезит, так получается, а не как tmpfs сообщит о не хватке места?

NK ★★★★★
() автор топика
Ответ на: комментарий от NK

Попробовал RAMFS , там в обще не отображается сколько осталось и в обще сколько занято(!)

ramfs                        0            0        0             - /tmp/ramfs
причем, ни на подмонтированном устройстве, ни на памяти

NK ★★★★★
() автор топика
Ответ на: комментарий от Axon

да.

$ mount | grep /tmp
none on /tmp type tmpfs (rw,noatime,size=256M)
$ free
             total       used       free     shared    buffers     cached
Mem:       8132664    2188376    5944288          0      28396     621840
-/+ buffers/cache:    1538140    6594524
Swap:     16777212          0   16777212
$ dd if=/dev/urandom of=/tmp/test bs=1M count=100
100+0 записей считано
100+0 записей написано
 скопировано 104857600 байт (105 MB), 12,3159 c, 8,5 MB/c
daa@a2010 ~ $ free
             total       used       free     shared    buffers     cached
Mem:       8132664    2256640    5876024          0      28436     724164
-/+ buffers/cache:    1504040    6628624
Swap:     16777212          0   16777212
ls -lh /tmp/test 
-rw-r--r-- 1 daa daa 100M окт.  22 23:50 /tmp/test
rm /tmp/test 
free
             total       used       free     shared    buffers     cached
Mem:       8132664    2153500    5979164          0      28452     621608
-/+ buffers/cache:    1503440    6629224
Swap:     16777212          0   16777212
hatefu1_dead
()
Ответ на: комментарий от hatefu1_dead

Нет.

┌─[sergey@Home] - [~] - [2012-10-22 11:56:21]
└─[$] free -m                                                                                           :)
             total       used       free     shared    buffers     cached
Mem:          3957       3827        130          0         19       2703
-/+ buffers/cache:       1103       2854
Swap:            0          0          0
┌─[sergey@Home] - [~] - [2012-10-22 11:56:44]
└─[$] dd if=/dev/zero bs=1M count=1024 | pv | dd of=/tmp/tempfile                                       :)
1024+0 записей полученоB/s] [       <=>                                                                   ]
1024+0 записей отправлено
 скопировано 1073741824 байта (1,1 GB), 5,01679 c, 214 MB/c
   1GiB 0:00:05 [ 204MiB/s] [        <=>                                                                  ]
2097152+0 записей получено
2097152+0 записей отправлено
 скопировано 1073741824 байта (1,1 GB), 5,01791 c, 214 MB/c
┌─[sergey@Home] - [~] - [2012-10-22 11:57:48]
└─[$] free -m                                                                                           :)
             total       used       free     shared    buffers     cached
Mem:          3957       3820        137          0         14       2703
-/+ buffers/cache:       1103       2854
Swap:            0          0          0
┌─[sergey@Home] - [~] - [2012-10-22 11:58:04]
└─[$] df -h /tmp                                                                                        :)
Файловая система Размер Использовано  Дост Использовано% Cмонтировано в
tmpfs              2,0G         1,1G  954M           52% /tmp

Axon ★★★★★
()
Ответ на: комментарий от Axon

ок. но

$ free -m
             total       used       free     shared    buffers     cached
Mem:          7942       1707       6234          0         32        605
-/+ buffers/cache:       1069       6873
Swap:        16383          0      16383
$ sudo dd if=/dev/zero of=/run/test bs=1M count=1024
1024+0 записей считано
1024+0 записей написано
 скопировано 1073741824 байта (1,1 GB), 0,502672 c, 2,1 GB/c
$ free -m
             total       used       free     shared    buffers     cached
Mem:          7942       2733       5208          0         32       1629
-/+ buffers/cache:       1071       6870
Swap:        16383          0      16383
$ sudo rm /run/test 
$ free -m
             total       used       free     shared    buffers     cached
Mem:          7942       1769       6173          0         32        605
-/+ buffers/cache:       1130       6811
Swap:        16383          0      16383
hatefu1_dead
()
Ответ на: комментарий от hatefu1_dead

Вы указываете на различия в колонке «cached»? Это значение зависит от тонны условий и непригодно для мониторинга tmpfs. У меня, как видите, оно не меняется.

Axon ★★★★★
()

Всегда было интересно насчёт tmpfs, рамдисков и прочих «SSD для нищих» - я правильно понимаю, что данные хранятся в оперативке суть ДВАЖДЫ - один раз в виде файла на рамдиске, второй - в виде внутренностей того же файла загруженных той или иной программой? Или есть некая фича, чтобы оно не дублилось?

yu-boot ★★★★★
()
Ответ на: комментарий от Axon

не. в основном на used и free. вижу, что не меняется. а если из /dev/urandom сделать дамп на 1гб, тоже не изменится? тогда действительно free не показывает то, что нужно.

hatefu1_dead
()
Ответ на: комментарий от hatefu1_dead

а если из /dev/urandom сделать дамп на 1гб, тоже не изменится?

Да.

тогда действительно free не показывает то, что нужно.

Он и не должен. Помнится, читал об этом в каком-то мане, но забыл в каком.

Axon ★★★★★
()
Ответ на: комментарий от hatefu1_dead

Вот что нашёл:

http://lxr.linux.no/#linux+v3.6.3/Documentation/filesystems/tmpfs.txt

Since tmpfs lives completely in the page cache and on swap, all tmpfs pages currently in memory will show up as cached. It will not show up as shared or something like that. Further on you can check the actual RAM+swap use of a tmpfs instance with df(1) and du(1).

Axon ★★★★★
()
Ответ на: комментарий от Axon

all tmpfs pages currently in memory will show up as cached

но у тебя cached не вырос, а страницам из tmpfs некуда же деваться, кроме памяти и свопа. более того cached + used + free ~= total. а, кстати, сразу после удаления /tmp/tempfile тоже никаких изменений free не показывает?

hatefu1_dead
()
Ответ на: комментарий от yu-boot

Всегда было интересно насчёт tmpfs, рамдисков и прочих «SSD для нищих» - я правильно понимаю, что данные хранятся в оперативке суть ДВАЖДЫ - один раз в виде файла на рамдиске, второй - в виде внутренностей того же файла загруженных той или иной программой? Или есть некая фича, чтобы оно не дублилось?

Обычные файлы после чтения их содержимого тоже хранятся дважды: один раз в виде страницы кэша, второй — в виде внутренностей того же файла загруженных той или иной программой. Так что никакой разницы нет.

geekless ★★
()
Последнее исправление: geekless (всего исправлений: 2)
Ответ на: комментарий от hatefu1_dead

но у тебя cached не вырос, а страницам из tmpfs некуда же деваться, кроме памяти и свопа.

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

а, кстати, сразу после удаления /tmp/tempfile тоже никаких изменений free не показывает?

Cached уменьшается, но потом быстро заполняется обратно.

Axon ★★★★★
()
Ответ на: комментарий от yu-boot

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

Таково устройство современного управления виртуальной памятью и кэшем, чему ты удивляешься. Чтобы не было дублирования, надо не читать данные при помощи read(), а делать mmap().

Да, с учётом кэша получается что при рамдиске будет уже ТРИ раза одно и то же?

Не в курсе насчёт этого. Возможно, есть какой-нибудь флаг, чтобы не держать в страничном кэше данные с рамдиска, а сразу отбрасывать.

geekless ★★
()
Последнее исправление: geekless (всего исправлений: 1)

Создайте файл свопа в /tmp

buddhist ★★★★★
()
Ответ на: комментарий от Axon

разноцветное многостраничное перегруженное приглашение консоли со смайликами

неужели таки осилил zsh

zolden ★★★★★
()
Ответ на: комментарий от zolden

неужели таки осилил zsh

Да. :-) К слову, из лишнего там только дата, да смайлик. Смайлик несёт очень важную функцию увеличения количества позитива в мире и места почти не занимает. А дата - пусть будет, без неё пустое место сиротливо как-то смотрится.

Axon ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.