小编rkh*_*rkh的帖子

Python脚本由SIGKILL终止,而不是抛出MemoryError

再次更新

我试图创建一些简单的方法来重现这一点,但还没有成功.

到目前为止,我已经尝试了各种简单的数组分配和操作,但它们都抛出了一个MemoryError,而不仅仅是SIGKILL崩溃.

例如:

x =np.asarray(range(999999999))
Run Code Online (Sandbox Code Playgroud)

要么:

x = np.empty([100,100,100,100,7])
Run Code Online (Sandbox Code Playgroud)

只是按原样抛出MemoryErrors.

我希望有一种简单的方法可以在某些时候重新创建它.

结束更新

我有一个运行numpy/scipy和一些自定义C扩展的python脚本.

在Virtual Box下的我的Ubuntu 14.04上,它运行完成就好了.

在Amazon EC2 T2微型实例上,它使用输出终止(运行一段时间后):

杀害

在python调试器下运行,信号没有被捕获,调试器也退出.

在strace下运行,我得到:

munmap(0x7fa5b7fa6000, 67112960)        = 0
mmap(NULL, 67112960, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fa5b7fa6000    
mmap(NULL, 67112960, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fa5affa4000    
mmap(NULL, 67112960, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fa5abfa3000    
mmap(NULL, 67637248, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fa5a7f22000    
mmap(NULL, 67637248, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fa5a3ea1000    
mmap(NULL, 67637248, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fa59fe20000    
gettimeofday({1406518336, 306209}, NULL) = 0 …
Run Code Online (Sandbox Code Playgroud)

gdb out-of-memory sigkill python-2.7

5
推荐指数
1
解决办法
1954
查看次数

在python日志配置文件中使用程序变量

我正在尝试使用以下内容启用我的python日志记录:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import logging
import logging.config
import os
test_filename = 'my_log_file.txt'
try:
    logging.config.fileConfig('loggingpy.conf', disable_existing_loggers=False)
except Exception as e:
    # try to set up a default logger
    logging.error("No loggingpy.conf to parse", exc_info=e)
    logging.basicConfig(level=logging.WARNING, format="%(asctime)-15s %(message)s")
test1_log = logging.getLogger("test1")
test1_log.critical("test1_log crit")
test1_log.error("test1_log error")
test1_log.warning("test1_log warning")
test1_log.info("test1_log info")
test1_log.debug("test1_log debug")
Run Code Online (Sandbox Code Playgroud)

我想使用loggingpy.conf文件来控制日志记录,如下所示:

[loggers]
keys=root

[handlers]
keys=handRoot

[formatters]
keys=formRoot

[logger_root]
level=INFO
handlers=handRoot

[handler_handRoot]
class=FileHandler
level=INFO
formatter=formRoot
args=(test_filename,)

[formatter_formRoot]
format=%(asctime)s:%(name)s:%(process)d:%(lineno)d %(levelname)s %(message)s
datefmt=
class=logging.Formatter
Run Code Online (Sandbox Code Playgroud)

在这里,我试图将日志记录路由到本地"test_filename"命名的文件.当我运行这个时,我得到:

ERROR:root:No loggingpy.conf to parse
Traceback …
Run Code Online (Sandbox Code Playgroud)

python logging python-2.7

5
推荐指数
3
解决办法
4007
查看次数

标签 统计

python-2.7 ×2

gdb ×1

logging ×1

out-of-memory ×1

python ×1

sigkill ×1