Linux: локальное хранилище в значительной степени занято чрезмерным кешем из pip - PullRequest
0 голосов
/ 13 июля 2020

Проблема

Недавно я столкнулся с проблемой, связанной с памятью, когда сценарий python пытается выполнить, но выдает следующую ошибку:

Traceback (most recent call last) :
    File "FiveMinutes.py", line 56, in <module>
        main()
    File "FiveMinutes.py", line 41, in main
        f.write('hello')
OSError: [Errno 28] No Space left on device

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

/dev/sda1       46377792 44369504         0 100% /

Это показывает, что диск заполнен. Поэтому я выделил виртуальной машине (GCP Compute Engine) на 15 ГБ больше диска. Вскоре все это было израсходовано ОС, и диск снова был исчерпан.

Что я пробовал

Проведя расследование, я обнаружил, что все данные начали храниться внутри система .cache/pip/http. Что показало:


root@serval-1:~/.cache/pip/http# du --max-depth=1 -h
42M     ./3
25M     ./c
13M     ./8
22M     ./4
15M     ./a
1.4M    ./e
20M     ./6
2.4M    ./9
6.6M    ./d
57M     ./1
3.2M    ./7
676K    ./5
16M     ./b
2.9M    ./2
1.2M    ./f
660K    ./0
226M    .

(Модуль http довольно часто используется в моей кодовой базе, поэтому показ всех его применений в этом вопросе не был бы таким полезным, хотя при необходимости с радостью предоставлю) .

В качестве временной меры я удалил этот .cache и перезапустил виртуальную машину. Это сработало и уменьшило общий объем хранилища на 50% . Примерно так:

/dev/sda1      46377792     21769340     22600164  50% /

Но не дает объяснения поведения или предотвращения возникновения.

Любая информация о том, что такое pip\http и почему он ведет себя, была бы действительно полезной на постоянную меру.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...