linux cached过高导致性能变低

场景:

拿到了客户50个文件,平均每个文件大概40M左右的txt,文件在S3上,需要导入到数据库,40M解析出来大概是80W条左右的数据。

描述:

在刚开始执行导入时,因为数据验证复杂程度不同,每个文件耗时大概6到9分钟,执行到第20个文件之后,效率明显变低,执行到第

35个文件时free查看内存使用情况used已经占用到了15G(服务器内存16G),发现cached非常之高竟然有13G之多。

解决:

因为每个文件用过之后就不会再用,实际上缓存了文件对于目前的场景来说并没有什么实质性帮助,反而会极大幅度影响性能,所以手动

释放内存 echo 3 > /proc/sys/vm/drop_caches

drop_caches的值说明:
* 1 > To free dentries and inodes:
* 2 > To free pagecache, dentries and inodes:
* 3 > As this is a non-destructive operation, and dirty objects are notfreeable, the user should run "sync" first in order to make sure allcached objects are freed.

释放之后性能回复到初始的情况,导入性能问题解决。

释放之后的截图(没有时间重现释放之前的情况再截图了,不好意思):

linux cached过高导致性能变低

 

 

 如果大家有什么不解,或意见,欢迎在下方留言,楼主看到就会回复的,谢谢。

上一篇:gitignore 修改不起作用


下一篇:free命令详解