我们有一个消息处理系统,其中低延迟是至关重要的。 最近我发现,虽然我们通过我们的系统保持了很高的速度,但是我们看到一些“exception值”。 (消息需要更长的时间,然后他们应该)当我们删除日志我们的系统显示没有这些exception值。
现在我们的日志logging基本上只是一个包含一些类似于log4j(debugging,致命,debugging等)的日志logging级function的ostream。
我想知道,其他人做什么来pipe理日志logging性能,特别是在消息处理活动? 你如何pipe理这些I / O绑定的活动? 你把它划出来了吗? 你是否转而使用数据库?
任何build议优化日志logging感激。
无法访问生产中的日志文件
创build一个集中式exceptionlogging系统
如何从Java访问Windows事件查看器日志数据
Rails 3.2中的活动logging查询问题
注:我认识到,我们的系统可能会有其他问题导致exception值,但为了这个问题,我只对日志优化感兴趣,谢谢。
另外:我们的系统必须logging日志。
将所有请求logging到文件Django
Windowsbatch file使用date/时间将输出redirect到日志文件
gdb:logging的东西,而不是打破?
为AWS服务器(非EC2实例)configurationWindows服务器的CloudWatch日志监视
Nginx了解访问日志列
我想这在一定程度上取决于操作系统。
在win32上,我们的日志子系统只是将消息排队等待处理磁盘I / O的日志线程。
这将磁盘I / O性能从时间关键型线程中分离出来,并使我们能够很好地控制队列被锁定的方式和时间。
与Roddy所说的类似,我们也将消息排队在一个线程安全的队列中,并且有一个单独的低优先级的线程来执行实际的磁盘I / O。
在后台线程中,我们也可以一次写入(出队)的消息数量是有限制的,所以除了这个,我们把后台线程恢复到睡眠状态。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。