coco icon indicating copy to clipboard operation
coco copied to clipboard

cpu使用率高

Open yanguangtao opened this issue 7 years ago • 11 comments

yanguangtao avatar Aug 17 '17 07:08 yanguangtao

+1 , 我现在一直在研究为啥会这样, 但是没有结果, 暂时只能晚上定时重启了, :hammer:

wufeiqun avatar Aug 17 '17 10:08 wufeiqun

现在是创建一个连接会开三个线程。有交流的qq群什么的吗。现在这个样子,没法用,定时重启会被骂的。

yanguangtao avatar Aug 17 '17 10:08 yanguangtao

552054376, 这是群号, 那我的情况和你的不怎么一样, 我的是一般情况下CPU占用不高, 但是不知道哪个子线程出了问题, 处于死循环了, 就CPU占用高了

wufeiqun avatar Aug 17 '17 10:08 wufeiqun

我的一般也不高。过几天就高了

yanguangtao avatar Aug 17 '17 11:08 yanguangtao

大概这个月,我会把coco重写一遍,放弃 flask context机制,因为里面涉及到线程中有线程,使用这个像是带来不可控制的问题,重写打算使用django的request机制,进行传递请求内容

ibuler avatar Sep 06 '17 01:09 ibuler

用strace追踪到时select里面有死循环。加if not r: break if not client_data: break就可以解决,在观察下看有没其他问题

yanguangtao avatar Sep 06 '17 02:09 yanguangtao

是在这里?https://github.com/jumpserver/coco/blob/3220bda79db29d55435c43254c20a2e7f467085d/coco/proxy.py#L210

@yanguangtao

wufeiqun avatar Sep 06 '17 05:09 wufeiqun

@hellorocky if not r:break 这个你加在 r, w, x = select.select([client_channel, backend_channel], [], []) except select.error: break if not r: break

你还要考虑select.select 抛出 EINTR, EAGAIN 的异常,这种事正常错误

yanguangtao avatar Sep 06 '17 05:09 yanguangtao

@ibuler coco重写了么

hfq-xuhengtong avatar Sep 13 '17 10:09 hfq-xuhengtong

4088     proxy_server.proxy()
4089   File "/home/jumpserver/coco/coco/proxy.py", line 191, in proxy
4090     client_channel.send(backend_data)
4091   File "/home/jumpserver/python3/lib/python3.6/site-packages/paramiko/channel.py", line 785, in send
4092     return self._send(s, m)
4093   File "/home/jumpserver/python3/lib/python3.6/site-packages/paramiko/channel.py", line 1179, in _send
4094     self.transport._send_user_message(m)
4095   File "/home/jumpserver/python3/lib/python3.6/site-packages/paramiko/transport.py", line 1676, in _send_user_message
4096     self._send_message(data)
4097   File "/home/jumpserver/python3/lib/python3.6/site-packages/paramiko/transport.py", line 1656, in _send_message
4098     self.packetizer.send_message(data)
4099   File "/home/jumpserver/python3/lib/python3.6/site-packages/paramiko/packet.py", line 397, in send_message
4100     self.write_all(out)
4101   File "/home/jumpserver/python3/lib/python3.6/site-packages/paramiko/packet.py", line 340, in write_all
4102     raise EOFError()
4103 EOFError

出现内存泄漏和CPU占用高的时候经常会有这样的错误!

@choldrim 不知道这些信息有没有什么价值

wufeiqun avatar Sep 28 '17 09:09 wufeiqun

内存泄露问题大家看看0.5.0上还有没有

ibuler avatar Jan 09 '18 12:01 ibuler