【问题标题】:Can too much logging impact the performance of web application?过多的日志记录会影响 Web 应用程序的性能吗?
【发布时间】:2015-10-17 20:44:34
【问题描述】:

对于使用 python/Django 编写的 Web 应用程序,日志记录量会影响 Web 性能吗?

对于 Go,我可以启动一个 goroutine 来异步写入日志,但是 AFAIK,python 日志记录是同步的,日志写入是请求处理的一部分。但是,与访问数据库或渲染模板等其他活动相比,它通常需要多少时间?我应该担心吗?

我没有使用任何特定的日志记录处理程序,只是写入普通日志文件。

我知道我可以调整日志记录级别以减少生成的日志量,但我仍然希望尽可能多地保留日志,前提是它不会严重影响性能。

【问题讨论】:

  • 这在很大程度上取决于所采取的策略、日志量、磁盘性能和最终进入应用程序的流量。您有多种可用的日志处理程序,它们的性能各不相同。您可以写信给local file,使用logstash 甚至redis 登录。也可以编写自定义处理程序。但是这个问题太宽泛没有给出任何细节,所以我想如果它保持目前的形式,它很快就会被关闭。

标签: python django performance logging web


【解决方案1】:

您应该记录所有对未来分析有用的数据。但是,如果您要同步记录太多数据,则应该关注记录开销。异步日志记录可以有很多选项。

【讨论】:

    【解决方案2】:

    如果您担心 I/O 延迟(一个有效的问题),您可以使用 QueueHandler / QueueListener 从 Web 应用程序登录到队列,如文档 here 中所述。 QueueListener 可以在单独的线程上运行,并防止您的请求处理程序线程陷入记录 I/O 的困境。如果您使用的是 Python 2.x,则 QueueHandler / QueueListener 在 PyPI 上的 logutils 包中可用。

    【讨论】:

    • 正是我想要的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-18
    • 1970-01-01
    • 2019-06-19
    • 1970-01-01
    • 2022-08-04
    • 2023-04-08
    相关资源
    最近更新 更多