coco
coco copied to clipboard
cpu使用率高
+1 , 我现在一直在研究为啥会这样, 但是没有结果, 暂时只能晚上定时重启了, :hammer:
现在是创建一个连接会开三个线程。有交流的qq群什么的吗。现在这个样子,没法用,定时重启会被骂的。
552054376, 这是群号, 那我的情况和你的不怎么一样, 我的是一般情况下CPU占用不高, 但是不知道哪个子线程出了问题, 处于死循环了, 就CPU占用高了
我的一般也不高。过几天就高了
大概这个月,我会把coco重写一遍,放弃 flask context机制,因为里面涉及到线程中有线程,使用这个像是带来不可控制的问题,重写打算使用django的request机制,进行传递请求内容
用strace追踪到时select里面有死循环。加if not r: break if not client_data: break就可以解决,在观察下看有没其他问题
是在这里?https://github.com/jumpserver/coco/blob/3220bda79db29d55435c43254c20a2e7f467085d/coco/proxy.py#L210
@yanguangtao
@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 的异常,这种事正常错误
@ibuler coco重写了么
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 不知道这些信息有没有什么价值
内存泄露问题大家看看0.5.0上还有没有