问题分析:
开启ossfs的debug日志,加上-d -o f2参数,ossfs会把日志写入到系统/var/log/message。
分析日志,发现ossfs在listbucket、listobject申请内存过多,触发了系统的oom。
说明 listobject是发起http请求到OSS获取文件的meta信息,如果客户的文件很多,ls会消耗系统大量内存来获取文件的meta。
解决方案:
通过-omax_stat_cache_size=xxx参数增大stat cache 的 size,这样第一次ls会较慢,但是后续的ls速度会提高,因为文件的元数据都在本地cache中。这个值默认是1000,约消耗4MB内存,请根据您机器内存大小调整为合适的值。
ossfs在读写时会占用磁盘写大量的temp cache ,和Nginx差不多,可能会导致磁盘可用空间不足,需要经常清理。
使用ossutil替代ossfs,非线上敏感业务可以使用ossfs ,要求可靠性、稳定性的建议使用ossutil。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。