找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 327|回复: 2

[求助] python logging timedrotatingfilehandler出现内存爆满情况

1

主题

2

帖子

2

积分

贫民

积分
2
onefor1 发表于 2018-1-11 16:45:08 | 显示全部楼层 |阅读模式
程序原来的需求是将日志文件一个小时存一个文件,所以自然想到用timedrotatingfilehandler处理。一开始代码跑了十来天完全没啥问题,但是今天突然发现了一个问题,问题描述如下:
1、发现log文件好几个小时都不更新,比如14:00了,但是13:00的log文件还没有生成
2、内存和cpu都疯狂上涨,内存占到了96+%,然后cpu当时看了下有40+%,控制台输入命令有时候都卡顿
3、但是kill掉进程后,奇迹的事情发生了,原来13:00没生成的文件瞬间生成了,在kill程序之前的日志一条都没有丢失

后来我百度、谷歌一段时间,也没有发现相关问题,也看了logging的源代码,发现delay参数默认为0,所以不应该延迟那么久到我kill掉进程才写入文件吧?
然后想会不会是保存日志目录的log文件太多了,于是换了一个新的目录保存log文件,发现程序又能正常运行了。

求各路大神解答迷惑!
回复

使用道具 举报

2

主题

219

帖子

219

积分

版主

Rank: 7Rank: 7Rank: 7

积分
219

热心会员默默耕耘优秀版主

剑心无痕 发表于 2018-1-11 16:54:23 | 显示全部楼层
ulimit -a查看所有限制
ulimit -n查看最多打开多少文件, 一般256
我猜你每小时打开一个log文件并写入,但是忘记关了,10天就是10*24 + 14 =254再算上程序就是255达到了限制
回复 支持 反对

使用道具 举报

1

主题

2

帖子

2

积分

贫民

积分
2
onefor1  楼主| 发表于 2018-1-11 18:01:40 | 显示全部楼层
剑心无痕 发表于 2018-1-11 16:54
ulimit -a查看所有限制
ulimit -n查看最多打开多少文件, 一般256
我猜你每小时打开一个log文件并写入,但 ...

[root@localhost log_test]# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 127904
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1048576
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 127904
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
[root@localhost log_test]# ulimit -n
1048576

我看了不是你说的问题,而且python logging一个小时会自动保存一个文件,而且已经关闭了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表