动态日志文件输出时效率问题

janse_zyd 发布于 2014/08/27 12:55
阅读 437
收藏 0

NGINX社区官方微服务训练营,深入了解K8s网络,线上课程+专家答疑,立即加入>>>

@难易 你好,想跟你请教个问题:

        动态日志文件输出时,能否改为不每次都close(fd),现在测试发现,采用动态日志文件输出,效率很慢

加载中
0
难易
难易

动态日志由于需要随时改变文件名,所以我调用了close,不过close并不会保证fsync

http://stackoverflow.com/questions/15348431/linux-c-programming-does-close-call-fsync-in-linux

所以动态文件慢还是因为open……

目前我没有太好的解决方案,一边保证动态,一边保证高效率。

难易
难易
这个我考虑过,就是自己保存一个文件名和fd的对应表,然后上面还带缓存,等等。不过我猜测内核已经做过这件事情了,我在用户态再做一遍,就很不优美。 不过我刚想到一个绝妙的主意,可惜最近没空改zlog……
janse_zyd
janse_zyd
有没有可能保存一组动态的fd,这组动态的fd是有数量上限的,如果超限,就把最长时间没用的fd淘汰掉,再保留最新的fd
0
janse_zyd
janse_zyd
期待难易能完善一下,我现在用在一个高性能的服务软件上,现在写日志的消耗的时间等同于我其他任务的处理时间
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部