Почему & ldquo; apt-get .update & rdquo; значительно увеличить использование памяти? [закрыто]

попытаться использовать функцию синхронизации Firefox.

https://wiki.mozilla.org/Firefox_Sync

0
задан 25 October 2017 в 20:02

2 ответа

Использование памяти apt - это комбинация того, что она делает, и как это делается.

apt update (или apt-get update в старых системах) загружает не простой список доступных пакеты, но полная база данных пакетов, версий, описаний и различной информации. Он загружает эту базу данных из каждого репозитория.

Вы можете увидеть размер каждого файла с помощью команды ls -lh /var/lib/apt/lists

Вот пример из 17.04. Загруженные файлы загружаются в обновление и перезагружаются каждый раз, когда вы запускаете apt, близки к 10 МБ:

-rw-r--r-- 1 root root 88K Oct 24 06:41 security.ubuntu.com_ubuntu_dists_zesty-security_InRelease -rw-r--r-- 1 root root 15K Oct 24 04:56 security.ubuntu.com_ubuntu_dists_zesty-security_main_dep11_Components-amd64.yml.gz -rw-r--r-- 1 root root 18K Oct 24 04:56 security.ubuntu.com_ubuntu_dists_zesty-security_main_dep11_icons-64x64.tar.gz -rw-r--r-- 1 root root 156 Oct 24 05:02 security.ubuntu.com_ubuntu_dists_zesty-security_multiverse_dep11_Components-amd64.yml.gz -rw-r--r-- 1 root root 27K Oct 24 04:59 security.ubuntu.com_ubuntu_dists_zesty-security_universe_dep11_Components-amd64.yml.gz -rw-r--r-- 1 root root 41K Oct 24 04:59 security.ubuntu.com_ubuntu_dists_zesty-security_universe_dep11_icons-64x64.tar.gz -rw-r--r-- 1 root root 88K Oct 24 06:37 us.archive.ubuntu.com_ubuntu_dists_zesty-backports_InRelease -rw-r--r-- 1 root root 4.8K Oct 24 04:42 us.archive.ubuntu.com_ubuntu_dists_zesty-backports_universe_dep11_Components-amd64.yml.gz -rw-r--r-- 1 root root 88K Oct 24 06:37 us.archive.ubuntu.com_ubuntu_dists_zesty-updates_InRelease -rw-r--r-- 1 root root 1.4M Oct 24 01:55 us.archive.ubuntu.com_ubuntu_dists_zesty-updates_main_binary-amd64_Packages -rw-r--r-- 1 root root 1.3M Oct 24 01:55 us.archive.ubuntu.com_ubuntu_dists_zesty-updates_main_binary-i386_Packages -rw-r--r-- 1 root root 63K Oct 24 05:06 us.archive.ubuntu.com_ubuntu_dists_zesty-updates_main_dep11_Components-amd64.yml.gz -rw-r--r-- 1 root root 32K Oct 24 05:06 us.archive.ubuntu.com_ubuntu_dists_zesty-updates_main_dep11_icons-64x64.tar.gz -rw-r--r-- 1 root root 6.2K Oct 24 05:12 us.archive.ubuntu.com_ubuntu_dists_zesty-updates_multiverse_dep11_Components-amd64.yml.gz -rw-r--r-- 1 root root 879K Oct 24 01:55 us.archive.ubuntu.com_ubuntu_dists_zesty-updates_universe_binary-amd64_Packages -rw-r--r-- 1 root root 877K Oct 24 01:55 us.archive.ubuntu.com_ubuntu_dists_zesty-updates_universe_binary-i386_Packages -rw-r--r-- 1 root root 221K Oct 24 05:09 us.archive.ubuntu.com_ubuntu_dists_zesty-updates_universe_dep11_Components-amd64.yml.gz -rw-r--r-- 1 root root 242K Oct 24 05:09 us.archive.ubuntu.com_ubuntu_dists_zesty-updates_universe_dep11_icons-64x64.tar.gz

Причина, по которой apt занимает 200 МБ вместо 10 МБ, заключается в том, что apt должен объединить все эти базы данных в один, а затем сортировать и фильтровать эту огромную базу данных для фактического вычисления действия пакета. Каждое действие занимает больше памяти.

Большинство функций apt написаны на Python3, что упрощает их поддержку, но полагается на сбор мусора и управление памятью Python3. Python никоим образом не является хаосом памяти, но он также эффективен с точки зрения памяти, когда, скажем, слияние баз данных. Попробуйте: напишите набор баз данных и посмотрите, сколько памяти требуется для того, чтобы Python3 объединил их. Если это вас беспокоит, тогда не стесняйтесь вносить лучший алгоритм в Python3.

Наконец, apt (и Python3) освобождают используемую память после завершения. Если вы обнаружите утечку памяти в apt, напишите отчет об ошибке!

