LINUX.ORG.RU

ручное управление памятью


0

0

Вот шапка top:
top - 09:35:17 up 9 days, 21:45, 20 users,  load average: 0.31, 0.72, 1.16
Tasks: 212 total,   1 running, 211 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.3%us,  0.5%sy,  0.0%ni, 98.2%id,  0.7%wa,  0.2%hi,  0.2%si,  0.0%st
Mem:   4036296k total,  3482516k used,   553780k free,    21320k buffers
Swap:  4200956k total,  2114304k used,  2086652k free,  1888408k cached

видно, что 2gb в свопе, хотя 512mb свободно
можно ли узнать - кто "сидит" в свопе и "выгнать" его от туда в обычную память?
также 1888408k на дисковый кэш - не очень ли много? можно ли уменьшить? (опятьже чтобы из свопа программа вернулась в обычную память)
★★★★★

Re: ручное управление памятью

> можно ли узнать - кто "сидит" в свопе и "выгнать" его от туда в обычную память?

Узнать вероятно никак, тем более в свопе сидят не целыми приложениями, а кусками :)

А выгнать - когда понадрбится то, что там лежил, тогда ядро само достанет.

Зачем заниматься такой ерундой?

alexru ★★★★ ()
Ответ на: Re: ручное управление памятью от alexru

Re: ручное управление памятью

заниматся затем, что действительно когда часть нужного приложения там сидит - оно начинает медленно работать
если конкретно - говорю об eclipse
да это java, но для себя других альтернатив не вижу (C++)
есть еще набор убодных мне java-приложений
вот и хотел - все что касается нужного приложения выделить в RAM чтобы не тормозило изза свопа
в основном такие тормоза с утра - после просыпания из hibernate
также непонятно зачем такой дисковый кэш большой

x905 ★★★★★ ()

Re: ручное управление памятью

> "выгнать" его от туда в обычную память?

sudo swapoff -a && sudo swapon -a

INFOMAN ★★★★★ ()

Re: ручное управление памятью

Если я не ошибаюсь то оно меняется здесь /proc/sys/vm/swappiness значеня от 0 до 100, по умолчанию 60

If you want kernel to swap out more process memory and thus cache more file contents increase the value. Otherwise, if you would like kernel to swap less decrease it.

s_m ()

Re: ручное управление памятью

>также 1888408k на дисковый кэш - не очень ли много? можно ли уменьшить? (опятьже чтобы из свопа программа вернулась в обычную память)

В отличии от Windows, в Linux дисковый кэш динамический. Тоесть, по возможности, Linux пытается использовать почти всю свободную память под дисковый кэш. Как только какому-либо приложению потребуется память, дисковый кэш автоматически уменьшится. Если ты каким-то образом сможешь ограничить размер дискового кэша, это отрицательным образом скажется на производительности системы.

В твоём случае, hibernate сбросил всю память в swap, в после просыпания часть памяти осталась в свопе (так как к ней небыло обращений), а дисковый кэш вырос в размере, заняв неиспользуемую память.

Black_Shadow ★★★★★ ()
Ответ на: Re: ручное управление памятью от x905

Re: ручное управление памятью

> безопасно ли делать swapoff? а если памяти нехватит?

нет, не безопасно для приложений. swappines подбери. У меня оно вообще 0 стоит на девелоперской тачке, иначе линух свопился, отдавая память в пользу дискового кэша и это создавало очень большие тормоза. Вообще, это значение подбирать нужно индивидуально.

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