我错误地注意到在 /tmp 目录中不断创建一些文件然后立即删除。使用一系列ls -l /tmp
我设法捕获创建的文件:
-rw------- 1 root root 0 Apr 2 19:37 YlOmPA069G
-rw------- 1 root root 0 Apr 2 19:37 l74jZzbcs6
或另一个例子:
-rw------- 1 root root 0 Apr 2 19:44 AwVhWakvQ_
-rw------- 1 root root 0 Apr 2 19:44 RpRGl__cIM
-rw------- 1 root root 0 Apr 2 19:44 S0e72nkpBl
-rw------- 1 root root 0 Apr 2 19:44 emxIQQMSy2
这是关于带有 4.18.0-16-generic 的 Ubuntu 18.10。这是一个几乎全新的安装:我添加了一些服务器软件(nginx、mysql、php7.2-fpm),但即使关闭了这些软件,问题仍然存在。
创建的文件是什么,为什么?我将如何阻止这种行为?SSD上非常不受欢迎的
谢谢!
更新
问题是关于 RAM 中何时没有 /tmp (没有tmpfs)。
有罪的软件是x2goserver.service否则必须有一个。
我建议安装并运行 fnotifystat 来检测创建这些文件的进程:
您将看到执行打开/关闭/读取/写入活动的进程,如下所示:
确定哪个程序/进程正在接触文件
您可以使用诸如
lsof
确定哪些进程和二进制文件正在接触/打开哪些文件之类的工具。如果文件频繁更改,这可能会变得很麻烦,因此您可以设置一个手表来通知您:有时,简单地查看用户或组所有者会给您一个很好的提示(即:)
ls -lsha
。放入
/tmp
RAM 而不是磁盘如果您愿意,可以将
/tmp
目录放入 RAM。您必须根据可用 RAM 以及读/写的大小和频率来确定这是否是明智之举。如果您有足够的 RAM,这对于您的 SSD 的使用寿命和系统的速度来说都是一件非常好的事情。如果您调整
tmpreaper
(有时tmpwatch
)更积极,您甚至可以使用更少量的 RAM 来完成此操作。您用tmpfs标记了您的问题,所以我不太清楚这与 SSD 有何关系。Tmpfs 是一个内存(或更准确地说,块缓存)文件系统,因此它永远不会碰到物理磁盘。
此外,即使您的
/tmp
文件系统有一个物理后备存储,除非您的系统只有几 KB 的 RAM,否则这些短期文件永远不会到达磁盘,所有操作都将在缓存中进行。因此,换句话说,因为您使用的是 tmpfs,所以没有什么可担心的,如果您没有使用,仍然没有什么可担心的。
人们太担心 SSD 的写入耐久性。假设创建和删除一个空文件每秒写入 24 kB,并使用流行的三星 860 EVO 250 GB 的 150 TBW 规格,磨损需要 193 年!
(150 * 10 ^ 12) / ((2 * 3 * 4 * 1024) * 60 * 60 * 24 * 365.25) = 193
对于 ext4 文件系统,使用“tune2fs -l”来查找 Lifetime 写入。或者,使用“smartctl -a”并查找 Total_LBA_Written。我总是发现SSD还有很多寿命。
您使用了错误的
/dev/nvme0...
名称:正确的格式是:
就NVMe SSD 的使用寿命而言:
这里的关键是:
使用 18 个月后,SSD 使用百分比为 0%。如果使用 3 年后达到 1%,那么我知道 SSD 将持续 300 年。
显然,这个答案不适合评论部分来回复其他评论。