有一个Python应用 提供了一些Api接口 如情感 分词等 但是偶尔发现应用不可用 即应用进程存在 但是调用Api接口却返回
curl: (56) Recv failure: Connection reset by peer
netstat 查看应用端口得到如下信息
netstat -aultnp | grep 8000
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 6 0 0.0.0.0:8000 0.0.0.0:* LISTEN 9712/python
tcp 0 0 172.16.XXX.XX:8000 172.16.XXX.XX:33652 SYN_RECV -
tcp 0 0 172.16.XXX.XX:8000 118.31.xx.xxx:51470 SYN_RECV -
tcp 0 1125 172.16.XXX.XX:33652 172.16.XXX.XX:8000 ESTABLISHED 7048/java
tcp 19 0 172.16.XXX.XX:8000 39.104.xx.xxx:40968 CLOSE_WAIT -
tcp 5 0 172.16.XXX.XX:8000 39.104.xx.xxx:39672 CLOSE_WAIT -
tcp 13 0 172.16.XXX.XX:8000 39.104.xx.xxx:41628 CLOSE_WAIT -
tcp 0 0 172.16.XXX.XX:8000 39.104.xx.xxx:39500 ESTABLISHED 9712/python
tcp 0 0 172.16.XXX.XX:55160 182.92.xx.xx:8000 ESTABLISHED 16173/staragent-cor
tcp 54 0 172.16.XXX.XX:8000 39.104.xx.xxx:42286 CLOSE_WAIT -
tcp 14 0 172.16.XXX.XX:8000 39.104.xx.xxx:43734 CLOSE_WAIT -
tcp 42 0 172.16.XXX.XX:8000 39.104.xx.xxx:43036 CLOSE_WAIT -
重启该应用 问题就解决了 感觉似乎是什么资源耗尽导致 但是不确定是什么资源
不知道遇到Python进程僵死该怎么定位问题原因 如果是Java进程的话 可以通过JVM提供的一些工具分析问题原因 如jstack
这个已经有人问过了https://segmentfault.com/q/10...
你说“感觉似乎是什么资源耗尽导致 但是不确定是什么资源”,在这里推荐一下cProfiler,相关链接http://python.jobbole.com/87621/,可以显示函数调用,内存,时间等相关信息,希望有用