ZaLinux.ru

Почему процессы gvfsd занимают много памяти и можно ли их отключить

gvfsd занимает слишком много памяти

На некоторых системах Linux процессы gvfsd занимают довольно много памяти — некоторые пользователи говорят о сотнях мегабайт, некоторые о гигабайтах. Что на самом деле происходит в этом процессе? Могу ли я уменьшить занимаемую им памятью?

gvfsd — это процесс-демон для GVFS, виртуальной файловой системы GNOME (или, возможно, её предшественницы, GnomeVFS). Это компонент GNOME, который обрабатывает автоматическое монтирование файловой системы, когда вы вошли в рабочий стол Linux на основе GNOME. Сюда входят такие устройства, как флэш-накопители USB и внешние жёсткие диски, оптические диски (CD/DVD), сетевые папки Samba или NFS или SSHFS, доступ к телефону на Android с помощью MTP, а также другие полезные файловые системы пользовательского пространства (FUSE).

Что касается использования памяти: подсчёт использования памяти в Linux сложен, и в зависимости от того, какой инструмент вы используете и какое поле вывода вы читаете, число может сильно отличаться от того, сколько физической памяти фактически используется процессом. Смотрите «Как правильно посмотреть сколько оперативной памяти потребляет процесс» для получения более подробной информации. По сути, многие инструменты для проверки использования памяти в Linux не сообщают об используемой реальной памяти, а вместо этого сообщают, сколько памяти занял бы процесс, если бы он был единственным запущенным процессом.

Но большая часть этой памяти распределяется между несколькими процессами — в моей системе gvfsd связан со многими библиотеками, такими как libdbus-1, libc и libpthread, которые также используются многими другими процессами. Подобные общие библиотеки нужно загружать только один раз, и все процессы, которым они нужны, используют одну и ту же копию в памяти, но это приводит к завышению сообщаемого использования памяти.

Как посчитать, сколько на самом деле занимают оперативной памяти процессы gvfsd

Следующая команда выведет все процессы gvfsd и покажет (во втором столбце) сколько каждый из них занимает памяти в килобайтах:

ps -e -o pid,rss,cmd | grep gvfs

А следующая большая команда посчитает, сколько потребляют оперативной памяти все процессы gvfsd:

x=0; while read -r line ; do x=$((x+$line)); done < <(pmap -x `ps -e | grep gvfs | awk '{print $1}'` | grep total | awk '{print $4}'); echo $x

У меня получилось 88860, то есть около 90 мегабайт — на мой взгляд, это совсем немного.

Я подключил мобильный телефон к компьютеру, а также подключился к парочке сетевых файловых систем — в результате объём потребляемой процессами gvfsd оперативной памяти увеличился до 118 мегабайт. На мой взгляд, это совсем немного, особенно учитывая, что на моём домашнем ПК 32 гигабайта ОЗУ.

После отключения этого всего, расход памяти вернулся к исходному уровню.

Можно ли отключить и удалить GVFS? Как отключить GVFS?

При полном удалении GVFS, скорее всего, система не перестанет работать, но вы лишитесь всех удобств, связанных с перечисленной выше функциональностью: флешки, внешние и оптические диски перестанут автоматически монтироваться при их подключении к компьютеру, вы не сможете получить доступ к карте памяти и внутренней памяти телефона на Android, не сможете воспользоваться некоторыми сетевыми файловыми системами (общими папками).

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

Остановка все сервисов gvfs:

sudo systemctl --user stop gvfs*

Чтобы быть уверенным, что GVFS точно не запущены:

sudo kill $(ps -A | grep gvfs | awk '{print $1}')

Эта команда не позволяет GVFS запуститься:

sudo chmod 0000 /usr/lib/systemd/user/gvfs*

Если вновь нужны службы GVFS, то выполните следующий код и для уверенности перезагрузитесь. Эта команда снова включает GVFS:

sudo chmod 0644 /usr/lib/systemd/user/gvfs*

Заключение

Без необходимости не трогайте службы GVFS — количество сэкономленной памяти незначительно, последствия могут стать для вас непредвиденными.

Если для вас важно сэкономить несколько десятков мегабайт, то все показанные действия вы выполняете на свой страх и риск!

Рекомендуемые статьи:

1 Комментарий

  1. Kali

    Спасибо. Это самая исчерпывающая информация по GVFS.

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *