进程A不断接收多个外端链接请求处理并返回结果
出于处理效率考虑 使用多进程方式来处理
运行一段时间发现 不定时 随机性 某个外端链接会异常中断
两端的traceback.format_exc() 都捕获不到异常报错
导致A的子进程无法正常退出 内存泄漏 ,但是其他请求还能正常处理
积累一段时间后程序就报错无法再分配内存异常GG
请问可能是什么原因呢
多进程部分代码如下
try:
multiprocessing.freeze_support()
pool = multiprocessing.Pool()
cpus = multiprocessing.cpu_count()
step = int(math.ceil(len_list / float(cpus)))
_time = str(int(get_hourly_chime(datetime.now(), step=0, rounding_level=“min”)))
_last_time = str(int(get_hourly_chime(datetime.now(), step=0, rounding_level=“min”))-300)
#print(_time,_last_time)
with multiprocessing.Manager() as MG:
mylist=multiprocessing.Manager().list()
for i in xrange(0, cpus):
logging.info(’%s #task range (total: %d): %d, %d’ % (_ip,len(_lists), i*step, (i+1)step))
pool.apply_async(write_log_new, (i, _lists[istep:(i+1)*step], mylist, _time, _ip ))
pool.close()
except:
logging.error(’{} #{}’.format(_ip, traceback.format_exc()))
logging.error(’{} #end’.format(_ip))