首页 > 解决方案 > Linux:本地存储主要被 pip 的过多缓存消耗

问题描述

问题

我最近遇到了一个与内存相关的问题,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 计算引擎)分配了 15GB 的磁盘。这很快就被操作系统消耗掉了,磁盘又被刷爆了。

我试过的

经过调查,我发现所有数据都开始存储在系统中.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并重新启动了 VM。这奏效了,整体存储量下降了50%。像这样:

/dev/sda1      46377792     21769340     22600164  50% /

但不提供对行为的解释或防止发生。

任何关于pip\http它是什么以及它为什么会这样表现的信息对于永久措施都是非常有用的。

标签: pythonlinuxpip

解决方案


推荐阅读