快捷搜索: 王者荣耀 脱发

/proc下的kcore文件过大,能变小吗?

iamlaosong文

今天服务器很慢,所以我在机器上搜大于800M的文件: find . -type f -size +800M 结果搜出了一个“大”文件:/proc/kcore,有18个G,赶紧找文档看,似乎这个文件/proc/kcore的大小就是机器的物理内存,就是系统内存的一个map,并不真正占物理内存那么大的硬盘空间。下面是查到的关于该文件的描述:

/proc/kcore is like an "alias" for the memory in your computer. Its size is the same as the amount of RAM you have, and if you read it as a file, the kernel does memory reads. 如果内核不能识别全部内存,即"ll /proc/kcore"(查看kcore的真实大小:du -h /proc/kcore)后显示的大小不等于实际的物理内存大小,可以用 cat /proc/meminfo 命令来校验.如果所显示的数量与系统的物理内存不同,则在 /boot/grub/grub.conf 文件中添加: mem=xxM

==========================================

但是,我的服务器内存只有16G,为什么这个文件比内存还大,网上查了一下,还有多少T的,这还不是关键,关键是我另一台新服务器,同样的文件只有8192个字节,而这台机器的内存是64G。由此可见这个文件可能不占用存储设备空间,但其大小并不等于实际物理内存大小,而且其大小似乎和内存也没多大关系!!!

那么大看着总是不爽,那么这个文件怎么变小呢?

删除不行,拷贝覆盖也不行,没办法,用vi打开,删除内容再保存,只读文件当然不能保存,但是可以加“!”保存啊,保存后再看这个文件,只有4096个字节了。

文件变小后系统似乎没什么影响,重启后发现文件又变成原来的18G了。真没办法,呵呵。

后来又看了一篇关于这个文件的文章(),说是用hexdump命令查看一下就变小,一试果然如此,只是重启之后,一切都还原了,唉!

难道这个文件的大小和服务器的年龄有关,运行时间越长,文件越大?,在此留个记录,以便今后比较:

DL580G7(16G RAM): -r-------- 1 root root 18253611008 Nov 11 12:56 kcore

DL580G9(64G RAM): -r-------- 1 root root 8192 Nov 11 13:26 kcore

===================================================

经验分享 程序员 微信小程序 职场和发展