1
ответ дан 18 July 2018 в 04:33

Использование памяти apt - это комбинация того, что она делает, и как это делается.

apt update (или apt-get update в старых системах) загружает не простой список доступных пакеты, но полная база данных пакетов, версий, описаний и различной информации. Он загружает эту базу данных из каждого репозитория.

Вы можете увидеть размер каждого файла с помощью команды ls -lh /var/lib/apt/lists

Вот пример из 17.04. Загруженные файлы загружаются в обновление и перезагружаются каждый раз, когда вы запускаете apt, близки к 10 МБ:

-rw-r--r-- 1 root root 88K Oct 24 06:41 security.ubuntu.com_ubuntu_dists_zesty-security_InRelease -rw-r--r-- 1 root root 15K Oct 24 04:56 security.ubuntu.com_ubuntu_dists_zesty-security_main_dep11_Components-amd64.yml.gz -rw-r--r-- 1 root root 18K Oct 24 04:56 security.ubuntu.com_ubuntu_dists_zesty-security_main_dep11_icons-64x64.tar.gz -rw-r--r-- 1 root root 156 Oct 24 05:02 security.ubuntu.com_ubuntu_dists_zesty-security_multiverse_dep11_Components-amd64.yml.gz -rw-r--r-- 1 root root 27K Oct 24 04:59 security.ubuntu.com_ubuntu_dists_zesty-security_universe_dep11_Components-amd64.yml.gz -rw-r--r-- 1 root root 41K Oct 24 04:59 security.ubuntu.com_ubuntu_dists_zesty-security_universe_dep11_icons-64x64.tar.gz -rw-r--r-- 1 root root 88K Oct 24 06:37 us.archive.ubuntu.com_ubuntu_dists_zesty-backports_InRelease -rw-r--r-- 1 root root 4.8K Oct 24 04:42 us.archive.ubuntu.com_ubuntu_dists_zesty-backports_universe_dep11_Components-amd64.yml.gz -rw-r--r-- 1 root root 88K Oct 24 06:37 us.archive.ubuntu.com_ubuntu_dists_zesty-updates_InRelease -rw-r--r-- 1 root root 1.4M Oct 24 01:55 us.archive.ubuntu.com_ubuntu_dists_zesty-updates_main_binary-amd64_Packages -rw-r--r-- 1 root root 1.3M Oct 24 01:55 us.archive.ubuntu.com_ubuntu_dists_zesty-updates_main_binary-i386_Packages -rw-r--r-- 1 root root 63K Oct 24 05:06 us.archive.ubuntu.com_ubuntu_dists_zesty-updates_main_dep11_Components-amd64.yml.gz -rw-r--r-- 1 root root 32K Oct 24 05:06 us.archive.ubuntu.com_ubuntu_dists_zesty-updates_main_dep11_icons-64x64.tar.gz -rw-r--r-- 1 root root 6.2K Oct 24 05:12 us.archive.ubuntu.com_ubuntu_dists_zesty-updates_multiverse_dep11_Components-amd64.yml.gz -rw-r--r-- 1 root root 879K Oct 24 01:55 us.archive.ubuntu.com_ubuntu_dists_zesty-updates_universe_binary-amd64_Packages -rw-r--r-- 1 root root 877K Oct 24 01:55 us.archive.ubuntu.com_ubuntu_dists_zesty-updates_universe_binary-i386_Packages -rw-r--r-- 1 root root 221K Oct 24 05:09 us.archive.ubuntu.com_ubuntu_dists_zesty-updates_universe_dep11_Components-amd64.yml.gz -rw-r--r-- 1 root root 242K Oct 24 05:09 us.archive.ubuntu.com_ubuntu_dists_zesty-updates_universe_dep11_icons-64x64.tar.gz

Причина, по которой apt занимает 200 МБ вместо 10 МБ, заключается в том, что apt должен объединить все эти базы данных в один, а затем сортировать и фильтровать эту огромную базу данных для фактического вычисления действия пакета. Каждое действие занимает больше памяти.

Большинство функций apt написаны на Python3, что упрощает их поддержку, но полагается на сбор мусора и управление памятью Python3. Python никоим образом не является хаосом памяти, но он также эффективен с точки зрения памяти, когда, скажем, слияние баз данных. Попробуйте: напишите набор баз данных и посмотрите, сколько памяти требуется для того, чтобы Python3 объединил их. Если это вас беспокоит, тогда не стесняйтесь вносить лучший алгоритм в Python3.

Наконец, apt (и Python3) освобождают используемую память после завершения. Если вы обнаружите утечку памяти в apt, напишите отчет об ошибке!

1
ответ дан 24 July 2018 в 18:06

Другие вопросы по тегам:

Похожие вопросы: