知识卡片

日志异步落盘转运优于同步网络直写

专业/工作 · 1218.i

内容

很多日志服务允许应用直接把日志条目通过网络实时发出去,这样确实方便把日志集中存储分析,但每条日志都要单独建立一次网络连接会随着流量增长逐渐变成明显的资源瓶颈。更稳妥的做法是让应用只把日志写入本地磁盘文件,再由一个独立的服务(如 rsyslog 的转发功能,或各类 SaaS 日志服务自带的代理程序)定期异步地把这些日志转运到外部存储和分析系统。这样应用主流程完全不用等待网络往返,日志转运的开销被隔离在旁路进行,用一点点时延换取了应用性能不被日志系统拖累。发散:这和[[StatsD为何选择UDP作为传输协议]]是同一条设计哲学的不同体现——遥测数据的产生和它的传输/存储应该尽可能解耦,避免可观测性本身反噬被观测系统的性能。

参考来源

《监控运维实践 原则与策略-2021》第7章《应用程序监控》