首先是这张图:
对于:
/dev/vda1和/dev/vda2
可以知道,这个机器是在虚拟机上的,从设备描述中可以看到,与IO有关。
问下ChatGPT
问:linux上 /dev/vda1 和 /dev/vda2是干嘛的
答:
/dev/vda1和/dev/vda2是Linux操作系统中的磁盘设备,通常是虚拟机上的硬盘设备。这些设备通常表示为分区,其中/dev/vda1和/dev/vda2通常是同一个物理磁盘的不同分区。
一般来说,/dev/vda1是Linux系统的根文件系统分区,也就是操作系统所在的分区,包含了Linux内核、启动加载器、系统命令工具和其他必要的文件。而/dev/vda2则可以是Linux系统中的其他分区,例如用于数据存储或程序安装等。
需要注意的是,每个系统的设备命名规则可能略有不同,因此/dev/vda1和/dev/vda2并不是在所有系统上都是标准的磁盘设备命名方式。
问:
哪些操作会影响到/dev/vda1
答:
/dev/vda1通常是Linux系统的根文件系统分区,因此几乎所有与操作系统相关的操作都会影响它。
以下是一些可能影响到/dev/vda1的常见操作:
- 安装或卸载软件包:如果你安装或卸载了某个软件包,则该软件包的文件可能会被添加或删除到/dev/vda1上。
- 修改系统配置:如果你修改了Linux系统的配置文件,例如/etc/fstab、/etc/passwd和/etc/group等,则这些更改可能会影响/dev/vda1。
- 更新系统:当你通过更新命令更新Linux系统时,新的软件包可能会被下载并替换旧软件包。这些更改可能会影响/dev/vda1。
- 创建、移动或删除文件:当你在Linux系统中创建、移动或删除文件时,这些更改可能会影响/dev/vda1上的文件系统。
- 内核更新:如果你升级了Linux内核,则新版本内核的文件可能会被添加到/dev/vda1上。
需要注意的是,以上仅是一些可能影响/dev/vda1的常见操作,具体情况还要视不同的系统和应用程序而定。
问:哪些操作会影响到/dev/vda2
答:
/dev/vda2通常是Linux系统中的其他分区,例如用于数据存储或程序安装等。因此,与/dev/vda2相关的操作可能包括:
- 安装或卸载软件包:如果你安装或卸载了某个软件包,则该软件包的文件可能会被添加或删除到/dev/vda2上。
- 创建、移动或删除文件:当你在/dev/vda2上创建、移动或删除文件时,这些更改可能会影响该分区的文件系统。
- 数据备份和恢复:如果你在/dev/vda2上存储了重要的数据,则你可能需要定期进行备份以避免数据丢失。在进行数据恢复时,/dev/vda2也会受到影响。
- 程序更新:当你更新了Linux系统中的应用程序时,新版本的应用程序文件可能会被添加到/dev/vda2上。
- 文件压缩和解压缩:如果你在/dev/vda2上存储了大量文件或数据,那么你可能需要使用文件压缩工具来节省磁盘空间。在解压缩文件时,/dev/vda2也会受到影响。
需要注意的是,以上仅是一些可能影响/dev/vda2的常见操作,具体情况还要视不同的系统和应用程序而定。
总结下
我遇到的情况是这样的,我用的PrintWriter类写文件:
PrintWriter out = new PrintWriter(fileName);
out.println(object.getString());
out.close();
发现就只有文件名,文件是空的,最后通过:
df -h
df -ih
发现使用df -h时发现
/dev/vda2
磁盘满了。
然后查了下
lsof -n | grep deleted
查出了一大把deleted的。
程序有问题,文件资源没释放干净的,把/dev/vda2给填满了。
将这些kill -9 后/dev/vda2就剩下很多空间了。