@难易 你好,想跟你请教个问题:
动态日志文件输出时,能否改为不每次都close(fd),现在测试发现,采用动态日志文件输出,效率很慢
期待难易能完善一下,我现在用在一个高性能的服务软件上,现在写日志的消耗的时间等同于我其他任务的处理时间
有没有可能保存一组动态的fd,这组动态的fd是有数量上限的,如果超限,就把最长时间没用的fd淘汰掉,再保留最新的fd
这个我考虑过,就是自己保存一个文件名和fd的对应表,然后上面还带缓存,等等。不过我猜测内核已经做过这件事情了,我在用户态再做一遍,就很不优美。 不过我刚想到一个绝妙的主意,可惜最近没空改zlog……
动态日志由于需要随时改变文件名,所以我调用了close,不过close并不会保证fsync
http://stackoverflow.com/questions/15348431/linux-c-programming-does-close-call-fsync-in-linux
所以动态文件慢还是因为open……
目前我没有太好的解决方案,一边保证动态,一边保证高效率。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
暂无简介
文章 0 评论 0
接受
发布评论
评论(4)
期待难易能完善一下,我现在用在一个高性能的服务软件上,现在写日志的消耗的时间等同于我其他任务的处理时间
有没有可能保存一组动态的fd,这组动态的fd是有数量上限的,如果超限,就把最长时间没用的fd淘汰掉,再保留最新的fd
这个我考虑过,就是自己保存一个文件名和fd的对应表,然后上面还带缓存,等等。不过我猜测内核已经做过这件事情了,我在用户态再做一遍,就很不优美。 不过我刚想到一个绝妙的主意,可惜最近没空改zlog……
动态日志由于需要随时改变文件名,所以我调用了close,不过close并不会保证fsync
http://stackoverflow.com/questions/15348431/linux-c-programming-does-close-call-fsync-in-linux
所以动态文件慢还是因为open……
目前我没有太好的解决方案,一边保证动态,一边保证高效率。