Проблема с перестановкой памяти в Ubuntu - PullRequest
0 голосов
/ 18 декабря 2010

Когда я запускаю top и показываю, как использовать своп, я получаю следующий вывод.Тем не менее, я отключил своп с swapoff -a до запуска Firefox.Что тогда отображается в поле SWAP?Когда я делаю cat /proc/meminfo, я получаю ненулевое значение для поля с именем SwapCached.Что это?Я предполагаю, что это совокупность всех значений SWAP, показанных в top.Как они связаны с общей памятью, используемой процессом?

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  SWAP 
    COMMAND                                                                                                                                      
         1604 dumrat    20   0  287m  62m  26m R    1  3.1   0:05.03 225m firefox-bin                                                                                                                                  
         1415 dumrat     9 -11 94264 4668 3552 S    0  0.2   0:00.10  87m pulseaudio 

1 Ответ

0 голосов
/ 18 декабря 2010

Мой лучший догадка id this.

Когда вы говорите swapoff, он предотвращает дальнейшую «замену» задач (технически это подкачка страниц, а не подкачку), но не удаляет уже поменявшиеся страницы со сменных устройств. Часто различные разделяемые библиотеки переставляются прямо в момент загрузки: они здесь для того, чтобы оставаться надолго, и нет смысла тратить время на их замену при высокой нагрузке. Эти библиотеки находятся в оперативной памяти, если они нужны активным процессам, но также в пространстве подкачки.

Возможно, Firefox использует некоторые из этих библиотек, которые уже сопоставлены с пространством подкачки - Xlib, GTK и т. Д., И это пространство подкачки противоречит столбцу «SWAP». Linux стремится подсчитать все общие страницы для каждого процесса, который разделяет их, ОЗУ или нет.

Опять же, это мое предположение; возьмите с собой крупицу соли.

...