2

Мой ноутбук - Thinkpad x220, 4G RAM, жесткий диск - 7200 об / мин, установлен с Ubuntu 12.04, используя рабочий стол Unity.

Когда я открываю затмение и хром, они съедают около 2G памяти. Вот free -m результат:

             total       used       free     shared    buffers     cached
Mem:          3841       3301        540          0         10        956
-/+ buffers/cache:       2334       1507
Swap:         8187        306       7881

И top результат:

 Mem:   3934188k total,  3540508k used,   393680k free,    45680k buffers
 Swap:  8384508k total,   313512k used,  8070996k free,  1078888k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                       
 5552 martin    20   0 4249m 388m 6560 S    0 10.1   2:46.28 java                                                                       
 3369 martin    20   0 2548m 182m  32m R    1  4.7  29:19.64 chrome                                                                     
 3406 martin    20   0 1000m 155m  16m S    0  4.1   4:18.97 chrome                                                                     
 2736 martin    20   0 1582m 106m  29m S    1  2.8  13:10.27 compiz                                                                     
 3704 martin    20   0  945m  85m 8396 S    0  2.2   0:15.60 chrome                                                                     
11047 martin    20   0  926m  82m  23m S    0  2.2   0:06.52 chrome                                                                     
11443 martin    20   0  915m  72m  21m S    0  1.9   0:46.08 chrome                                                                     
 4280 martin    20   0  822m  66m  12m S    4  1.7  14:59.41 chrome

Через некоторое время, около 10 минут, у меня доступно только 100M+ памяти, затем система начинает подменять память на диск, что приводит к полной остановке компьютера и восстанавливается после завершения подкачки.

У меня уже есть vm.swappiness = 10

Я искал в Google, и в какой-то статье говорилось, что когда памяти недостаточно, система освобождает кэш и использует его в качестве памяти. Но мне кажется, что кеш никогда не освобождается. Когда системе не хватает памяти (но на самом деле у меня достаточно памяти, некоторая память просто используется для кеширования), она не будет использовать кеш, вместо этого она подменяет память непосредственно на диск, что вызывает зависание.

Как я могу избежать этого?

Уменьшение кешируемой памяти?

1 ответ1

0

Если вам нужно больше свободной памяти, вы можете получить ее, установив vm.min_free_kbytes . Например, если вы хотите, чтобы система тратила 256 МБ памяти, используйте эту команду:

sysctl -w vm.min_free_kbytes=262144

Теперь система будет свободна на 256 МБ и будет иметь на 256 МБ меньше памяти для работы. Это ухудшит производительность, но уменьшит кеш, как вы и просили.

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

Вы должны восстановить все настройки по умолчанию и работать над своей реальной проблемой - то, что ваш компьютер зависает.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .