Есть такие вопросы, как это, но никто не имеет ответа, который работает для меня. Возможно, моя система просто неправильно сконфигурирована.
Моя проблема в том, что после некоторого времени безотказной работы (через несколько дней) оперативная память на моем настольном компьютере (Ubuntu 16.04 LTS) полностью заполнена, и графический интерфейс начинает задерживаться и становится невосприимчивым / непригодным для использования.
Вывод free:
total used free shared buff/cache available
Mem: 16326212 5633804 395072 10026328 10297336 184458
Swap: 0 0 0
Что не помогает в этом:
sync; sudo sh -c 'echo 3 >/proc/sys/vm/drop_caches'
=> практически без изменений в числах выше
swapoff -a
=> no change (swap отключен в любом случае)
Поразительная разница во всех выводах free, размещенных в связанных вопросах, заключается в том, что большая часть моей памяти занята shared.
Однако ipcs -m | awk '{sum+=$5} END{print sum}' дает число только около 213 МБ.
Возможно, связано: у меня есть несколько путей, сопоставленных с RAM-диском (от /etc/fstab):
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0
tmpfs /var/log tmpfs defaults,noatime,mode=0755 0 0
tmpfs /var/log/apt tmpfs defaults,noatime 0 0
, но там нет никакой проблемы:
Filesystem Size Used Avail Use% Mounted on
tmpfs 1.6G 22M 1.6G 2% /run
tmpfs 1.6G 132K 1.6G 1% /run/user/1000
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup
tmpfs 7.8G 12M 7.8G 1% /var/tmp
tmpfs 7.8G 1.7M 7.8G 1% /var/log
tmpfs 7.8G 143M 7.7G 2% /dev/shm
tmpfs 7.8G 8.0K 7.8G 1% /var/log/apt
tmpfs 7.8G 878M 7.0G 12% /tmp
...
кроме, возможно,
udev 7.8G 7.8G 0 100% /dev
Любые другие идеи?
Эта строка
udev 7.8G 7.8G 0 100% /dev
действительно была отличительной чертой проблемы. Вероятно, это крепление никогда не будет заполнено на 100%. Прочитав использование памяти High SHMem! Я обнаружил, что bootchart заполнил это полностью. После удаления bootchart и удаления /dev/.bootchart все возвращается в нормальное состояние, включая использование памяти shared:
total used free shared buff/cache available
Mem: 16326212 3258332 7929904 1177272 5137976 10981178
Swap: 0 0 0
Вам нужно узнать, что заполняет память вашего компьютера. Первое, что приходит мне на ум, - это браузер. Современные браузеры используют безумные объемы памяти.
Вы можете узнать, что использует объем памяти с smem. Для Ubuntu 17.x есть smem: https://packages.ubuntu.com/artful/smem. Это зависит только от python и python-matplotlib, которые доступны на Ubuntu 16.x. Таким образом, вы можете загрузить пакет smem и установить его с помощью dpkg -i smem_1.4-2_all.deb.
После его установки вы можете просто запустить smem и посмотреть, какой процесс использует сколько памяти.
Как только вы узнаете, что заполняет память, вы можете просто остановить этот процесс. F.ex. закрытие вкладок в браузере. Кроме того, остановка и запуск браузера может помочь освободить некоторую память.
Еще одна вещь - вы должны включить swap.
Еще одна вещь - поскольку, по-видимому, вы не используете swap, тогда «GUI начинает отставать и становится невосприимчивым / непригодным для использования», вероятно, не вызвано тем, что память но с помощью какого-либо процесса, слишком большого доступа к диску (текущая резервная копия, восстановление базы данных mlocate приходят мне на ум) или слишком много использования процессора. Вы должны иметь возможность диагностировать «слишком много использования ЦП» с помощью top и слишком много использования ввода-вывода с помощью iotop (apt-get install iotop).
Эта строка
udev 7.8G 7.8G 0 100% /dev
действительно была отличительной чертой проблемы. Вероятно, это крепление никогда не будет заполнено на 100%. Прочитав использование памяти High SHMem! Я обнаружил, что bootchart заполнил это полностью. После удаления bootchart и удаления /dev/.bootchart все возвращается в нормальное состояние, включая использование памяти shared:
total used free shared buff/cache available
Mem: 16326212 3258332 7929904 1177272 5137976 10981178
Swap: 0 0 0
Вам нужно узнать, что заполняет память вашего компьютера. Первое, что приходит мне на ум, - это браузер. Современные браузеры используют безумные объемы памяти.
Вы можете узнать, что использует объем памяти с smem. Для Ubuntu 17.x есть smem: https://packages.ubuntu.com/artful/smem. Это зависит только от python и python-matplotlib, которые доступны на Ubuntu 16.x. Таким образом, вы можете загрузить пакет smem и установить его с помощью dpkg -i smem_1.4-2_all.deb.
После его установки вы можете просто запустить smem и посмотреть, какой процесс использует сколько памяти.
Как только вы узнаете, что заполняет память, вы можете просто остановить этот процесс. F.ex. закрытие вкладок в браузере. Кроме того, остановка и запуск браузера может помочь освободить некоторую память.
Еще одна вещь - вы должны включить swap.
Еще одна вещь - поскольку, по-видимому, вы не используете swap, тогда «GUI начинает отставать и становится невосприимчивым / непригодным для использования», вероятно, не вызвано тем, что память но с помощью какого-либо процесса, слишком большого доступа к диску (текущая резервная копия, восстановление базы данных mlocate приходят мне на ум) или слишком много использования процессора. Вы должны иметь возможность диагностировать «слишком много использования ЦП» с помощью top и слишком много использования ввода-вывода с помощью iotop (apt-get install iotop).