Память заполнена, в основном занята "разделяемой", графический интерфейс не отвечает
Есть миллионы таких вопросов, но ни один из них не имеет ответа, который мне подходит. Возможно, моя система просто неправильно настроена.
Моя проблема в том, что после некоторого времени безотказной работы (несколько дней) оперативная память на моем настольном компьютере (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
=> Без изменений (своп все равно отключен)
Разительная разница во всех выходах 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
Есть еще идеи?
2 ответа
Эта линия
udev 7.8G 7.8G 0 100% /dev
был действительно отличительной чертой проблемы. Это крепление никогда не должно быть заполнено на 100 %. Прочитав высокое использование памяти 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, Там в smem упакован для Ubuntu 17.x здесь: https://packages.ubuntu.com/artful/smem. Зависит только от python а также python-matplotlib, которые доступны на Ubuntu 16.x. Таким образом, вы сможете загрузить пакет smm и установить его с dpkg -i smem_1.4-2_all.deb,
После установки вы можете просто запустить smem и увидим, какой процесс использует сколько памяти.
Как только вы узнаете, что заполняет память, вы можете просто остановить этот процесс. F.ex. помогает закрытие вкладок в браузере. Также остановка и запуск браузера могут помочь освободить часть памяти.
Еще одна вещь - вы должны включить своп. Своп расширит вашу доступную память.
Еще одна вещь - поскольку - по-видимому - вы не используете swap, то "графический интерфейс начинает отставать и перестает отвечать на запросы / становится непригодным для использования", вероятно, вызвано не переполнением памяти, а каким-либо процессом, слишком много обращающимся к диску (мне кажется, что мне нужно запустить резервное копирование, перестроить базу данных mlocate или использовать слишком много ресурсов процессора. Вы должны быть в состоянии диагностировать "чрезмерную загрузку процессора" с top и слишком много использования ввода-вывода с iotop (apt-get install iotop).