【问题标题】:how to resolve logging out of memory error?如何解决注销内存错误?
【发布时间】:2018-11-14 23:13:55
【问题描述】:

我在只有自动化脚本(python 2.7.11)的 docker 容器中遇到了上述错误,并且我正在使用日志记录包来记录错误。

Traceback (most recent call last):

File "/usr/lib/python2.7/logging/__init__.py", line 885, in emit
self.flush()

File "/usr/lib/python2.7/logging/__init__.py", line 845, in flush
self.stream.flush()
IOError: [Errno 12] Out of memory

否则我看到下面的错误为launch_err 我得到了上述错误作为该docker容器的launch_err,我在日志中看到的就是这个 "(:[Errno 12] 内存不足 [/usr/lib/python2.7/site-packages/supervisor/supervisord.py|runforever|235] [/usr/lib/python2.7/site-packages/supervisor/ dispatchers.py|handle_read_event|232] [/usr/lib/python2.7/site-packages/supervisor/dispatchers.py|record_output|166] [/usr/lib/python2.7/site-packages/supervisor/dispatchers. py|_log|142] [/usr/lib/python2.7/site-packages/supervisor/loggers.py|info|275] [/usr/lib/python2.7/site-packages/supervisor/loggers.py|日志|293] [/usr/lib/python2.7/site-packages/supervisor/loggers.py|emit|86] [/usr/lib/python2.7/site-packages/supervisor/loggers.py|handleError| 90]

该容器有 1GB 内存,我尝试增加至 4GB,但它仍然崩溃并记录相同的错误。我相信它的内存泄漏来自日志包,它无法释放处理程序来刷新缓冲区。

【问题讨论】:

  • 内存不足时只有两件事要做 - 获得更多或更少使用。
  • 如果你不发布代码,很难看出你的代码在哪里使用了这么多内存。
  • 你能看完/var/log/messages吗? (使用less /var/log/messages

标签: python logging


【解决方案1】:

根本原因是我们在每秒调用一次的 shell 脚本中使用了纪元日期函数。这引起了排挤。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-21
    • 2014-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多