![常规文件中存在大量零字节的根本原因](https://linux22.com/image/722940/%E5%B8%B8%E8%A7%84%E6%96%87%E4%BB%B6%E4%B8%AD%E5%AD%98%E5%9C%A8%E5%A4%A7%E9%87%8F%E9%9B%B6%E5%AD%97%E8%8A%82%E7%9A%84%E6%A0%B9%E6%9C%AC%E5%8E%9F%E5%9B%A0.png)
我们有损坏的文件,其中包含许多零字节。我想知道根本原因是什么。我知道的是:
- 所有最近写入的文件都会受到影响,它们包含大量零字节。例如日志文件、索引文件(Apache Lucene 索引)、jsp 文件。还有文本文件、二进制文件、所有类型的文件。
- 零字节始终从 4096 的倍数的位置开始。
- 零字节的数量并不总是相同的。示例大小:2053 字节、266 字节、243 字节。
- 文件中零字节的一些位置:0xa000 - 0xa805、0xc000 - 0xc806、0xf000 - 0xfc10a、0x3e000 - 0x3e0f3、0x3f000 - 0x3f0f3。
日志文件的部分十六进制转储如下:
00006fe0 61 6e 64 6c 65 72 20 49 67 6e 6f 72 69 6e 67 20 |andler Ignoring |
00006ff0 63 6f 72 72 75 70 74 20 69 6e 64 65 78 20 5b 2f |corrupt index [/|
00007000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00007090 2e 20 54 68 69 73 20 69 6e 64 65 78 20 4d 55 53 |. This index MUS|
- 看起来只有一台机器(有多台具有相同配置的机器执行相同的操作,但看起来只发生在一台机器上)。但我不完全确定。
- Red Hat Enterprise Linux Server 版本 5.11 (Tikanga) 2.6.18-419.el5
- 应用程序主要为Java,版本:jdk1.8.0_162
- 基于 SAN 的安装 - 950GB
- 16GB RAM 和 6 个 vCPU
- 服务器连接到外部存储阵列,通过 HBA -> FC 线缆 -> SAN 交换机 -> 存储阵列进行连接