我有一个git工作目录,并已添加到.git/objects/info/alternates这个工作目录不需要存储已经在我的机器上的另一个工作目录中的重复数据.(这是做什么的git clone --reference=DIRECTORY).但是,已存储在工作目录中的重复对象不会从我的.git/目录中删除.这意味着.git/目录保持很大.
如何摆脱重复的对象,使.git/目录更小?
尝试使用GetDiskFreeSpaceEx()读取在多个会话中创建的磁盘大小仅提供上一个会话的大小.如何正确读取C/C++中所有会话的数量和大小?
谢谢.
我在ubuntu 12.0.4上的postgresql中运行此查询:
SELECT t2.p AS prop, t2.o AS obj, COUNT(t2.o) AS num
FROM "class_Event" AS t1,
((SELECT s,p,o FROM "prop_sliceHasAnomaly")
UNION (SELECT s,p,o FROM "prop_eventHasDuration")
UNION (SELECT s,p,o FROM "prop_sliceHasEndEvent")
UNION (SELECT s,p,o FROM "prop_eventPrecedeInCPU")
UNION (SELECT s,p,o FROM "prop_eventFollowInTask")
UNION (SELECT s,p,o FROM "prop_topObjectProperty")
UNION (SELECT s,p,o FROM "prop_eventDetails")
UNION (SELECT s,p,o FROM "prop_switchTo")
UNION (SELECT s,p,o FROM "prop_eventIsExecutedOn")
UNION (SELECT s,p,o FROM "prop_runningAction")
UNION (SELECT s,p,o FROM "prop_anomalyHasSlice")
UNION (SELECT s,p,o FROM "prop_eventPrecedeInTrace")
UNION (SELECT s,p,o FROM "prop_sliceHasStartEvent") …Run Code Online (Sandbox Code Playgroud) 我们在 Windows 2008 Server 上运行 Postgres 9.0。有一个大表包含一bytea列,用于存储每行 0-5MB 的二进制数据:
CREATE TABLE files
(
file_id serial NOT NULL,
data bytea NOT NULL,
on_disk boolean,
CONSTRAINT files_pkey PRIMARY KEY (file_id)
)
Run Code Online (Sandbox Code Playgroud)
最近我们一直在更新每一行的 on_disk 字段(不涉及数据字段)。我们认为这已经占用了我们临时表空间(或其他东西)中的空间,原因有两个:
1) 我们开始在运行大型查询的系统的其他随机部分收到此错误:
ERROR: 53100: could not write block 92271 of temporary file
Run Code Online (Sandbox Code Playgroud)
2) 我们的可用空间在一周内从 ~7GB 下降到 1.5GB,这是不寻常的。
任何人都可以确认:
a) 在 postgres 中更新一行是否会导致它在不释放旧空间的情况下重写整个行(包括大型二进制数据)?这将解释我们的症状
b) 它是否在更改期间写入其他临时表空间,这也会占用空间?(我们可以强制释放临时空间吗?)
c) 有没有一种方法可以对这个表执行次要的布尔字段更新,而无需每次都重写行(&咀嚼磁盘空间)?
d) 我们可以在不重写整个表的情况下定期强制 postgres 释放已用空间吗?(我们已知的释放空间的方法涉及我们没有空间的表重写)
PS:是的,我们正在将我们的服务器迁移到具有更大存储空间的主机......这可能需要 1-2 个月的时间。
要获得磁盘使用情况的细分,请始终使用
du -m -h -s * -c | sort -h
Run Code Online (Sandbox Code Playgroud)
它返回一个这样的列表:
4.0K merge.sh
8.0K mergeforums_01.sh
5.2M _vt
82M sbc
166M ip2location.sql
184M IP2LOCATION-LITE-DB5.CSV
1.6G _yo.zip
20G sle
22G total
Run Code Online (Sandbox Code Playgroud)
但是在这个目录的一个分支中,我得到了这个:
du: invalid option -- 'e'
du: invalid option -- 'd'
du: invalid option -- 'i'
du: invalid option -- 't'
du: invalid option -- '4'
du: invalid option -- '.'
du: invalid option -- 'p'
du: invalid option -- 'p'
Run Code Online (Sandbox Code Playgroud)
看起来它告诉我编辑4.pp
到底是怎么回事?
我们使用Jenkins(在Linux上)来管理我们的Maven构建.
我们的用户可以创建自己的工作,有时(每年3到4次),他们犯了一个错误,并且作业生成一个大的日志文件(上次79 GB).
我查看了现有的插件,我没有找到监控Jenkins日志大小的东西.
例如,如果日志大小超过200MB(当作业运行时),我想自动停止构建.
如果您开发了这样的shell脚本或Jenkins插件,您可以共享您的解决方案吗?
谢谢 :)
我目前正在对500GB文本文件进行UNIX排序(通过Windows机器上的GitBash).由于运行的主磁盘上的空间,我已经使用了-t选项临时文件直接到磁盘,我有足够的空间来容纳整个文件.问题是,我一直在看磁盘空间,显然临时文件已经超过了原始文件.我不知道有多少进一步的,这是要去的,但我想知道如果有是,我可以预测多少空间,我需要为临时文件的规则.
Synology CloudStation文件版本控制使用了大量空间,那么如何释放空间呢?如何查看空间文件版本控制使用了多少?
我在 MySQL 中有一个巨大的表,我希望通过优化数据来缩小它。
现在我想知道MySQL是否有功能可以让我计算通过删除某些行或列可以节省多少字节?
所以像这样: select bytes_used(*) from (subquery...),或者类似的东西?
我当然可以复制表并比较删除行或列后使用的存储空间,但这会占用大量时间。我可以在应用程序中迁移或删除一些数据并以不同的方式构建,而不会破坏任何内容。
这个问题是关于评估可能的收益以及这种行动方案是否值得采取。
也非常欢迎有关使用 MySQL 数据计算磁盘空间的任何其他帮助。我知道您可以在 phpMyAdmin 中看到一个表占用了多少数据,但我正在寻找比这更进一步的内容。
附录:我正在寻找行或列级别的数据大小,而不是整个表。
是否可以使用Windows API写入磁盘上的可用群集或从中读取数据?我发现了Defrag API:https://docs.microsoft.com/en-gb/windows/desktop/FileIO/defragmenting-files
FSCTL_GET_VOLUME_BITMAP可用于获取每个群集的分配状态,FSCTL_MOVE_FILE可用于在群集之间移动。但是我找不到从自由集群读取数据或向其写入数据的方法。
更新:想到的解决方法之一是创建一个新的小文件,向其中写入一些数据,然后将其重新放置到所需位置并删除该文件(数据将保留在释放的群集中)。但这仍然不能解决阅读问题。
我想做的是某种透明的缓存,因此用户仍然可以照常使用他的NTFS分区,并且仍然将这些群集视为可用空间,但是我可以在其中存储一些数据。数据安全性无关紧要,它可以被用户操作覆盖,并且当群集再次释放时稍后将重新生成/重新下载。