精华内容
下载资源
问答
  • 简介:Harbor私有仓库运行一段时间后,仓库中存有大量镜像,会占用太多的存储空间。直接通过Harbor界面删除相关镜像,并不会自动删除存储中的文件和镜像。需要停止Harbor服务,执行垃圾回收命令,进行存储空间清理和...

    简介:

    Harbor私有仓库运行一段时间后,仓库中存有大量镜像,会占用太多的存储空间。直接通过Harbor界面删除相关镜像,并不会自动删除存储中的文件和镜像。需要停止Harbor服务,执行垃圾回收命令,进行存储空间清理和回收。

    相关资料:

    1、Harbor用户手册中的相关说明:

    Next, delete the actual files of the repository using the registry's garbage collection(GC). Make sure that no one is pushing images or Harbor is not running at all before you perform a GC. If someone were pushing an image while GC is running, there is a risk that the image's layers will be mistakenly deleted which results in a corrupted image. So before running GC, a preferred approach is to stop Harbor first.

    Run the below commands on the host which Harbor is deployed on to preview what files/images will be affected:

    #要启用垃圾回收(GC),首先要关闭Harbor服务,然后再执行清理命令

    #停止Harbor相关服务

    $ docker-compose stop

    #使用--dry-run参数运行容器,预览运行效果,但不删除任何数据

    $ docker run -it --name gc --rm --volumes-from registry vmware/registry:2.6.2-photon garbage-collect --dry-run /etc/registry/config.yml

    #NOTE: The above option "--dry-run" will print the progress without removing any data.

    Verify the result of the above test, then use the below commands to perform garbage collection and restart Harbor.

    #不使用--dry-run参数,将删除相关的文件和镜像,

    $ docker run -it --name gc --rm --volumes-from registry vmware/registry:2.6.2-photon garbage-collect  /etc/registry/config.yml

    #重新启动Harbor相关服务

    $ docker-compose start

    图1:01-先在Harbor UI图形界面中删除不需要的镜像

    01-先在Harbor UI图形界面中删除不需要的镜像

    图2:02-停止Harbor服务,执行垃圾回收命令

    02-停止Harbor服务,执行垃圾回收命令

    2、数人云CTO肖总微信公号的文章:

    图3:老肖说两句截图

    03-老肖说两句截图

    图4:数人云CTO肖总-微信公众号-老肖说两句

    04-数人云CTO微信公众号-老肖说两句

    参考链接:

    Harbor用户指南

    https://github.com/vmware/harbor/blob/master/docs/user_guide.md

    删除容器镜像仓库中的容器镜像到底有多难?

    http://mp.weixin.qq.com/s?__biz=MzA4ODgwNTk1NQ==&mid=2649949694&idx=1&sn=eda4513942458714a1eb89aaa25c9954&chksm=882322d2bf54abc4cb4e5c37fe348e2849c14f3d7e2897a0d839a045d8789640a1b99ca26d44&mpshare=1&scene=2&srcid=0226hpbvbowRZphA0jkqkTlq&from=timeline#rd

    Garbage collection

    https://github.com/docker/docker.github.io/blob/master/registry/garbage-collection.md

    展开全文
  • 当表空间大小受限时,即便通过delete带条件删除部分数据,被删除数据所使用的空间,依然不会被释放。此时想要再添加新的数据可能会得到“磁盘空间不足”的报错。 一.创建实验场景(注:数据页的大小16k) 1. 删除...

    当表空间大小受限时,即便通过delete带条件删除部分数据,被删除数据所使用的空间,依然不会被释放。此时想要再添加新的数据可能会得到“磁盘空间不足”的报错。

    一.创建实验场景(注:数据页的大小16k)

    1. 删除测试环境中的表和表空间(确保数据库中TEST表空间及TEST_CLOB表仅为本实验所用)

    在这里插入图片描述

    2. 创建test表空间,大小为64M,并且关闭表空间自动扩展功能

    在这里插入图片描述

    3. 创建表

    在这里插入图片描述

    4. 构建一个往test_clob表中增加大量数据匿名块

    在这里插入图片描述
    等待匿名块执行完成,会收到如下报错:
    在这里插入图片描述

    5. 查看插入了多少条记录

    在这里插入图片描述

    6. 删除500条记录

    在这里插入图片描述
    再插入数据,看看是否报错?
    在这里插入图片描述
    truncate好用,然而不能带条件删除,表空间大小本身又有局限,怎么才能将尚未释放的存储空间用起来?

    二.解决方法:

    7. 以DBA身份创建存储过程

    在这里插入图片描述
    以DBA身份调用上述存储过程
    在这里插入图片描述

    8. 再插入500条试试,看是否报错?

    在这里插入图片描述
    查一下总记录数
    在这里插入图片描述
    问题解决。

    三.原理描述:

    执行完第6步,添加数据时,依然收到“磁盘空间不足”的报错,因为这时候应用回滚段还未清理,磁盘空间并未释放。

    未清理原因:由于需要根据回滚记录回溯、还原物理记录的历史版本信息,而不能在事务提交时立即清除当前事务产生的回滚记录。但是,如果不及时清理回滚段,可能造成回滚段空间的不断膨胀,占用大量磁盘空间。

    DM基于上述原因提供了自动清理、回收回滚段空间的机制。采取保留回滚段一段时间,然后自动清理回滚段空间的方式。这个保留回滚段的时间长度由UNDO_RETENTION参数指定,默认数值是900,单位是秒。

    这个参数是系统级动态参数,修改后即时生效,dm.ini 文件里可以查到它的值。
    在这里插入图片描述

    通过第7步,调整UNDO_RETENTION为1秒,并预留10秒给进程清理回滚段,之后将UNDO_RETENTION恢复为900秒。

    以上便是关于如何通过调整UNDO_RETENTION参数值,迅速解决delete数据后不能及时释放表空间的问题的方法了。

    展开全文
  • 但是博主发现能释放存储空间非常有限,而且对于usr目录下local文件夹里存储的文件是需要权限才能删除掉的。 A:怎样删除那些需要权限的无用的文件夹呢?? Q:首先快捷键Ctrl + Alt + T 打开终端,或者在搜索...

        最近一直在研究使用NVIDIA JETSON Tk1,由于是没用过linux的小白,因此遇到许多所多琐碎的小问题,而在网上需找相关的解决方案,发现可以参考的资料非常有限,于是萌生一个想法,希望把自己所遇到的问题及解决方法呈现给大家,共大家参考。虽然有一些很白痴的问题,但相信很多玩这块板子的人都会遇到,因此希望大牛们不要朝笑。

    OK,由于这块板子使用的初衷是为了解决计算机视觉和图像处理相关的问题,因此,博文的中心都是围绕解决相关的实际的问题展开的。

    开篇先说一下关于准备的工作。

    —————————————————————————————————————————————————————————————————————————————

    一.关于查看TK1存储和释放空间问题

    由于TK1的标配是16G+2G的形式,因此存储空间对于TK1来说是寸土寸金的。网上许多的ubuntu清理内存的教程都是适用的。

    比如:(转载)http://www.xitongzhijia.net/xtjc/20141203/31813.html

    但是博主发现能释放的存储空间非常有限,而且对于usr目录下local文件夹里存储的文件是需要权限才能删除掉的。

    A:怎样删除那些需要权限的无用的文件夹呢??

    Q:首先快捷键Ctrl + Alt + T 打开终端,或者在搜索里直接搜索Terminal,然后在输入”sudo -i“命令获得root权限,然后输入password,默认是ubuntu,然后cd进入你想进入的文件夹,我是想删除usr/local文件夹里的cuda-7.0,因为已经安装了cuda-6.5,因此cuda-7.0就成了侵占TK1仅有的16G内存的Trash。然后输入rm -r  cuda-7.0,再去文件夹里查看发现cuda-7.0就删除了。存储空间对于TK1来说是极其宝贵的,因此怎样不宜一次性安装太多东西。

    然后可以在Teminal里查看一下Tk1现在的存储情况。

    使用命令 df 即可查看硬盘情况。可以发现硬盘大小为14318640KB 已经使用12118832KB

    查看内存大小和使用情况使用命令free -m

    那我想查看TK1上哪些文件夹占的存储空间较大有什么方法呢?Tk1上有一个自带的Disk Usage Analyzer工具,存储空间展示非常清晰。这样你就能清晰地发现是谁占用的空间最大了。




    展开全文
  • 如果表的数据量非常巨大比如项目里一些日积月累不断变大的日志表,使用delete语句删除部分过期的日志数据可能需要执行很长时间,想要释放存储空间使用optimize优化也要优化很长时间,用truncate把整个表也不合适,...

            删除表数据我们通常会使用delete语句来删除,但是执行完delete语句删除了表中部分数据后你会发现表对应的存储文件大小并不会缩小,如果要进一步释放被删除数据的空间需要执行optimize table tablename命令来进行优化(详情可看看这篇文章:http://blog.51yip.com/mysql/1222.html)。如果表的数据量非常巨大比如项目里一些日积月累不断变大的日志表,使用delete语句删除部分过期的日志数据可能需要执行很长时间,想要释放存储空间使用optimize优化也要优化很长时间,用truncate把整个表也不合适,这种情况下建表的时候可以将表建成分区表,删数据的时候直接删表分区。

    下面我们来做一个小实验来测试这两种删数据的方式

    首先建一张名为test_log以时间字段为分区的表:

    CREATE TABLE `test_log` (
      `product_id` varchar(20) DEFAULT NULL COMMENT '客户端的产品标识',
      `client_version` varchar(20) DEFAULT NULL COMMENT '客户端的版本号简称',
      `os_type` varchar(20) DEFAULT NULL COMMENT '用户手机操作系统的类型',
      `imsi` varchar(50) DEFAULT NULL COMMENT '用户手机的 IMSI 号',
      `insert_time` datetime DEFAULT NULL COMMENT '当前日志记录的入库时间'
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='测试日志表'
    partition by range (to_days(insert_time))
    (	
    	PARTITION p0 VALUES LESS THAN (to_days('2016-01-01')),
    	PARTITION p1 VALUES LESS THAN (to_days('2016-02-01')),
    	PARTITION p2 VALUES LESS THAN (to_days('2016-03-01')),
    	PARTITION p3 VALUES LESS THAN (to_days('2016-04-01')),
    	PARTITION p4 VALUES LESS THAN (to_days('2016-05-01')),
    	PARTITION p5 VALUES LESS THAN (to_days('2016-06-01')),
    	PARTITION p6 VALUES LESS THAN (to_days('2016-07-01')),
    	PARTITION p7 VALUES LESS THAN (to_days('2016-08-01')),
    	PARTITION p8 VALUES LESS THAN (to_days('2016-09-01')),
    	PARTITION p9 VALUES LESS THAN (to_days('2016-10-01')),
    	PARTITION p10 VALUES LESS THAN (to_days('2016-11-01')),
    	PARTITION p11 VALUES LESS THAN (to_days('2016-12-01')),
    	PARTITION p12 VALUES LESS THAN MAXVALUE
    );


    可以看到个表分区的文件都为默认的空表大小96kb:


    导入一些测试数据后再看:


    方式一:使用delete语句删除

    删除p0分区对应的日期小于‘2016-01-01’的数据:

    mysql> delete from test_log where insert_time < '2016-01-01';
    Query OK, 15360 rows affected (0.15 sec)
    再看看分区表文件,可以看到只更新了时间,但是存储大小没有变化:


    执行optimize table test_log进行优化:

    mysql> optimize table test_log;
    +---------------+----------+----------+-----------------------------------------
    --------------------------+
    | Table         | Op       | Msg_type | Msg_text
                              |
    +---------------+----------+----------+-----------------------------------------
    --------------------------+
    | test.test_log | optimize | note     | Table does not support optimize, doing r
    ecreate + analyze instead |
    | test.test_log | optimize | status   | OK
                              |
    +---------------+----------+----------+-----------------------------------------
    --------------------------+
    2 rows in set (2.14 sec)
    再看看分区表文件,发现p0分区的文件变回了默认大小96kb,空间已经释放:

    需要特别注意的是,这种方式并不适合所有的表,optimize优化操作期间会造成锁表。


    方式二:删除表分区来删除数据

    执行ALTER TABLE test_log DROP PARTITION p1删除分区p1的数据:

    mysql> ALTER TABLE test_log DROP PARTITION p1;
    Query OK, 0 rows affected (0.04 sec)
    Records: 0  Duplicates: 0  Warnings: 0
    看看表分区文件,发现p1的分区文件已经被删除了自然也就不存在释放存储空间的问题了:

    一般日志表都需要定时删除,我们可以写一个存储过程来定时执行,如果有多张表,分区信息也相同的话,也可以放一个存储过程里一起删除:

    先创建一张分区信息表dict_table_partion:

    CREATE TABLE `dict_table_partion` (
      `par_name` varchar(10) DEFAULT NULL,
      `par_date` date DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    导入分区信息数据:

    再建一张存储删除分区语句的信息表drop_partion_sql:

    CREATE TABLE `drop_partion_sql` (
      `drop_sql` varchar(300) DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    导入需要的删除的表分区语句:


    新建一个存储过程pro_del_partion删除半年前的个日志表的分区数据:

    BEGIN
    	DECLARE v_par_date date DEFAULT DATE_FORMAT(CURRENT_DATE(), '%Y-%m-01') - INTERVAL + 6 + 1 MONTH;
    	DECLARE done INT DEFAULT 0;
      DECLARE v_drop_sql varchar(1000);
      DECLARE cur_index_sql cursor  for
    						SELECT t.drop_sql
    						FROM drop_partion_sql t;
      DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
    	SET @par_name = (SELECT par_name FROM dict_table_partion WHERE par_date = v_par_date);
    	OPEN cur_index_sql;   
      index_sql_loop:LOOP 
    			FETCH cur_index_sql INTO v_drop_sql; 
    		IF done=1 THEN
    			LEAVE index_sql_loop;
    		END IF;   
    		SET @s = concat(v_drop_sql, ' ', @par_name);
    		SELECT @s;
    		PREPARE stmt FROM @s;
    		EXECUTE stmt;
    		DEALLOCATE PREPARE stmt;
    	END LOOP index_sql_loop;
    END
    每月执行这个存储过程来删除日志表的分区数据。



    展开全文
  • 动态存储空间分配、管理和释放

    千次阅读 2018-10-12 13:56:20
    文章目录一、 C程序的存储空间布局二、动态存储空间分配 一、 C程序的存储空间布局 正文段。这是由 CPU 执行的机器指令部分。通常,这段是可共享的。通常是只读的,防止程序由于意外而修改其指令。 初始化数据段。...
  • 如果安装程序需要更多存储空间来升级,则可以使用Mac随附的工具释放空间。通过将内容存储在iCloud中或使用内置工具查找和删除大文件或不需要的文件来节省空间。那么可以用什么方法来释放储存空间呢?下面小编推荐给...
  • 【Mac篇】如何释放Mac上的存储空间

    千次阅读 2020-10-15 10:02:36
    本文介绍了如何手动清理并释放 Mac 上的存储空间,纯小白教学。
  • 如何释放Nintendo Switch内部存储空间

    千次阅读 2020-09-22 09:39:01
    您可以更改屏幕快照的默认保存位置(插入SD卡时,它应成为默认位置,但是如果您希望将屏幕快照保存到内部存储空间,则可以更改此设置),将屏幕快照从一个存储空间复制到另一个存储空间,或一次删除所有屏幕截图。...
  • C语言 局部变量存储空间的分配和释放 奇怪现象及猜想
  • 如何清理Xcode,释放Mac的存储空间

    千次阅读 2017-11-06 14:43:20
    经常使用Mac 的人会发现,自己的开发工具Xcode会变的越来越大,以至于电脑运行的越来越卡,这个时候,我们就需要知道如何来进行Mac空间的清理了移除 Xcode 运行安装 APP 产生的缓存文件(DerivedData) 只要重新运行Xcode...
  • // 使用new动态分配存储空间 #include using std::cout; int main() {  // 第1种方式  int *a=new int;  *a=1; ... // 释放动态存储空间  // 第2种方式  int *b=new int(2);
  • 1 FORTRAN这样的语言,不允许过程递归,不含可变体积的...2 C语言,允许递归过程,还允许用户动态地申请和释放存储空间,应采用以下哪种存储分配策略(B ) A 静态分配策略 B 栈式分配策略C 堆式分配策略 D 以上...
  • 第九章复习题 单选 FORTRAN这样的语言,不允许过程递归,不含可变...C语言,允许递归过程,还允许用户动态地申请和释放存储空间,应采用以下哪种存储分配策略(B)。 A 静态分配策略 B 栈式分配策略 C 堆式分配策...
  • C++_动态存储空间的分配和释放

    千次阅读 2016-03-13 17:35:14
    使用new申请空间: 特点:  1、没有名字,只能通过指针间接访问它们。  2、从堆中申请空间 分类: 变量:  语法:指针变量 = new 类型名;  Delete 指针变量  举例:int *p;
  • 这时为了更新需要将不用的内核文件删除,释放空间。 方法: 1: 在终端下察看已经安装的旧的内核: ctrl+alt+t——>进入终端——>输入命令:dpkg --get-selections|grep linux 如下: linux-后面带image的是...
  • 不过用了义端时间docker后,突然有一天我注意到C盘原本充裕的空间容量,不知怎么的,变成了红色,并伴随着系统告警:”C盘存储空间不足,请释放存储空间“。 经过一番排查发现,这一切竟然是docker desktop创建的镜像...
  • 动态申请存储空间

    千次阅读 2018-10-29 21:28:14
    “动态存储空间”是指程序运行期间,根据用户输入的信息决定分配空间的大小。需要对单元进行释放,分别用new 和delete 申请和释放空间。 1.申请  new 单目运算符。使用时,通常将它申请到的首地址赋值给指针变量...
  • OpenStack+Ceph存储空间回收

    千次阅读 2015-09-08 11:39:48
    开源分布式存储Ceph大行其道,Ceph支持Thinprovision,但是用户删除文件以后,在ceph中这部分空间并没有真正释放,这篇博文就讲述Linux的Discard/Trim空间回收机制,及其在OpenStack+Ceph部署中如何实现存储空间回收...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 386,818
精华内容 154,727
关键字:

怎么释放存储空间